ab-go

Июль 12, 2015 · Posted in Без рубрики · Comment 

В общем я решил совместить два предыдущих поста и написал свою утилиту, похожую на ab, но с блэкджеком..

Особо рассказывать нечего, все по ссылке:

https://github.com/andboson/ab-go

Тестирование, графики, отсылка результатов и все такое. Очевидно, так как это то, чем я пользуюсь часто, будет развиваться.

Колхозное нагрузочное тестирование

Июнь 27, 2015 · Posted in Без рубрики · Comment 

Дано:
Приложение (на golang,в данном случае, но не суть важно).
Нужно:
Протестировать его под нагрузой. В частности, время ответа.

Простой способ, как протестировать приложение и получить график результата, без заморочек с graphite и ему подобных:

Идем на xively.com (бывший cosm) и регистрируем там девайс и канал.
Запускаем наше приложение на локале.
Пример скрипта проверки приложения и отсылки результата в xively:

#!/bin/bash
# file testing.sh

TIME=`curl -s -w "#"%{time_total}   -XPOST -H 'Content-type: application/json' -d"{\"session_id\":\"sess\", \"chan\":\"channel\"}" http://localhost:8000/api/v1/get_data | cut -d'#' -f2`
VALUE=`echo "$TIME*1000" | bc`
POSTDATA="{\"version\":\"1.0.0\", \"datastreams\" : [{\"id\" : \"ch\", \"current_value\" : \"$VALUE\"}]}"
echo $POSTDATA
curl -XPUT -H 'X-ApiKey: DSFewrwewWEDVdfsdfsfdsf' -d"$POSTDATA" https://api.xively.com/v2/feeds/24234342

и запускаем это:

watch -n 1 ./testing.sh

Идем на сайт xively и смотрим на наш график.
Добавляем нагрузку:

#!/bin/bash
#file run_ab.sh
ab -T POST  -c20 -n20 -p ab.txt http://localhost:8000/api/v1/get_data

Тут, думаю, все понятно. Утилита apache ab tester из пакета apache-utils, файл с post-данными и параметры.
Запскаем нагрузку:

watch -n 1 ./run_ab.sh

Вуаля.
Получаем какой-то более-менее, правдивый график, типа такого:
Screenshot from 2015-06-29 10:08:30

apache ab different post data

Июнь 12, 2015 · Posted in Без рубрики · Comment 

Поиски нужных инструментов никогда не заканчиваются.
Вот я использовал я apache ab для тестирования производительности и всем он был хорошо, кром одного: неизменяемые данные. Мне нужно было тестировать с разными post-данными

После поисков нашлась ссылка http://chrismiles.info/dev/testing/ab/. Этот патч позволяет задать файл, в котором будут перечислены добавочные параметры url. Правда для версии 2.2.4

Вооружившись этим патчем и stackoverflow, я немного допилил версию 2.4.9 ab-тестера.

Теперь она включает в себя патч, позволяющий менять url-параметры и задавать набор данных для post-запросов.
В обеих случаях разные данные располагаются в новых строках.
Скачать: ab

Или патч: ab_add_different_post_data.patch