




版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
JAPPT-V1.3性能测试工具
用户使用手册
vl.3
编写者:李柯
更新时间:170124
1概述
本文中使用Controller或Ctrl表示程序主控端:用agent表示程序代理端(执行端)。
1.1开发背景
某些商业化工具要价太高或操作麻烦。
1.2应用范围
以JAVA代码实现的MQ\JMS\WEBSERVICE\SERVLET\FTP\HTTP等协议的多并发性能测试。
2使用说明
2.1功能概述
2.2代码说明
perftest.rmirpc.agent:
AgentService->AgentImpl-^Excutor->TaskLoader
Perftest.rmirpc.model:perftest.rmirpc.utils
Schedule(schedule,ini)FileTooZIPCompressor
CounterMesgUtil
Perftest.rmirpc.inter
JVUse§-->CustomCode(Schedule.ini)
2.3功能结构
工具通过一个Controller控制多个Agents发起交易,运行场景。
用户需利用应用接口编写符合start。-action(AexitO结构的交易代玛。
应用界面
功能U头加密报文基础报文redis
组件处理算法生成服务检查处理
应用接口/skil70124.jar(本工具接口)
测试环境应用系测试环境应用系测试环境应用系
统1统2统3
2.4命令手册
表1工具内部命令列表
序号命令和参数人口命令功能说明
主控机,启动主控端进程(unix系统使用startCtrll.sh);
i.startCtrll.bat
可根据预计的并发数设置java内存启动参数;
Agent代理机系
代理机,启动代理端进程(unix系统使用startAgent.sh);
2.统CMD窗口startAgent.bat
可根据预计的并发数设置java内存启动参数;
3.lanuchDog.bat代理机,启动agent守护程序;
4.S;开始一个测试场景;
5.X;中断正在执行的场景;
Controller主控端
6.D;清理agent端的日志;
console命令窗口
7.E;退出Ctrl程序;
8.注:命令须以英文半F;刷新agent的交易代码和参数文件;
角分号结束
9.V;查看agent与controller连接是否可用;
10.U;把Ctrl端的文件发送到agent指定的可写目录;
2
11.R:重启agent代理程序;
12.T;生成交易代码样例和schedule.ini文件模板
2.5如何部署
本工具运行于JDK1.6及以上环境,不需安装,操作系统不限。
将解压所得的Ctrl1目录拷贝到你的主控机,agent目录拷贝到你的若干代理机。
主控端运行startCtrll.bat启动主控服务,代理端运行startAgent.bat启动代理服务,并运行
perftestAgentDog.jar(双击,或运行lanuchDog.bat启动代理守护进程)。代理守护程序可以重启
代理端的agent服务(即在主控端发出R命令,可以重启全部代理的agent服务,比某些工具方便
哦)。
2.6场景schedule,ini说明
启动Ctrll后,输入命令S命令默认加载schedule.ini文件,执行配置的场景。
输入T命令;可以生成schedule.ini模板文件,其中部分参数说明如下。
2.6.1全局部分:
schedule,controller=ll.247.5.48:3456
一一主控机,告诉所有agents主控机IP和端口;
schedule,groups=TestOl,Test02
——交易线程组名字(长度不多于12个字符),不同的名字与下面交易代码路径相对应,多个交易用
英文逗号隔开;
schedule.type=timescount,100
一运行模式设置,包括三种模式:timescount,每个线程按指定次数运行;timekeeper,每个线
程按指定时间值运行;permanence,永久的运行,直到主控端发出X命令中断运行;
2.6.2交易部分:
TestOl.extjar=C:\mytest.jar
一交易所在jar包的路径,指位于主控端的位置,主控会在场景开始时将其发送到各agent;
TestOl.path=mytest.trans.TestOl
----交易在jar包内的路径,在场景开始时agent会加载该交易类;
TestOl.agent=17.2.34.241:23456,17.2.34.242:23456
一该交易所使用的agentIP地址和端口,多个代理用逗号分隔,并确保其agent服务已启动;
3
TestOl.vusers=2
一该交易在每个agent上的并发数,如果有2个agent,则总的VU数就是2*2=4;
TestOl.pacing=400
一一该交易的步长设置,与并发数一起用于控制交易TPS;
TestOl.startmode=0
一一该交易的启动模式,包括三种模式:0,即时启动;1:60,延迟60秒启动;2:2017-02-0112:00:00,
在指定的时间2017-02-0112:00:0。启动;
2.6.3参数部分:
参数部分以前面指定的交易名字为开头,固定格式为:transName.paranN=24位前缀:值列表
24位前缀包含三个段:
—前2个段目前支持如下4种组合:
constant:shared单值共享常量,所有并发VU都使用同一个值;
constant:unique单值独占常量,所有并发VU使用不同且唯一值,即每个VU分得一个值,其列数
要不小于VU数与agent代理机个数的乘积。
arrayset:shared多值共享变量(变量,指可能有多个值),即所有并发VU都使用相同的几个值;
arrayset:unique多值独占变量,因每个VU单独使用自己分得的若干人值,每个VU的值用”
分隔;
——第3个段表示参数别名,方便用户识别,长度必须为8位字符。
参照上面的设置,这里样例如下:
TestOl.paraml=constant:shared:sandbank:102100099996所有VU使用102100099996
TestOl.param2=constant:unique:recvbank:310290000011,310290000012,310290000013,3102900
00014每个VU按序分得一个值,每个值用逗号分隔
TestOl.param3=arrayset:shared:workdate:20180102,20180103所有VU都使用者这两个值
TestOl.param4=arrayset:unique:m9sgidno:10000025,10000026-20000325,20000026,20000027-3
0000025-40000025,40000026,40000027,40000027这里4个VU,第一个使用10000025,10000026
两个值,第二个使用20000025,20000026,20000027三个值,第三个使用30000025一个值,第四个
使用40000025,40000026,40000027,40000027四个值,
其中共享的paramN标识,用于在脚本代码中使用arg.get("paramN”)获取,独占的使用
4
arg.get("paramN_”+vuid)获取。vuid是本测试工具框架分配的,不需干预。
2.6.4完整样例:
下面是一个单交易(TestOl)四个并发性能测试场景的schedule.ini配置文件:
############全局配置
schedule.controller=l1.247.5.48:3456
schedule.groups=Test01,Test02
schedule.type=timekeeper,600
###########分组配置和参数###########################
TestOl.startmode=l:60
TestOl.extjar=D:/mytest/mytest-trans.jar,D:/mytest/ski170124.jar,
TestOl.path=mytest.trans.TransOl
TestOl.agent=ll.247.5.48:23456,11.247.5.49:23456
TestOl.vusers=2
TestOl.pacing=50
TestOl.paraml:constant:shared:sandbank:103100000026
TestOl.param2=constant:shared:recvbank:102100099996
TestOl.param3=constant:unique:mssgidno:10000001,20000001,30000301,40000001
TestOl.param4=arrayset:shared:workdate:2017-02-01
TestOl.param5=arrayset:unique:fjkuanzh:6225881010936687,6225881010936688-622588101093
6689-6221881010936687,6221881010936688-6222881010936687,6222881010936688
Test02.startmode=0
Test02.extjar=D:/mytest/mytest-trans.jar,D:/mytest/ski170124.jar,
Test02.path=mytest.trans.Trans02
Test02.agent=ll.247.5.48:23456
Test02.vusers=2
Test02.pacing=50
5
Test02.paraml=constant:shared:sandbank:103100000026
Test02.param2=constant:shared:rscvbank:102100099996
Test02.param3=constant:unique:mssgidno:10000001,20000001
Test02.param4=arrayset:shared:workdate:2017-02-01
Test02.param5=arrayset:unique:fjkuanzh:6225881010936687,6225881010936688-622588101093
6689-6221881010936687
上面样例中,TestOl是4个并发,Test02是2个并发。TestOl延迟60秒启动,Tesl02即刻启动。
Pacing的单位是毫秒。
注意,样例中TestOl、Test02的名字关系:红色字体与黑色字体标识的没有联系,是不相关的。
而蓝色字体与黑色字体是相互对应,是必相关的。
即组名与组参数的设置要对上号,但组名与其对应交易代码的名字无必然联系。
2.6.5特别说明:
Schedule.ini文件中某些配置项长度有限制要求:
schedule.group=transNamel,transName2后zzze长度不能大于12
transName.paramN=AAAAA:BBBB:CCCC:VALUESCCCC别名域长度必须为8,且别名不要含有path.
group>extjar>agent、pacing、vusers>scheduleparam>startmode、typelO个工具保留的
字符串。
2.7交易代码编写说明
启动Ctrll后,输入命令T;可以生成MyTransaction.java文件,其中有结构性伪代码及说明。
代码编写完成后导出为jar包,放到Controller的某个目录下,如ctrll/translib下面,在场景
文件schedule,ini中须以:
transName.extjar=./translib/jarName.jar和transName.path=packa?epath.ClassName两个参
数指明jar包和类的路径。
2.8场景用例问答
本部分主要讲解如何进行配置来完成常见的测试场景。前提是已经开发好你的测试脚本,并假设打
包为mytest.jar,里面包含3个交易:mytest.trans.TestOlNmytest.trans.Test02、
mytest.trans.Test03»
6
2.8.1如何进行单交易迭代测试
Stepl.设置schedule.ini的主控机器:
tfcontrollerparameters
schedule,controller=l1.247.5.48:3456
schedule.groups=TestOl
schedule.type=timescount,100
Step2.设置该交易代码路径
TestOl.extjar=./mytest.jar,./ski170124.jar
TestOl.path=mytest.trans.TestOl
Step3.设置该交易的代理机、用户数、pacing值(毫秒)、加载方式
TestOl.agent=ll.247.5.48:23456
TestOl.vusers=l
TestOl.pacing=0
TestOl.startmode=0
Step4.检查transName.paramN是否与代码中期望的一致
TestOl.paraml=constant:shared:sendbank:103100000026
TestO1.param2=constant:shared:recvbank:102100099996
TestOl.param3=constant:shared:workdate:20180103
TestOl.param4=constant:uniqueimesgidno:10794893,20794877,30030300,40030000,500300000
2.8.2如何进行单交易负载测试
1.若要对TestOl进行10分钟10VU并发测试,只需将2.7.1中的TestOl.vusers=l改为
TestOl.vusers=10,schedule.type=timescount,100改为schedule.type=timekeeper,600即可。
2.如要进行每10分钟加压10个并发,直到并发数到达30VU,则可设置:
schedule.groups=TestOl-1,Test01-2,Test01-3
schedule,type=timekeeper,600
TestOl-1.extjar=./mytest.jar,./ski170124.jar
TestOl-1.path=mytest.trans.TestOl
TestOl-1.agent=ll.247.5.48:23456
7
TestOl-1.vusers=l
TestOl-1.pacing=O
TestOl-1.startmode=0
TestOl-1.paraml=constant:shared:sendbank:103100000026
TestOl-1.param2=constant:shared:recvbank:102100099996
TestOl-1.param3=constant:shared:workdate:20180103
TestOl-1.param4=constant:unique:mesgidno:1079489,2079487,3003030,4003000,50030000
Test01-2.extjar=./mytest.jar,./ski170124.jar
Test01-2.path=mytest.trans.TestOl
Test01-2.agent=ll.247.5.48:23456
Test01-2.vusers=l
Test01-2.pacing=0
Test01-2.startmode=l:600
Test01-2.paraml=constant:shared:sendbank:103100000026
Test01-2.param2=constant:shared:recvbank:102100099996
Test01-2.param3=constant:shared:workdate:20180103
TestOl-2.param4=constant:unique:mesgidno:1089489,2089487,3013030,4013000,50130000
Test01-3.extjar=./mytest.jar,./ski170124.jar
Test01-3.path=mytest.trans.TestOl
TestOl-3.agent=ll.247.5.48:23456
Test01-3.vusers=l
TestOl-3.pacing=0
TestOl-3.startmode=l:1200
TestOl-3.paraml=constant:shared:sendbank:103100000026
TestOl-3.param2=constant:shared:recvbank:102100099996
TestOl-3.param3=constant:shared:workdate:20180103
8
TestOl-3.param4=constant:unique:mesgidno:1099489,2099487,3023030,4023000,50230000
即可通过不同的分组延迟来模拟逐步加压。
2.8.3如何在场景运行中添加VU
可以在场景运行的任何时候使用s-p:Sschedule.ini来加载其他的场景文件,这里$schedule.ini
是指你临时添加VU的场景(因为s命令默认加载的是schedule.ini,所有中途要添加其他的场景
就使用-P参数来指定其他的shedule文件)。
也可以使用java-jarperftestCtrll.jar-a重新启动一个不带ctrll服务的纯命令接收窗口,
并输入相同命令:s-p:$schedule.inid
2.8.4如何进行混合压力加压测试
将2.7.2第2问答案中各交易组指向不同的交易代码即是多交易混合了。这个相信你能理解和灵活
使用。此处不详叙(提示:可设置一个或多个schedule.ini来实现)。
2.8.5在混合场景中如何模拟减压
通过启动多个设置不同的schedule,ini。比如含schedulel.ini中含TestOl交易,schedule2.ini
中含Test02交易,则可以设置其同时启动,但schedulel.ini跑10分钟,schedule2,ini跑20
分钟,则前10分钟包含两个交易为高压段,后10分钟只有一个交易则为低压段。
2.9版本变更
本部分记录代码版本变更信息。
2.9.1v1.0161223
基础版本,基本可以使用。
2.9.2v1.2170118
基础版本,基本可以使用。
9
2.9.3v1.3170124
2.9.3.1增加场景的永久循环
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2025年 湛江市雷州市教育系统招聘教师考试试题附答案
- 2025年中国充气混凝土行业市场发展监测及投资前景展望报告
- 2025年中国固体颗粒物料炒锅行业市场调查研究及发展战略规划报告
- 2025年中国塑钢窗行业市场发展监测及投资战略规划研究报告
- 中国工业氯化铵行业调查报告
- 2025年中国卤味休闲食品市场竞争格局及投资战略规划报告
- 中国橡胶线机头行业市场发展前景及发展趋势与投资战略研究报告(2024-2030)
- 中国涡轮式粉碎机行业市场前景预测及投资战略研究报告
- 中国汽车空气弹簧行业市场全景评估及发展战略规划报告
- 中国精密铸铁件行业市场规模及未来投资方向研究报告
- 2024版压力容器设计审核机考题库-多选3-2
- 2025年国防教育课件
- 贵州国企招聘2024贵州贵安发展集团有限公司招聘68人笔试参考题库附带答案详解
- 园林行业职业道德
- 副校长笔试题库及答案
- 2025年湖北恩施州检察机关招聘雇员制检察辅助人员40人历年高频重点模拟试卷提升(共500题附带答案详解)
- 陕西省滨河2025届中考生物模拟预测题含解析
- 招标代理招标服务实施方案
- 《煤矿事故分析与预防》课件
- 幼儿园园长,教师轮训工作制度及流程
- 2025下半年江苏南京市浦口区卫健委所属部分事业单位招聘人员24人高频重点提升(共500题)附带答案详解
评论
0/150
提交评论