JA-V1.3性能測試工具用戶使用手冊_第1頁
JA-V1.3性能測試工具用戶使用手冊_第2頁
JA-V1.3性能測試工具用戶使用手冊_第3頁
JA-V1.3性能測試工具用戶使用手冊_第4頁
JA-V1.3性能測試工具用戶使用手冊_第5頁
已閱讀5頁,還剩6頁未讀, 繼續(xù)免費閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報或認(rèn)領(lǐng)

文檔簡介

JAPPT-V1.3性能測試工具

用戶使用手冊

vl.3

編寫者:李柯

更新時間:170124

1概述

本文中使用Controller或Ctrl表示程序主控端:用agent表示程序代理端(執(zhí)行端)。

1.1開發(fā)背景

某些商業(yè)化工具要價太高或操作麻煩。

1.2應(yīng)用范圍

以JAVA代碼實現(xiàn)的MQ\JMS\WEBSERVICE\SERVLET\FTP\HTTP等協(xié)議的多并發(fā)性能測試。

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功能結(jié)構(gòu)

工具通過一個Controller控制多個Agents發(fā)起交易,運行場景。

用戶需利用應(yīng)用接口編寫符合start。-action(AexitO結(jié)構(gòu)的交易代瑪。

應(yīng)用界面

功能U頭加密報文基礎(chǔ)報文redis

組件處理算法生成服務(wù)檢查處理

應(yīng)用接口/skil70124.jar(本工具接口)

測試環(huán)境應(yīng)用系測試環(huán)境應(yīng)用系測試環(huán)境應(yīng)用系

統(tǒng)1統(tǒng)2統(tǒng)3

2.4命令手冊

表1工具內(nèi)部命令列表

序號命令和參數(shù)人口命令功能說明

主控機,啟動主控端進(jìn)程(unix系統(tǒng)使用startCtrll.sh);

i.startCtrll.bat

可根據(jù)預(yù)計的并發(fā)數(shù)設(shè)置java內(nèi)存啟動參數(shù);

Agent代理機系

代理機,啟動代理端進(jìn)程(unix系統(tǒng)使用startAgent.sh);

2.統(tǒng)CMD窗口startAgent.bat

可根據(jù)預(yù)計的并發(fā)數(shù)設(shè)置java內(nèi)存啟動參數(shù);

3.lanuchDog.bat代理機,啟動agent守護程序;

4.S;開始一個測試場景;

5.X;中斷正在執(zhí)行的場景;

Controller主控端

6.D;清理agent端的日志;

console命令窗口

7.E;退出Ctrl程序;

8.注:命令須以英文半F;刷新agent的交易代碼和參數(shù)文件;

角分號結(jié)束

9.V;查看agent與controller連接是否可用;

10.U;把Ctrl端的文件發(fā)送到agent指定的可寫目錄;

2

11.R:重啟agent代理程序;

12.T;生成交易代碼樣例和schedule.ini文件模板

2.5如何部署

本工具運行于JDK1.6及以上環(huán)境,不需安裝,操作系統(tǒng)不限。

將解壓所得的Ctrl1目錄拷貝到你的主控機,agent目錄拷貝到你的若干代理機。

主控端運行startCtrll.bat啟動主控服務(wù),代理端運行startAgent.bat啟動代理服務(wù),并運行

perftestAgentDog.jar(雙擊,或運行l(wèi)anuchDog.bat啟動代理守護進(jìn)程)。代理守護程序可以重啟

代理端的agent服務(wù)(即在主控端發(fā)出R命令,可以重啟全部代理的agent服務(wù),比某些工具方便

哦)。

2.6場景schedule,ini說明

啟動Ctrll后,輸入命令S命令默認(rèn)加載schedule.ini文件,執(zhí)行配置的場景。

輸入T命令;可以生成schedule.ini模板文件,其中部分參數(shù)說明如下。

2.6.1全局部分:

schedule,controller=ll.247.5.48:3456

一一主控機,告訴所有agents主控機IP和端口;

schedule,groups=TestOl,Test02

——交易線程組名字(長度不多于12個字符),不同的名字與下面交易代碼路徑相對應(yīng),多個交易用

英文逗號隔開;

schedule.type=timescount,100

一運行模式設(shè)置,包括三種模式:timescount,每個線程按指定次數(shù)運行;timekeeper,每個線

程按指定時間值運行;permanence,永久的運行,直到主控端發(fā)出X命令中斷運行;

2.6.2交易部分:

TestOl.extjar=C:\mytest.jar

一交易所在jar包的路徑,指位于主控端的位置,主控會在場景開始時將其發(fā)送到各agent;

TestOl.path=mytest.trans.TestOl

----交易在jar包內(nèi)的路徑,在場景開始時agent會加載該交易類;

TestOl.agent=17.2.34.241:23456,17.2.34.242:23456

一該交易所使用的agentIP地址和端口,多個代理用逗號分隔,并確保其agent服務(wù)已啟動;

3

TestOl.vusers=2

一該交易在每個agent上的并發(fā)數(shù),如果有2個agent,則總的VU數(shù)就是2*2=4;

TestOl.pacing=400

一一該交易的步長設(shè)置,與并發(fā)數(shù)一起用于控制交易TPS;

TestOl.startmode=0

一一該交易的啟動模式,包括三種模式:0,即時啟動;1:60,延遲60秒啟動;2:2017-02-0112:00:00,

在指定的時間2017-02-0112:00:0。啟動;

2.6.3參數(shù)部分:

參數(shù)部分以前面指定的交易名字為開頭,固定格式為:transName.paranN=24位前綴:值列表

24位前綴包含三個段:

—前2個段目前支持如下4種組合:

constant:shared單值共享常量,所有并發(fā)VU都使用同一個值;

constant:unique單值獨占常量,所有并發(fā)VU使用不同且唯一值,即每個VU分得一個值,其列數(shù)

要不小于VU數(shù)與agent代理機個數(shù)的乘積。

arrayset:shared多值共享變量(變量,指可能有多個值),即所有并發(fā)VU都使用相同的幾個值;

arrayset:unique多值獨占變量,因每個VU單獨使用自己分得的若干人值,每個VU的值用”

分隔;

——第3個段表示參數(shù)別名,方便用戶識別,長度必須為8位字符。

參照上面的設(shè)置,這里樣例如下:

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標(biāo)識,用于在腳本代碼中使用arg.get("paramN”)獲取,獨占的使用

4

arg.get("paramN_”+vuid)獲取。vuid是本測試工具框架分配的,不需干預(yù)。

2.6.4完整樣例:

下面是一個單交易(TestOl)四個并發(fā)性能測試場景的schedule.ini配置文件:

############全局配置

schedule.controller=l1.247.5.48:3456

schedule.groups=Test01,Test02

schedule.type=timekeeper,600

###########分組配置和參數(shù)###########################

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個并發(fā),Test02是2個并發(fā)。TestOl延遲60秒啟動,Tesl02即刻啟動。

Pacing的單位是毫秒。

注意,樣例中TestOl、Test02的名字關(guān)系:紅色字體與黑色字體標(biāo)識的沒有聯(lián)系,是不相關(guān)的。

而藍(lán)色字體與黑色字體是相互對應(yīng),是必相關(guān)的。

即組名與組參數(shù)的設(shè)置要對上號,但組名與其對應(yīng)交易代碼的名字無必然聯(lián)系。

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文件,其中有結(jié)構(gòu)性偽代碼及說明。

代碼編寫完成后導(dǎo)出為jar包,放到Controller的某個目錄下,如ctrll/translib下面,在場景

文件schedule,ini中須以:

transName.extjar=./translib/jarName.jar和transName.path=packa?epath.ClassName兩個參

數(shù)指明jar包和類的路徑。

2.8場景用例問答

本部分主要講解如何進(jìn)行配置來完成常見的測試場景。前提是已經(jīng)開發(fā)好你的測試腳本,并假設(shè)打

包為mytest.jar,里面包含3個交易:mytest.trans.TestOlNmytest.trans.Test02、

mytest.trans.Test03?

6

2.8.1如何進(jìn)行單交易迭代測試

Stepl.設(shè)置schedule.ini的主控機器:

tfcontrollerparameters

schedule,controller=l1.247.5.48:3456

schedule.groups=TestOl

schedule.type=timescount,100

Step2.設(shè)置該交易代碼路徑

TestOl.extjar=./mytest.jar,./ski170124.jar

TestOl.path=mytest.trans.TestOl

Step3.設(shè)置該交易的代理機、用戶數(shù)、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如何進(jìn)行單交易負(fù)載測試

1.若要對TestOl進(jìn)行10分鐘10VU并發(fā)測試,只需將2.7.1中的TestOl.vusers=l改為

TestOl.vusers=10,schedule.type=timescount,100改為schedule.type=timekeeper,600即可。

2.如要進(jìn)行每10分鐘加壓10個并發(fā),直到并發(fā)數(shù)到達(dá)30VU,則可設(shè)置:

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命令默認(rèn)加載的是schedule.ini,所有中途要添加其他的場景

就使用-P參數(shù)來指定其他的shedule文件)。

也可以使用java-jarperftestCtrll.jar-a重新啟動一個不帶ctrll服務(wù)的純命令接收窗口,

并輸入相同命令:s-p:$schedule.inid

2.8.4如何進(jìn)行混合壓力加壓測試

將2.7.2第2問答案中各交易組指向不同的交易代碼即是多交易混合了。這個相信你能理解和靈活

使用。此處不詳敘(提示:可設(shè)置一個或多個schedule.ini來實現(xiàn))。

2.8.5在混合場景中如何模擬減壓

通過啟動多個設(shè)置不同的schedule,ini。比如含schedulel.ini中含TestOl交易,schedule2.ini

中含Test02交易,則可以設(shè)置其同時啟動,但schedulel.ini跑10分鐘,schedule2,ini跑20

分鐘,則前10分鐘包含兩個交易為高壓段,后10分鐘只有一個交易則為低壓段。

2.9版本變更

本部分記錄代碼版本變更信息。

2.9.1v1.0161223

基礎(chǔ)版本,基本可以使用。

2.9.2v1.2170118

基礎(chǔ)版本,基本可以使用。

9

2.9.3v1.3170124

2.9.3.1增加場景的永久循環(huán)

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論