tsung 学习记录

来源:互联网 发布:js获取utc时间戳 编辑:程序博客网 时间:2024/05/20 04:14
近期测试产品性能的时候用到好几次tsung这个工具,整理了一下tsung xml文件的基本结构。
<?xml version="1.0" encoding="utf-8"?><!DOCTYPE tsung SYSTEM "/usr/share/tsung/tsung-1.0.dtd"><tsung loglevel="info"><clients><client host="localhost" /></clients><servers><server host="127.0.0.1" port="8080" type="tcp"></server></servers><!-- load用来定义测试压力,用户增长速度以及上限,测试时长等。可以使用多个arrivalphase,每个phase代表一个阶段,每个阶段内可以定义不同的压力,以及要执行的session等 --><load><arrivalphase phase="1" duration="60" unit="minute"><users maxnumber="2" arrivalrate="1" unit="second"></users></arrivalphase></load><options><!-- file_server option用于给tsung生命文件,每个文件指定一个id,后面设置读取参数时通过id来决定从哪个文件读取 --><option name="file_server" value="userfile" id="userfile"></option><!-- 配置http请求的客户端类型,注意probability总数一定要是100,不然会报错 --><option type="ts_http" name="user_agent"><user_agent probability="50">Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/51.0.2704.106 Safari/537.36</user_agent></option><option type="ts_http" name="user_agent">        <user_agent probability="50">                Mozilla/4.0 (compatible; MSIE 8.0; Windows NT 6.1; Trident/4.0)        </user_agent></option></options><!-- sessions内可以定义多个session,每个session内定义一系列http请求动作。貌似每个用户只能运行一个session,多个session会在加载用户的时候分别得到执行 --><sessions><!-- session内的probability用于设置多用户情况下,改session被执行的百分比,所有session的probablity总数必须是100 --><session probability="100" name="test" type="ts_http"><!-- 从文件读取变量,iter是顺序读取,这里需要注意的是,每个session只读取一次,既这个session从文件读取一次变量之后,该sesion实例内后续所有对该变量的引用都是本次读取所获取到的value,如果你想在一个session内循环读取这个文件里的变量,那得另想办法啦 --><setdynvars sourcetype="file" fileid="userfile" delimiter=";" order="iter"><var name="username" /><var name="password" /></setdynvars><!-- 直接定义一个变量并赋值 --><setdynvars sourcetype="value" value="this is a test"><var name="test"/></setdynvars><!-- for 循环 --><for from="1" to="1" var="loop"><request subst="true"><http url="/home/main/index.html?name=%%_username%%" version="1.1" method="GET"><!-- www_authenticate 用于实现httpbasic认证,这个只能用于单个请求,并不会在后续的请求里面自动加上认证的header --><www_authenticate userid="%%_username%%"  passwd="%%_password%%"/></http></request><!-- thinktime 类似于sleep功能 --><thinktime value="3" random="true"></thinktime><!-- request subst="true" 用于说明这个请求里面会用到动态参数,否则引用的变量会出问题 --><request subst="true"><!-- match用于从response中匹配字符串,默认匹配范围包含http头和body,还可以指定匹配或不匹配后的动作,这里是匹配上了就记录一个日志 --><match do="log" when="match">Unauthorized</match><http url="/home/main/index.html?name=%%_username%%" version="1.1" method="GET" /></request><request subst="true"><http url="/home/main/index.html?name=%%_username%%" version="1.1" method="POST" contents="name=%%_username%%&password=%%_password%%" ><www_authenticate userid="%%_username%%" passwd="%%_password%%" /></http></request><request subst="true"><http url="/home/main/index.html?name=%%_username%%" version="1.1" method="GET"><add_cookie key="session" value="%%_test%%"/></http></request></for></session></sessions></tsung>

1 0
原创粉丝点击