› › 文章

Tsung压力测试文件配置说明

其实前边说了听过关于Tsung的安装配置使用,就是没有详细的解释过每个东西的配置选项和参数,下面就给出一个我自己整理的配置文件的说明,直接在上边标注的,不要嫌弃哦.

PS:这个文件是不能直接使用的.

<?xml version="1.0"?>
<!DOCTYPE tsung SYSTEM "/usr/local/tsung/share/tsung/tsung-1.0.dtd"[
<!ENTITY mysession1 SYSTEM "/root/.tsung/tsung_recorder20130716-0945.xml">
]>
<!-- loglevel:工具写日志的标识,级别默认是"info",长时间运行建议调整为error -->
<!-- dumptraffic:运行的调试信息dump文件,如需要看脚本是否正确可以设置为"true",级别默认是"false",长时间运行建议调整为false -->
<tsung loglevel="notice" version="1.0">

  <!-- Client side setup -->
  <!-- 集群Client设置 -->
  <!-- host必须是主机名,不能是IP地址 -->
  <!-- weight: 节点上面用户的比例,一般设置为1即可 -->
  <!-- maxusers: 一般设置为800,3000即可,根据机器配置来设置大小 超过这个数目
       会自动开启更多的节点-->
  <!-- cpu: 根据机器硬件配置来设置,如果是4核CPU,最佳设置为3,以此类推 -->

  <clients>
    <client host="localhost" use_controller_vm="true"/>
  </clients>

  <!-- Server side setup -->
  <!-- host: 填别名,需要先去host文件配置 -->
  <!-- port: 填可用对外端口,一般80 -->
  <!-- type: 协议类型,tsung支持tcp/udp,根据自己的需要 -->
  <!-- weight 设置权重,整数型 -->
<servers>
  <server host="192.168.1.3" port="80" type="tcp"></server>
</servers>

  <!-- 监控(cpu, network, memory). 使用erlang或SNMP,erlang是默认值 
  但是要保证监控的机器和server可以互相访问,装有erlang,否则用snmp -->
  <!-- 默认的snmp端口是161 默认的版本是v1 -->
  <monitoring>
    <monitor host="192.168.1.3" type="snmp">
      <snmp version="v2" community="public" port="161">
       <!-- 统计IO读,单位是blocks/s -->
       <oid name="io_sent" value=".1.3.6.1.4.1.2021.11.5.0" ></oid>
       <!-- 统计IO写,单位是blocks/s -->
       <oid name="io_receive" value=".1.3.6.1.4.1.2021.11.6.0" ></oid>
      </snmp>
    </monitor>
  </monitoring>

  <!-- 负载场景设置 -->
  <load>
  <!-- several arrival phases can be set: for each phase, you can set
  the mean inter-arrival time between new clients and the phase
  duration -->
  <!-- phase:阶段,填数字即可,系统会按顺序执行,可以设置多个阶段组合场景 -->
  <!-- duration:持续时段,填数字即可,单位是unit="minute"设置,是分钟 
  也可设置小时,天,详细情况参考API -->
  <!-- arrivalrate:虚拟用户数,填写数字即可,一般最大800,如过机器配置好,可自己调试最佳参数 
  有效单位unit="second" 是秒,每秒虚拟300个虚拟用户,实际执行情况可能超过,也可能达不到,需要根据调试得到最佳参数 -->
  <!-- interarrival: 时间间隔默认是2秒产生一个用户 这个选项可以和arrivalrate互相调换 -->
  <!-- maxnumber: 这个是设置最大用户数,所产生的总用户数不会超过这个 -->
   <arrivalphase phase="1" duration="10" unit="minute">
     <users arrivalrate="50" unit="second"></users>
   </arrivalphase>
   <!-- 如果你想设置分时间阶段的会话可以这样,这个这里的session必须是录制的脚本或者自己添加的session  -->
   <user session="session1" start_time="185" unit="second"></user>
   <user session="session2" start_time="10" unit="minute"></user>
   <user session="session3" start_time="11" unit="minute"></user>
  </load>

  <options>
   <option type="ts_http" name="user_agent">
    <!-- 设置浏览器类型 probability为所占总的浏览器类别的百分比 -->
    <user_agent probability="80">Mozilla/5.0 (X11; U; Linux i686; en-US; rv:1.7.8) Gecko/20050513 Galeon/1.3.21</user_agent>
    <user_agent probability="20">Mozilla/5.0 (Windows; U; Windows NT 5.2; fr-FR; rv:1.7.8) Gecko/20050511 Firefox/1.0.4</user_agent>
   </option>
  </options>

  <!-- start a session for a http user. the probability is the
  frequency of this type os session. The sum of all session's
  probabilities must be 100 -->

 <sessions>
  <!-- 设置多个session
       weight 权重 -->
  <session name="session1" weight="2" type="ts_http">

   <!-- 变量的设置需要在session中设置 -->

   <!-- 如果是引用外部的csv文件需要先设置fileid-->
   <options>
    <option name="file_server" id="user_list" value="users.csv"/>
   </options>
   <!-- sourcetype:根据需求,参考API,我这里是csv文件 -->
   <!-- fileid:根据tsung.xml内的option文件操作的id一致 -->
   <!-- order:我这里选择的random随机,根据需求参考API -->
   <!-- delimiter: 设置分割符 也就是上边csv文件中存储的账号密码之间的连接符 -->
   <!-- name:这个变量的名称 -->
   <setdynvars sourcetype="file" fileid="user_list" order="random">
    <var name="userid" />
   </setdynvars>
   <!-- sourcetype:根据需求,参考API,我这里是csv文件 -->
   <!-- fileid:根据tsung.xml内的option文件操作的id一致 -->
   <!-- order:我这里选择的random随机,根据需求参考API -->
   <!-- name:这个变量的名称 -->
   <setdynvars sourcetype="file" fileid="userdb" order="random">
    <var name="user" />
   </setdynvars>
   <!-- sourcetype:根据需求,参考API,random_number随机数字 -->
   <!-- start:开始数字 -->
   <!-- end:结束数字 -->
   <!-- name:这个变量的名称 -->
   <setdynvars sourcetype="random_number" start="1" end="40">
    <var name="rndint" />
   </setdynvars>
   <!-- 在request中需要指定subst="true"来使用替换 -->
   <request subst="true"></request>
   <!-- 在手动指定的session中的某个请求中加入等待时间,也可以在录制的脚本中加入,下面是随机等待时间 -->
   <thinktime value='%%_rndthink%%' random='true'></thinktime>
  </session>
  <session name="session2" weight="1" type="ts_http"></session>
  <!-- 只有一个录制的session的时候可以这样调用 -->
  &mysession1;
 </sessions>
