Successfully reported this slideshow.
We use your LinkedIn profile and activity data to personalize ads and to show you more relevant ads. You can change your ad preferences anytime.
Инструмент для нагрузочного    тестирования Tsung.     Калантай Артём
История создания1. Erlang — был разработан компанией Ericson.2. Tsung изначально был предназначен для нагрузочного   тести...
Преимущества Tsung1. Написан на Erlang — отличительной особенностью языка   является модель легковесных процессов.2. Свобо...
Erlang. Moдель акторов   Erlang — функциональный язык программирования сдинамической типизацией, предназначенный для созда...
HTTP1. Запросы GET, POST, PUT, DELETE, HEAD.2. Автоматическое управление cookies.3. Поддержка GET If-modified since.4. Реж...
Jabber/XMPP1. Сообщения о аутентификации, регистрации и присутствии.2. Чат сообщения для онлайн и оффлайн пользователей.3....
Tsung recorder1. Настроить браузер на прокси Tsung-a (порт 8090).2. Произвести необходимые действия.3. Использовать файл с...
Файл конфигурации tsung.xmlСтруктура<?xml version="1.0"?><tsung loglevel="info" dumptraffic="false">  ...</tsung>
Tsung.xml: Клиенты и серверыTsung-кластер:<clients>  <client host="test1" weight="1" maxusers="8000">    <ip value="10.0.2...
Tsung.xml: Мониторинг<monitoring>  <monitor host="10.1.1.94" type="erlang"/>  <monitor host="10.1.1.95" type="munin">    <...
Tsung.xml: Наращивание нагрузки<load>  <arrivalphase phase="1" duration="10" unit="minute"><!-- Фаза разогрева -->     <us...
Tsung.xml: Наращивание нагрузки (2)
Tsung.xml: User agents<option type="ts_http" name="user_agent">  <user_agent probability="60">    Mozilla/5.0 (Macintosh; ...
Tsung.xml: Наследование свойств
Tsung.xml: Сессии HTTP (1)<sessions>  <session name="http-session" probability="70" type="ts_http">    <request> <http url...
Tsung.xml: Сессии HTTP (2)<http url="/bla" method="POST" contents="bla=blu&amp;name=glop">  <www_authenticate userid="vasy...
Tsung.xml: Сессии Jabber/XMPP<sessions>  <session probability="100" name="jabber-example"  type="ts_jabber">     <request>...
Tsung.xml: Сессии смешанного типа<request>  <jabber type="chat" ack="no_ack" size="16" destination="offline"/></request><t...
Tsung.xml: Чтение из внешнего файлаОпределить местоположение файла:<options>  <option name="users_file" id="users" value="...
Tsung.xml: Вставка Elang кодаДля расширения функциональности Tsung-а можно использовать  вставки Erlang кода:<setdynvars s...
Tsung.xml Response parsing(HTTP)Regexp:<request>   <dyn_variable name="mytitlevar"  re="&lt;title&gt;(.*)&lt;/title&gt;"/>...
Tsung.xml Response parsing(SQL)<request>  <dyn_variable name="user_pass"  pgsql_expr="data_row[2][3]"/>  <dyn_variable nam...
Tsung.xml: Loops, If, Foreach<for var="1" from="" to="100">   <request>      <dyn_variable name="free_games"  xpath="/root...
Java GC domosti.ru под нагрузкой
Подведем итоги1. Эффективен для высоконагруженных проектов.2. Подходит для тестирования многих видов клиент-   серверных п...
Недостатки Tsung1. Отсутствует GUI2. Не работает под Windows
Полезные ссылкиhttp://tsung.erlang-projects.org - официальный сайтhttp://www.process-one.net – поддержкаhttp://www.erlang....
Вопросы?
Приложение 1: Установка и запуск1. apt-get install gnuplot-nox libtemplate-perl libhtml-template-perl   libhtml-template-e...
Приложение 2: Параметры запуска tsung <options> start|stop|debug|status Options:   -f <file> set configuration file (defau...
Upcoming SlideShare
Loading in …5
×

Инструмент для нагрузочного тестирования Tsung (Артём Калантай)

5,565 views

Published on

  • Be the first to comment

Инструмент для нагрузочного тестирования Tsung (Артём Калантай)

  1. 1. Инструмент для нагрузочного тестирования Tsung. Калантай Артём
  2. 2. История создания1. Erlang — был разработан компанией Ericson.2. Tsung изначально был предназначен для нагрузочного тестирования Jabber-а.3. Tsung поддерживается компнией Process-One
  3. 3. Преимущества Tsung1. Написан на Erlang — отличительной особенностью языка является модель легковесных процессов.2. Свободно распространяемый.3. Протоколонезависимый - HTTP (в том числе SOAP), WebDAV, Jabber/XMPP, PostgreSQL, LDAP и MySQL.4. Нагрузка может быть распределена на кластере из клиентских машин.
  4. 4. Erlang. Moдель акторов Erlang — функциональный язык программирования сдинамической типизацией, предназначенный для созданияраспределённых вычислительных систем. Модель акторов представляет собой математическую модельпараллельных вычислений, которая трактует понятие «актор» какуниверсальный примитив параллельного численного расчёта.
  5. 5. HTTP1. Запросы GET, POST, PUT, DELETE, HEAD.2. Автоматическое управление cookies.3. Поддержка GET If-modified since.4. Режим прокси для записи сессий с помощью браузера.5. Поддержка SOAP с помощью HTTP запросов (SOAPAction заголовки обрабатываются).
  6. 6. Jabber/XMPP1. Сообщения о аутентификации, регистрации и присутствии.2. Чат сообщения для онлайн и оффлайн пользователей.3. Roster- и get-запросы.4. Многопользовательский чат: подключение к room-у, сообщения в room-e, смена nick-а.5. Запросы синхронизации пользователей.
  7. 7. Tsung recorder1. Настроить браузер на прокси Tsung-a (порт 8090).2. Произвести необходимые действия.3. Использовать файл созданный recorder-ом для дальнейшей конфигурации.
  8. 8. Файл конфигурации tsung.xmlСтруктура<?xml version="1.0"?><tsung loglevel="info" dumptraffic="false"> ...</tsung>
  9. 9. Tsung.xml: Клиенты и серверыTsung-кластер:<clients> <client host="test1" weight="1" maxusers="8000"> <ip value="10.0.2.3"/> <ip value="10.0.2.4"/> </client> <client host="test2" weight="3" maxusers="25000" cpu="2"> <ip value="10.1.2.5"/>
  10. 10. Tsung.xml: Мониторинг<monitoring> <monitor host="10.1.1.94" type="erlang"/> <monitor host="10.1.1.95" type="munin"> <munin port="8081"/> </monitor> <monitor host="10.1.1.96" type="snmp"> <snmp version="v2" community="rwCommunty" port="11161"/> </monitor>
  11. 11. Tsung.xml: Наращивание нагрузки<load> <arrivalphase phase="1" duration="10" unit="minute"><!-- Фаза разогрева --> <users interarrival="0.1" unit="second"> </users> </arrivalphase> <arrivalphase phase="2" duration="60" unit="minute"><!-- Фаза нагрузки --> <users arrivalrate="1000" unit="second"> </users>
  12. 12. Tsung.xml: Наращивание нагрузки (2)
  13. 13. Tsung.xml: User agents<option type="ts_http" name="user_agent"> <user_agent probability="60"> Mozilla/5.0 (Macintosh; Intel Mac OS X 10.6; rv:9.0) Gecko/20100101 Firefox/9.0 </user_agent> <user_agent probability="20"> Mozilla/5.0 (compatible; MSIE 8.0; Windows NT 5.0; Trident/4.0; InfoPath.1; SV1; .NET CLR 3.0.4506.2152; .NET CLR 3.5.30729; .NET
  14. 14. Tsung.xml: Наследование свойств
  15. 15. Tsung.xml: Сессии HTTP (1)<sessions> <session name="http-session" probability="70" type="ts_http"> <request> <http url="/images/logo.gif" method="GET" version="1.1" if_modified_since="Mon, 02 Apr 2012 14:13:32 GMT"/> </request> <thinktime value="20" random="true"/> <transaction name="index_request"> <request> <http url="/index.en.html" method="GET" version="1.1" /> </request>
  16. 16. Tsung.xml: Сессии HTTP (2)<http url="/bla" method="POST" contents="bla=blu&amp;name=glop"> <www_authenticate userid="vasya" passwd="test"/> <http_header name="Cache-Control" value="no-cache"/></http><http url=product_page method=POST contents_from_file=/tmp/myfile /><http url="/" method="GET" version="1.1"> <add_cookie key="test" value="new"/> <add_cookie key="id" value="548"/></http>
  17. 17. Tsung.xml: Сессии Jabber/XMPP<sessions> <session probability="100" name="jabber-example" type="ts_jabber"> <request> <jabber type="connect" ack="local" /> </request> <thinktime value="2"/> <transaction name="authenticate"> <request> <jabber type="auth_get" ack="local"/> </request> <request> <jabber type="auth_set_plain" ack="local"></jabber> </request>
  18. 18. Tsung.xml: Сессии смешанного типа<request> <jabber type="chat" ack="no_ack" size="16" destination="offline"/></request><thinktime value="3"/><change_type new_type="ts_http" host="foo.bar" port="80" server_type="tcp" store="true"/><request> <http url="http://foo.bar/"/> </request><request> <http url="/favicon"/> </request><change_type new_type="ts_jabber" host="localhost" port="5222" server_type="tcp" restore="true"/>
  19. 19. Tsung.xml: Чтение из внешнего файлаОпределить местоположение файла:<options> <option name="users_file" id="users" value="/path/params.csv"/></options>Присвоить результаты переменным:<setdynvars sourcetype="file" fileid="users" delimiter=";" order="iter"> <var name="param1" /> <var name="param2" />
  20. 20. Tsung.xml: Вставка Elang кодаДля расширения функциональности Tsung-а можно использовать вставки Erlang кода:<setdynvars sourcetype="file" fileid="md5" delimiter=";" order="iter"> <var name="md5data"/></setdynvars><setdynvars sourcetype="eval" code="fun({Pid, DynVars})-> {ok, Val}=ts_dynvars:lookup(md5data, DynVars), ts_digest:md5hex(Val) end.">
  21. 21. Tsung.xml Response parsing(HTTP)Regexp:<request> <dyn_variable name="mytitlevar" re="&lt;title&gt;(.*)&lt;/title&gt;"/> <http url="/testtsung.html" method="GET" version="1.0"/></request>
  22. 22. Tsung.xml Response parsing(SQL)<request> <dyn_variable name="user_pass" pgsql_expr="data_row[2][3]"/> <dyn_variable name="user_id" pgsql_expr="data_row[2].user_id"/> <pgsql type="sql">SELECT * from users LIMIT
  23. 23. Tsung.xml: Loops, If, Foreach<for var="1" from="" to="100"> <request> <dyn_variable name="free_games" xpath="/root/games/slot/@free_games"/> <http url="/slot.jsp" method="GET" version="1.1"/>
  24. 24. Java GC domosti.ru под нагрузкой
  25. 25. Подведем итоги1. Эффективен для высоконагруженных проектов.2. Подходит для тестирования многих видов клиент- серверных приложений.3. Может использоваться всего на одной машине.
  26. 26. Недостатки Tsung1. Отсутствует GUI2. Не работает под Windows
  27. 27. Полезные ссылкиhttp://tsung.erlang-projects.org - официальный сайтhttp://www.process-one.net – поддержкаhttp://www.erlang.org - официальный сайт Erlanghttp://tsung.erlang-projects.org/user_manual.html – руководствоhttp://www.opentrust.ru/
  28. 28. Вопросы?
  29. 29. Приложение 1: Установка и запуск1. apt-get install gnuplot-nox libtemplate-perl libhtml-template-perl libhtml-template-expr-perl2. Скачать последнюю версию tsung-1.4.1.tar.gz.3. Распаковать tar -zxvf tsung-1.4.1 .tar.gz4. Установить ./configure && make && make install5. Создать каталог с именем .tsung в root-директории и конфигурационный файл tsung.xml в ней
  30. 30. Приложение 2: Параметры запуска tsung <options> start|stop|debug|status Options: -f <file> set configuration file (default is ~/.tsung/tsung.xml) (use - for standard input) -l <logdir> set log directory (default is ~/.tsung/log/YYYYMMDD-HHMM/) -i <id> set controller id (default is empty)

×