tanktools · PyPI
Яндекс-танк готовит phout файл со статистикой после нагрузочного тестирования. Модуль tanktools помогает парсить такие файлы и конвертировать в DataFrame. Вы можете использовать модуль pandas в ручном режиме для обработки DataFrame. или использовать встроенные функции.
Генерировать боеприпасы Яндекс-танка из файлов pcap или har с помощью pcap2ammo или har2ammo сумы. HTTP-запросы извлекаются полностью с заголовками и телом.
Так что можно:
расчет квантилей
получить информацию о тайминге, задержке, кодах состояния
извлекать запросы по отметке времени, тегу и другим столбцам
группировать и анализировать конкретные данные, такие как общий/частичный RPS, средний размер запроса/ответа
расчет статистических показателей
преобразовать файл pcap в боеприпасы
преобразовать файл har в боеприпасы
фильтровать и модифицировать запросы на генерацию боеприпасов
Установка
pip install tanktools
Примеры
Выберите DataFrame по метке времени
Возможен разбор части статистики по времени и общему количеству
от Tanktools Import Phout
флаги = {
'from_date': '2018-01-18 20:09:50.
123',
'to_date' : '2018-01-18 20:10:00.456',
«лимит»: 100
}
данные = phout.parse_phout('phout.log', флаги)
print("Общее количество: %d" % phout.size(data)) Общее количество: 100
Печать процентилей
данные = phout.parse_phout('phout.log')
phout.print_quantiles(данные, 'receive_time') процентили для 150030 запросов
от 18-01-2018 20:09:42.983
до 2018-01-18 20:10:55.108:
квантиль (%) Время_приема (мкс)
10,0 9
20,0 9
30,0 10
40,0 10
50,0 10
60,0 10
70,0 11
80,0 12
90,0 13
95,0 14
98,0 16
99,0 17
100,0 716 Примечание
Обратите внимание, тайминги исчисляются в микросекундах.
Медиана задержки печати
данные = phout.parse_phout('phout.log')
# Преобразование и печать времени в миллисекундах
print("\n\nМедиана задержки: %d мс" % int(data.latency.median() / 1000)) Медиана задержки: 30 мс
Получить RPS
данные = phout.parse_phout('phout.log') rps = phout.get_rps(данные)
Распечатать статистику ответов HTTP
данные = phout.parse_phout('phout.log')
phout.print_http_responses(данные) Количество HTTP-кодов в процентах (%)
500 83429 56,38
200 61558 41,60
502 2944 1,99
0 41 0,03 Выберите 200 ответов OK и распечатайте медиану задержки
данные = phout.parse_phout('phout.log')
selected_http_responses = данные [data.proto_code == 200]
print("Средняя задержка для 200 OK: %d" %
selected_http_responses.latency.median()) Медиана задержки для 200 OK: 3539
Распечатать средний размер запроса/ответа
print("Средний запрос/ответ: %d / %d байт" % (
data.size_in.astype(float).mean(),
data.size_out.astype(float).mean()
)) Ср. Запрос/Ответ: 364/26697 байт
Примечание
Обратите внимание, для корректной работы функции среднего необходимо преобразовать данные в число с плавающей запятой
Печать RPS по N-му запросу
print("RPS по запросу:")
chunk_size = int (phout.
size (данные) / 2)
для начала в диапазоне (0, phout.size (данные), chunk_size):
data_subset = phout.subset (данные, начало, размер блока)
print("\t%s: %.2f" %
(начало + chunk_size, phout.get_rps(data_subset))) RPS по запросу:
73986: 2062,50
147972: 2530,56 pcap2ammo
Преобразовать файл pcap в боеприпасы Яндекс-танка
файл pcap2ammo.pcap
73 ПОЛУЧИТЬ https://rambler.ru/ HTTP/1.1\r\n Хост: rambler.ru\r\n Длина содержимого: 0\r\n\r\n
Подсчет статистики по HTTP-запросам
pcap2ammo -S файл.pcap
Статистика:
всего: 1
полный: 1
неверно: 0
неполный: 0 Печать в файл
pcap2ammo -o out.ammo file.pcap
Фильтр пакетов TCP/IP
pcap2ammo -f 'ip.src==10.10.10.10 и tcp.dport==8080' file.pcap
Фильтр HTTP-пакетов
pcap2ammo -F '"rambler.ru" в файле http.uri.pcap
Вы можете использовать логические выражения в фильтрах
pcap2ammo -F '"keep-alive" в http.headers["connection"] или "Keep-alive" в http.headers["connection"]' file.pcap
Строковые функции через заголовки HTTP
pcap2ammo -F '"keep-alive" в http.headers["connection"].lower()' file.pcap
Использовать также без фильтров
pcap2ammo -F '"rambler.ru" != http.headers["хост"]' файл.pcap
хар2аммо
Преобразовать файл pcap в боеприпасы Яндекс-танка
файл har2ammo.har
73 ПОЛУЧИТЬ https://rambler.ru/ HTTP/1.1\r\n Хост: rambler.ru\r\n Длина содержимого: 0\r\n\r\n
Подсчет статистики по HTTP-запросам
har2ammo -S файл.har
Статистика:
всего: 1
полный: 1
неверно: 0
неполный: 0 Печать в файл
har2ammo -o out.ammo file.har
Фильтр HTTP-пакетов
har2ammo -F '"rambler.ru" в http.uri' файл.har
Вы можете использовать логические выражения и функции Python в фильтрах
har2ammo -F '"keep-alive" в http.headers["connection"] или "Keep-alive" в http.headers["connection"]' file.har har2ammo -F '"keep-alive" не в http.headers["connection"].lower()' file.har
Подробнее о фильтрах смотрите в описании пакета pcaper.
Анализ запросов Яндекса Марии Рубцовой, Олега Павенкова :: SSRN
Proceedings of the Feminist Art Conference 2017: Embodied Resistance, Toronto, ON, 21 января 2017
Опубликовано: 26 сентября 2017 г.
Смотреть все статьи Марии Рубцовой
Северо-Западный институт управления-филиал РАНХиГС
Российская академия народного хозяйства и государственной службы при Президенте Российской Федерации (РАНХиГС) — Московский кампус
Дата написания: 24 сентября 2017 г.
Реферат
Статья посвящена анализу дискриминации женщин-политиков в современной России. Для этого мы провели анализ запросов Яндекса о женщинах-политиках. Мы использовали доступную информацию в статистике Яндекса, которая позволяет сформулировать гипотезу о дискриминации женщин-политиков как объектов сексуального удовлетворения.
СМИ опираются на запросы населения. Самый простой способ найти статистические запросы населения — это проанализировать статистику Яндекса. Однако мы получим информацию только о людях, которые пользуются Интернетом. Структура запросов фотографий женщин-политиков в Интернете отличается от запросов мужчин-политиков.
С помощью системы Яндекс мы сравнили поиск фотографий Дмитрия Медведева (премьер-министр, второе лицо в государстве) и Валентины Матвиенко (глава Совета Федерации, третье лицо в государстве) в период с февраля 2016 по февраль 2017 года. Мы видим сопоставимый интерес и его динамику. 31 617 запросов «фото Медведева» и 25 788 запросов «фото Матвиенко». Но структура этих запросов принципиально иная. Запросы о женщинах-политиках содержат много запросов со словами «голая», «порно» и т. д. Например, сравним запросы «голая Валентина Матвиенко» и «голый Дмитрий Медведев». 0,9% изображений Медведева 12,4% изображений, которые Матвиенко запрашивает, содержат слово «голая». 21,72% запросов на фото Матвиенко имеют различные вариации, связанные с сексуально-телесным представлением, и только 1,44% запросов на фото Медведева содержат такие смыслы.


123',
'to_date' : '2018-01-18 20:10:00.456',
«лимит»: 100
}
данные = phout.parse_phout('phout.log', флаги)
print("Общее количество: %d" % phout.size(data))
parse_phout('phout.log')
rps = phout.get_rps(данные)
size (данные) / 2)
для начала в диапазоне (0, phout.size (данные), chunk_size):
data_subset = phout.subset (данные, начало, размер блока)
print("\t%s: %.2f" %
(начало + chunk_size, phout.get_rps(data_subset)))
headers["connection"] или "Keep-alive" в http.headers["connection"]' file.pcap
headers["connection"] или "Keep-alive" в http.headers["connection"]' file.har
har2ammo -F '"keep-alive" не в http.headers["connection"].lower()' file.har