Как тестировать сайтлоки

В нашем и ФГЛовском форуме порой обсуждаются проблемы с сайтлоками вида: «Я отдал спонсору, а у него ничего не работает». Я бы хотел рассказать как я тестирую локально сайтлоки под Windows. Это все комбинация известных приемов в веб-разработке, я ничего сам не придумал. Но вдруг кому-то будет интересно?

Подход 1. Тестирование под локальным веб-сервером.

Для этого нам понадобятся две вещи:
  • Веб-сервер. Идеально подходит легковесный веб-сервер (эксешник без инсталляции и настроек). Я пользуюсь http://code.google.com/p/mongoose/. Просто пускаем его в корневом каталоге ваших игровых проектов (у меня C:\flashgames) — и он открывает на порте 8080 весь этот каталог. Порт можно поменять на 80 (right click, «Edit config file»).
  • Mapping URL сайтлока на вашу локальную машину. Проще всего навсегда перевести URL вида: mylocaltest.yahoo.com на localhost в файле hosts. Не только же вирусам туда писать!
Вот фрагмент моего C:\Windows\System32\drivers\etc\hosts
127.0.0.1 sblocal.kongregate.com
127.0.0.1 sblocal.notdoppler.com
127.0.0.1 sblocal.www8.agame.com
127.0.0.1 sblocal.swf.xiaoyouxi.cn
127.0.0.1 sblocal.files.game.com.cn
127.0.0.1 sblocal.gamedev.dev.spilgames.com
127.0.0.1 sblocal.yahoo.com
127.0.0.1 sblocal.yimg.com

Теперь просто открываем URL в любимом браузере и проверяем.

Например, у меня URL получается такая:
sblocal.yahoo.com/gluey2/trunk/deploy/gluey2-yahoo-1.0.13.swf

Подход 2. Подмена SWF на сайте сервера.

Более сложный случай — спонсор жалуется, что API не работает, и кидает вам ссылку на страничку игры (обычно неопубликованную).

Не обязательно в этом случае туда-сюда гонять SWFки со спонсором! Можно просто локально отдать вашему браузеру свою дебажную тестовую SWF при посещении сайта спонсора.

Проще всего это сделать с помощью Fiddler. Это локальный HTTP debugging proxy. Умеет сниффить и подменять контент.

Фиддлер ставим и настраиваем так:
  1. Закладка Autoresponders.
  2. Включаем «Enable automatic responses»
  3. Добавляем строчку «If URI matches...» (вставляем URL к SWF на сайте спонсора, посмотреть его можно в окне web sessions Фиддлера), «then respond with» путь к нашей локальной SWF

Теперь можете идти браузером на сайт спонсора и отлаживать локальную SWF как будто она уже перезалита на сайт спонсора.

Успехов в отладке!
  • +39

Комментарии (29)

+1
Спасибо!
+2
За «подмену SWF» неистово плюсую.
Я уже устал гадать что там не так с API и вслепую переделывать все.
А что swf'ки тоже можно сниффить не догадался почему-то =) Буду пробовать.
0
От спасибо, пригодится!
  • FreeS
  • FreeS
0
Пасиб! :)
0
пасиб — важно, нужно, злободневно )
0
ой! а чо это когда я нажал «Добавить» при публикации предыдущего сообщения, у мну вылезло сообщение «Стоп спам» и оно (предыдущее сообщение) теперь не зеленого как обычно, а красного цвета ((((((((
0
Не знаю — я ничего «опасного» не делал. ;)
0
Спасибо, как раз кстати
0
Спасибо, — очень полезный пост!
0
Полезный пост, актуален всегда и для всех :))
0
Полезная информация, спасибо.
Еще бы что-то подобное про тестирование прелоадера в локальных условиях, вообще красота бы была!
+1
В смысле чтобы SWFка медленно грузилась?

В Fiddler есть Rules->Performance->Simulate Modem Speed.
0
ага. Еще вариант — в самом прелоадере скармливать классу прелоадера не реальный процент загрузки, а сгенерированный.
0
Это еще лучше. Т.к., например, для CPMStar может потребоваться замедлить прелоадер чуток. И тогда хорошая архитектура (в которую можно вставить такое торможение) поможет.
+1
А что делать, если реальный окажется более медленным, чем сгенерированный?
0
progress = Math.min(progress + 0.001, loaderInfo.bytesLoaded / loaderInfo.bytesTotal);
0
Ага, нашел, спасибо.
0
А что там с прелоадером? Во Flash IDE ctrl+enter два раза и все.
0
не все его юзают )
0
Ну, это мы еще в первом классе проходили. Вот как в FD такое проделать?
+1
Закидываешь собранную свфку во Flash IDE :)
0
Для первого варианта еще денвер хорошо подходит.
0
Спасибо — не сталкивался пока, выглядит интересно.
0
пхп+мускуль на локальной машине + можно ее расшарить для доступа из локалки. Плюс еще комплект других модулей.
0
Слишком громоздко.
0
для отладки сайтлоков — да. для порталоводов, социальщиков, да и других девелоперов — то что надо.
0
Денвер и любое другое AMP решение — это очень громоздко для отладки сайтлоков, где MySQL и PHP совершенно не нужны.
0
Как любитель альтернативных ОС для первого пункта использую (для python 3.x)
python -m http.server порт
+1
Отдельное спасибо за второй вариант!
Только зарегистрированные и авторизованные пользователи могут оставлять комментарии.