JA-V1.3性能测试工具用户使用手册_第1页
JA-V1.3性能测试工具用户使用手册_第2页
JA-V1.3性能测试工具用户使用手册_第3页
JA-V1.3性能测试工具用户使用手册_第4页
JA-V1.3性能测试工具用户使用手册_第5页
已阅读5页,还剩6页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

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. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论