</tsung>

我想只要你能够仔细的阅读这个配置文件,就能配置出属于自己的http压力测试的文件,一定要仔细阅读哦~

如果有什么问题可以在下边的评论中提出,我会第一时间回复的~   大家一起交流学习....

本文固定链接:http://www.bbtang.info/linux/675.html 原文链接:Tsung压力测试文件配置说明,转发请注明来源!
1 0

发表评论

  • 评论9则,共1页,当前第1
    • LiMeng1995
      回复冰封 :

      我的联系方式是QQ 976068749 能和您联系一下吗?这块确实遇到一些问题,想不太明白

    • 冰封 [管理员]
      回复LiMeng1995 :

      这个应该是所有的总的用户数不会超过20W,而每秒是100个用户的增加量吧.

    • LiMeng1995
      回复冰封 :

      <arrivalphase phase="1" duration="2" unit="hour">
      <!--users interarrival="0.01" unit="second"></users-->
      <users maxnumber="200000" arrivalrate="100" unit="second"></users>
      </arrivalphase>
      你能帮我看下这是多少吗?20万?

    • 冰封 [管理员]
      回复LiMeng1995 :

      之前测试的是web网站http请求的,他的这个并发,不是一下就直接上来的,而是一点点的增加的,里边有一个设置最大并发的arrivalrate:参数,然后你再设置每秒增加多少个并发,然后设置持续时间应该就会自己慢慢增加,然后达到你设置的最大并发数,最后一直保持在这个并发,直到每个并发都完成,且到达你设置的时间,就会慢慢停止了. 大概就是这个样子了,很久之前弄的现在也都忘记了.

    • LiMeng1995
      回复冰封 :

      你是测试的http还是其他的,你这里并发是多少呢,我已经试了,不会调整并发数量.....

    • 冰封 [管理员]
      回复LiMeng1995 :

      我也记不清楚了,你可以自己试试.

    • LiMeng1995
      回复LiMeng1995 :

      <arrivalphase phase="1" duration="10" unit="minute">
      <users arrivalrate="50" unit="second"></users>
      </arrivalphase> 这里并发是多少呀,执行10分钟每秒50个用户是吗

    • 冰封 [管理员]
      回复哈秀时尚 :

      不用客气,哈哈。。。