tsung压力测试——tcp测试tsung.xml配置模版说明
Tsung解析Tsung.xml配置文件 见http://blog.csdn.net/libing1991_/article/details/47684433
<?xml version="1.0"?>
<!DOCTYPE tsung SYSTEM "/usr/local/share/tsung/tsung-1.0.dtd">
<tsung loglevel="info" dumptraffic="true" version="1.0"> <!-- weight 集群时有用-->
<!-- maxusers 产生测试用户数-->
<!-- Client side setup -->
<!-- 集群Client设置 -->
<!-- host必须是主机名,不能是IP地址 -->
<!-- weight: 节点上面用户的比例,一般设置为1即可 -->
<!-- maxusers: 一般设置为800,3000即可,根据机器配置来设置大小 超过这个数目
会自动开启更多的节点-->
<!-- cpu: 根据机器硬件配置来设置,如果是4核CPU,最佳设置为3,以此类推 -->
<clients>
<client host="localhost" weight="1" maxusers="10" use_controller_vm="true"/>
</clients> <!-- 测试服务器配置信息 -->
<servers>
<server host="localhost" port="8102" type="tcp"></server>
</servers> <!-- load段可配置访问的负载,访问可以配成多个阶段,由phase值指定。duration是测试持续时间,unit是单位
users段的maxnumber限制了生成的最大用户数,interarrival=”0.02”表示0.02秒产生一个新用户,用户按照session的配置顺
序执行session中的request
-->
<!-- 负载场景设置 --> <!-- phase:阶段,填数字即可,系统会按顺序执行,可以设置多个阶段组合场景 -->
<!-- duration:持续时段,填数字即可,单位是unit="minute"设置,是分钟
也可设置小时,天,详细情况参考API -->
<!-- arrivalrate:虚拟用户数,填写数字即可,一般最大800,如过机器配置好,可自己调试最佳参数
有效单位unit="second" 是秒,每秒虚拟300个虚拟用户,实际执行情况可能超过,也可能达不到,需要根据调试得到最佳参数 -->
<!-- interarrival: 时间间隔默认是2秒产生一个用户 这个选项可以和arrivalrate互相调换 -->
<!-- maxnumber: 这个是设置最大用户数,所产生的总用户数不会超过这个 -->
<load>
<arrivalphase phase="1" duration="1" unit="minute">
<users arrivalrate="2" unit="second"></users>
</arrivalphase>
</load> <sessions> <!-- 测试接口配置信息 -->
<session probability="100" name="raw" type="ts_raw"> <!-- 随机生成15位数 -->
<!-- 调用这个随机生成数 %%_iemi_%% ,前提 <request> 必须配 subst="true"-->
<setdynvars sourcetype="random_string" length="15">
<var name="imei" />
</setdynvars> <!-- 这里可以配置多个事物,每个事物代表一个接口请求-->
<transaction name="login">
<request subst="true">
<!-- 向 服务器 发送 data 这段 数据 -->
<raw data="[SG*%%_imei%%*000D*LK,50,100,100]" ack="no_ack"></raw>
</request>
</transaction>
<!-- 会话持续时间 10 秒,即10后tcp断开连接 -->
<thinktime value="10"/>
</session>
</sessions>
</tsung>
配置文件
打开 http_simple.xml ,下面来讲几个关键的配置。
clients
用户产生的方式
<clients>
<client host="localhost" use_controller_vm="true" maxusers="30000"/>
</clients>
tsung运行时可以由很多的虚拟机组成,client配置指明这个client机器上最多生成的用户数,如果use_controller_vm为true的话,那么当用户数达到maxusers,tsung会自动生成新的VM。
servers
<servers>
<server host="garden.blue.jude.poppen.lab" port="80" type="tcp"></server>
</servers>
server段可以配置被测服务器的相关信息,也可以配置成集群,如下
<servers>
<server host="server1" port="80" type="tcp" weight="4"></server>
<server host="server2" port="80" type="tcp" weight="1"></server>
</servers>
tsung会根据weight值来选择发起请求的server
monitoring
系统监控服务,配置完后可获取被测server的cpu,内存,负载,数据库的相关信息。可以配置成erlang的监控服务和snmp的监控服务。
<monitoring>
<monitor host="garden" type="erlang">
<mysqladmin port="3306" username="root" />
</monitor>
</monitoring>
load
<load>
<arrivalphase phase="1" duration="3" unit="minute">
<users maxnumber="100" interarrival="0.02" unit="second" ></users>
</arrivalphase>
</load>
load段可配置访问的负载,访问可以配成多个阶段,由phase值指定。duration是测试持续时间,unit是单位。
users段的maxnumber限制了生成的最大用户数,interarrival=”0.02”表示0.02秒产生一个新用户,用户按照session的配置顺序执行session中的request。
options
<options>
<option type="ts_http" name="user_agent">
<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>
options段可配置一些请求的信息,如agent信息。
sessions
<sessions>
<session name="http-example" probability="70" type="ts_http">
<setdynvars sourcetype="random_number" start="1" end ="100">
<var name="itemid" />
</setdynvars>
<transaction name='getlist'>
<request subst="true">
<http url="/comment/getList" method="POST" contents = "item_type=image&item_id=%%_itemid%%"></http>
</request>
</transaction>
</session>
<session name="http-example" probability="30" type="ts_http">
<setdynvars sourcetype="random_number" start="1" end="100">
<var name="itemid" />
</setdynvars>
<setdynvars sourcetype="random_number" start="20" end="5000000">
<var name="content" />
</setdynvars>
<transaction name='getlist'>
<request subst="true">
<http url="/comment/addComment" method="POST" contents = "item_type=image&item_id=%%_itemid%%&content=%%_content%%"></http>
</request>
</transaction>
</session>
</sessions>
可配置多个子session,进而可测试多个api,可以设置请求概率,在probability里被定义,要求每个session的probability之和是100。类型是http。
sessions里可用for来设定请求次数,如下
<for from="1" to="@loop" incr="1" var="counter">
在里面可以设置请求的具体信息。在请求参数里可以带上随机数。随机数和随机字符串的定义如下:
<setdynvars sourcetype="random_number" start="20" end="5000000">
<var name="xxx" />
</setdynvars>
<setdynvars sourcetype="random_string" length="10">
<var name="xxx" />
</setdynvars>
以%%_xxx%%的形式来调用,这里必须注意的是,要使用随机数,request必须加上subst=”true”参数,不然随机数无法被引用成功。随机数也可从文件读取,如csv。
http内部可定义header参数:
<http_header name="Authorization" value="111"/>
<http_header name="Cookie" value="authToken=%%_auth_token%%; Path=/"/>
<!-- content-Type:POST请求参数的格式,如果是json格式可以这样写 -->
<http_header name="Content-Type" value="application/json"/>
thinktime可用于定义两个请求的间隔时间
<thinktime value="1"/>
另外可定义不同的transaction ,这样子结果里就会显示不同transaction的具体信息。
tsung压力测试——tcp测试tsung.xml配置模版说明的更多相关文章
- CentOS压力测试工具Tsung安装和图形报表生成Tsung安装配置
Tsung 是一个压力测试工具,可以测试包括HTTP, WebDAV, PostgreSQL, MySQL, LDAP, and XMPP/Jabber等服务器.针对 HTTP 测试,Tsung 支持 ...
- Tsung压力测试:Openfire
环境准备 安装Tsung.安装openfire.安装Spark 要对openfire进行压力测试,因此我们主要讲解如何利用jabber_register.xml在openfire上面注册用户,以及利用 ...
- Tsung测试Tcp协议的应用或接口
利用Tsung模拟基于Tcp的业务流程,实属无奈.因ConnectManager部署在linux下,其中,Loadrunner的winsocket因不支持linux platform而无法使用,而Jm ...
- tsung压力测试——安装
在安装之前确保安装了以下工具: erlang 必须要有安装java环境,要不然不成功 yum install gcc yum install gcc-c++ yum install libtool y ...
- tsung压力测试环境部署详细步骤(内附安装包)
操作系统: Redhat 6.3.Redhat6.5 .centos7.4(这些版本已验证过) tsung版本: tsung-1.6.0 下载地址: 链接: https://pan.baidu.com ...
- 测试TCP/IP配置
安装网络硬件和网络协议之后,我们一般要进行TCP/IP协议的测试工作,那么怎样测试才算是比较全面的测试呢?我们认为,全面的测试应包括局域网和互联网两个方面,因此应从局域网和互联网两个方面测试,以下是我 ...
- JMeter测试TCP服务器遇到的一个奇怪问题
今天工作需要测TCP服务器的压力,因为tsung测试TCP需要写的脚本实在头大,于是换了JMETER来搞压力测试.在实际测试的过程中,遇到了一个很奇怪的问题,就是发了数据包以后,JMeter不停地报5 ...
- jmeter测试TCP服务器/模拟发送TCP请求 设置16进制发送(转)
转载留存:http://blog.sina.com.cn/s/blog_46d0362d0102v8ii.html 性能测试需要模拟多种场景,经常受制于资源限制,没办法建立贴近实际部署环境的场景.因而 ...
- jmeter测试TCP服务器/模拟发送TCP请求
jmeter测试TCP服务器,使用TCP采样器模拟发送TCP请求. TCP采样器:打开一个到指定服务器的TCP / IP连接,然后发送指定文本并等待响应. jmeter模拟发送TCP请求的方法: 1. ...
随机推荐
- JavaScript实现模糊推荐的input框(类似百度搜索框)
如何用JS实现一个类似百度搜索框的输入框呢,再填充完失去焦点时,自动填充配置项,最终效果如下图: 实现很简单,但是易用性会上升一大截,需要用到的有jquery-ui的autocomplete,jque ...
- CoreData归纳使用
1.CoreData简介 2.CoreData数据模型 3.CoreData的主要对象 4.使用CoreData实现数据存储 一.CoreData简介 CoreData用做数据持久化,是数据持久化的最 ...
- web前端上传图片的几种方法
1.表单上传 最传统的图片上传方式是form表单上传,使用form表单的input[type=”file”]控件,打开系统的文件选择对话框,从而达到选择文件并上传的目的. form表单上传 表单上传需 ...
- 【学习】如何用jQuery获取iframe中的元素
(我的博客网站中的原文:http://www.xiaoxianworld.com/archives/292,欢迎遇到的小伙伴常来瞅瞅,给点评论和建议,有错误和不足,也请指出.) 说实在的,以前真的很少 ...
- (@WhiteTaken)设计模式学习——代理模式
今天学习了一下代理模式,代理模式分为很多种.目前感觉有两种是需要学习一下的. 静态代理模式 动态代理模式 1. 静态代理模式 需要被代理的类,实现一个或者多个接口. 代理类需要实现被代理类的接口,在此 ...
- day2_python的数据类型,sys,os模块,编码解码,列表,字典
今天主要了解了python的数据类型,sys,os模块,编码解码,列表,字典 1.数据类型:int(python3没有长整型)文本总是Unicode,str表示二进制用byte类表示布尔型:True( ...
- linux脚本定时备份数据库表(详解)
数据库备份策略 备份的数据库 服务器:10.10.10.254.10.2.11.10 数据库:gps6 备份的表: user_info alarminfo electronic_fence jpush ...
- escape、encodeURI和encodeURIComponent的区别及使用
编码 javascript中的编码函数有三种 escape(string) encodeURI(string) encodeURIComponent(string) 解码 相应的解码函数也有以下三种 ...
- HandlerMapping 和 HandlerAdapter
HandlerMapping 负责根据request请求找到对应的Handler处理器及Interceptor拦截器,将它们封装在HandlerExecutionChain 对象中给前端控制器返回. ...
- 【前端】Require.js使用方法总结
一.为什么要使用require.js 首先一个页面如果在加载多个js文件的时候,浏览器会停止网页渲染,加载文件越多,网页失去响应的时间就会越长:其次,由于js文件之间存在依赖关系,因此必须严格保证加载 ...