Ecosyste.ms: Awesome

An open API service indexing awesome lists of open source software.

Awesome Lists | Featured Topics | Projects

https://github.com/un-def/imarker-tests

WebIndex robot tests
https://github.com/un-def/imarker-tests

Last synced: 23 days ago
JSON representation

WebIndex robot tests

Awesome Lists containing this project

README

        

imarker-tests
=============

Два небольших теста, написанные для исследования поведения бота [одной сомнительной веб-аналитики imarker](http://habrahabr.ru/post/247465/) (IP 92.242.35.54; User-Agent: WebIndex). Для интересующихся — результаты тестирования в предпоследнем абзаце.

Тесты cookie и post проверяют, дублирует ли бот cookies и message body из POST-запроса (данные форм) соответственно. Оба теста состоят из статического файла ```index.html``` (страница входа), который должен располагаться на одном домене, и WSGI-скрипта ```run.py```, который следует запустить на поддомене главного домена (для post-теста можно использовать два независимых домена) — это отражено в структуре директорий. В файлах ```index.html``` следует изменить адрес ‘sub.example.com’ на адрес, на котором запущен ```run.py```.

```run.py``` представляет собой WSGI-приложение, запускаемое с помощью FastCGI-сервера из пакета [flup](http://www.saddi.com/software/flup/) — если вы используете другой способ, удалите соответствующие строки импорта и запуска из кода. При каждом запросе приложение сохраняет в базу данных SQLite 3 информацию о нём (HTTP_HOST, REQUEST_METHOD, REQUEST_URI, REMOTE_ADDR, HTTP_USER_AGENT и значение cookie или тело POST-запроса, сформированные с помощью ```index.html```). Для создания файла БД используйте прилагающийся сценарий ```create_db.py```. Созданный файл ```test.db``` должен располагаться рядом с ```run.py``` (в противном случае измените путь к нему).

В процессе тестирования бот WebIndex ни разу не использовал cookie и игнорировал POST-запросы (дублировал только GET-запросы пользователей), однако, учитывая малую продолжительность и охват тестов, не следует делать выводы об использовании или неиспользовании соответствующих пользовательских данных.

*Примечание:* выбор технологий обусловлен располагаемым оборудованием (тесты запускались на маршрутизаторе под управлением OpenWrt c веб-сервером lighttpd и Python 2.7), а подача и оформление тестов, включая используемые изображения — своеобразным (плохим) чувством юмора автора.