tsung

Posted ilinunix

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了tsung相关的知识,希望对你有一定的参考价值。

1.简介

http://tsung.erlang-projects.org/user_manual/index.html
tsung 是一个分布式的多协议负载测试工具;
支持 HTTP, WebDAV, SOAP, PostgreSQL, mysql, LDAP and Jabber/XMPP 协议/服务器测试;

1.安装

# EPEL 源
$ sudo yum install tsung

2.命令

$ tsung <options> start|stop|debug|status|view

  -f <file>     默认配置为 ~/.tsung/tsung.xml,可以手动指定,- 表示从标准输入中读取;
  -l <logdir>       测试结果存放目录,默认为 ~/.tsung/log/YYYYMMDD-HHMM 目录;
  -i <id>       设置 controller 的 ID,默认为空;
  -r <command>      设置远程连接的方式,默认为 SSH(需要你提前配置好密钥认证);

  -n            不开启 web GUI,默认开启,端口为 8091;
  -k            测试完成后,仍然保持 web GUI 和 controller 在线;

    -s            enable erlang smp on client nodes
    -p <max>      set maximum erlang processes per vm (default is 250000)
    -X <dir>      add additional erlang load paths (multiple -X arguments allowed)
    -m <file>     write monitoring output on this file (default is tsung.log)
               (use - for standard output)
    -F            use long names (FQDN) for erlang nodes
    -L <lifetime> SSL session lifetime (600sec by default)
    -w <delay>    warmup delay (default is 1 sec)
    -x <tags>     list of requests tag to be excluded from the run (separated by comma)
    -t <min>      erlang inet listening TCP port min (default: 64000)
    -T <max>      erlang inet listening TCP port max (default: 65500)

3.HTTP配置文件

示例文件:/usr/share/doc/tsung/examples/http_simple.xml
————————————————————————————————————————————————————————————————————————————————————————————
<?xml version="1.0"?>
<!DOCTYPE tsung SYSTEM "/usr/share/tsung/tsung-1.0.dtd">
<tsung dumptraffic="false" loglevel="debug" version="1.0">

  <!-- 测试端设置 -->
  <!-- weight="1":当有多个客户端时,指定各自的权重,可以为整数或者浮点数;
       maxusers="800":该客户端最多拥有的用户数,默认为 800,可以设置大些如 ?30000;
                       一般来说一个进程默认能使用 1024 个句柄,该值决定了生成 vm 的数量;
       use_controller_vm="true":表示使用本程序作为对应主机的客户端;
                                 如果存在多个客户端,则其他主机默认使用 SSH 来进行调用通信;
       -->
  <clients>
    <client host="domob-207.domob-inc.cn" weight="3" maxusers="800">
      <!-- 当一个主机有多个IP时,可以轮训使用不同的IP去访问服务器 -->
      <ip value="10.9.195.12"></ip>
      <ip value="10.9.195.13"></ip>
    </client>
    <client host="localhost" use_controller_vm="true" weight="1" use_controller_vm="true"/>
  </clients>

  <!-- 被测试端设置 -->
  <!-- weight="4":在有多个 server 时,指定各个的权重,可以为整数或者浮点数;
       type="tcp":设置测试的服务类型,可以为 tcp, ssl, udp, ?websocket;
       -->
  <servers>
    <server host="vhost1.domob-inc.cn" port="80" type="tcp" ?weight="4"></server>
    <server host="vhost2.domob-inc.cn" port="80" type="tcp" ?weight="1"></server>
  </servers>

  <!-- 被监控端 -->
  <!-- 通常和被测试端的主机相同,会检测 cpu, network, memory;
       type="snmp":默认检测方式为 erlang(通信方式见 client),可选的有 snmp;
       --> 
  <monitoring>
    <monitor host="myserver" type="snmp"></monitor>
  </monitoring>

<!-- full url with server name, this overrides the "server" config value -->

<request> <http url="/" method="GET" version="1.1"></http> </request>
<request> <http url="/images/accueil1.gif" method="GET" version="1.1" if_modified_since="Fri, 14 Nov 2003 02:43:31 GMT"></http> </request>
<request> <http url="/images/accueil2.gif" method="GET" version="1.1" if_modified_since="Fri, 14 Nov 2003 02:43:31 GMT"></http> </request>
<request> <http url="/images/accueil3.gif" method="GET" version="1.1" if_modified_since="Fri, 14 Nov 2003 02:43:31 GMT"></http> </request>

<thinktime value="20" random="true"></thinktime>

<request> <http url="/index.en.html" method="GET" version="1.1" ></http> </request>



  • tsung
    dumptraffic="false" loglevel="notice" version="1.0"
  • clients
  • servers
  • monitoring
  • load
  • options
  • sessions
    由多个 session 区块组成,每个 session 区块可以由 tsung-recorder 命令通过设置代理来自动生成;
    注意:此时如果 URL 是 https 协议,则请用 http://- 来代替 https://

It can simulates thousands of users on a single CPU (Note: a simulated user is not always active: it can be idle during a thinktime period)






以上是关于tsung的主要内容,如果未能解决你的问题,请参考以下文章

tsung的配置使用

Tigase 拒绝 Tsung

性能测试之tsung

Tsung介绍

Tsung:在循环中使用迭代器

Tsung 使用 xmpp 认证