Коллеги, возможно кто-то сталкивался с задачей нагрузочного тестирования с помощью Python.
Нужно отрпавлять50-80 запросов в секунду(на сайт) на протяжении 20-30 секунд и принимать ответ в виде JSON’a обрабатывая статус ответа (error: 503-я ошибка nginx , или ок:запрос прошел).
Возможно ли использовать потоки в Python и как это лучше сделать? Также нужно просуммировать кол-во ответов со статусом OK в секунду.
Для grinder’a я так понимаю нужен обьязательно Jython ? Просто все тесты написаны на Python (CPython) и нет возможности перейти на Java компилятор для Python
На python есть еще Multi-Mechanize Помимо этого есть еще одна хорошая тулзовина для нагрузки Web приложений - Tsung . Она позволяет делать большие нагрузки. Правда, если вы хотите запускать нагрузочные тесты своими уже написаными тестами на питоне, то тут уже другой подход.
Если ты ограничен только пайтоном, то я тоже советую Multi-Mechanize, но из-за GIL сгенерить реквестов больше 20 в секунду будет очено трудно. Если не получится, то попробуй сам написать асинхронную штуку. Юзай что-то такое в лупе :
from multiprocessing import Pool
pool = Pool(70)
response = pool.map_async(execute_request, request_params)
responses = response.get()
Напиши функцию execute_request так чтобы она отдавала ответ и сеукнду в которую он был получен,
а потом промапь количество ответов по секундам.
Ребят, если кто-то знает как прикрутить и настроить Multi-Mechanize в Eclipse напишите , плизз. Установил через pip , но запустить или создать проект с Multi-Mechanize не получается.
Либо мне на почту сбросьте свои координаты multi-1985@mail.ru , если согласны провести мини-мастер класс за оплату.
Ну лучше создать новую темы с информативным описанием, что пробовал, что не получилось и какие есть ошибки. А на счет консультации, если надо пиши в личку, помогу. Детали тут http://poliarush.com/services
На чем пробовал: Python 2.7 + Multi-Mechanize 1.2.0
Первое с чем столкнулся после интсаляции Multi-Mechanize (ставил через pip ) создал проект
multimech-newproject my_project
при запуске multimech-run my_project в results.csv не записывались данные.
В консоли получал ошибку ERROR: unable to create output directory
фиксается путем добавления import sys в resultswriter.py
- нужно заменить user_group.start() (в run.py line 90) на user_group.run()
Redirecting to Google Groups
После всех этих манипуляций результат сохранялся в results.csv
Дальше столкнулся с проблемой, что группы не запускаются параллельно. Пофиксить не удалось.
Так же с этим сталкивались другие Redirecting to Google Groups
- Так же обнаружил проблему с обработкой запросов,т.к в результатх попадались запросы при которых сервер отдавал 503-ю(по сути недоступен) , но в логах результатов писался ответ как при 200-й
2.Без понятия как создавать и запускать Multi-Mechanize проект из Eclipse
задал вопрос в группе - Redirecting to Google Groups
Хотел еще добавить пару инструментов: