JMETER中文手冊(cè)分享簡(jiǎn)介_第1頁
JMETER中文手冊(cè)分享簡(jiǎn)介_第2頁
JMETER中文手冊(cè)分享簡(jiǎn)介_第3頁
JMETER中文手冊(cè)分享簡(jiǎn)介_第4頁
JMETER中文手冊(cè)分享簡(jiǎn)介_第5頁
已閱讀5頁,還剩74頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡(jiǎn)介

JMETER中文手冊(cè)分享

1.簡(jiǎn)介

ApacheJMeter是100%純java桌面應(yīng)用程序,被設(shè)計(jì)用來測(cè)試C/S結(jié)構(gòu)的軟件(例如

web應(yīng)用程序)。它可以用來測(cè)試包括基于靜態(tài)和動(dòng)態(tài)資源程序的性能,例如靜態(tài)文件,Java

Servlets,Java對(duì)象,數(shù)據(jù)庫,F(xiàn)TP服務(wù)器等等。JMeter可以用來在一個(gè)服務(wù)器、網(wǎng)絡(luò)或者

對(duì)象上模擬重負(fù)載來測(cè)試它的強(qiáng)度或者分析在不同的負(fù)載類型下的全面性能。

另外,JMeter能夠通過讓你們用斷言創(chuàng)建測(cè)試腳本來驗(yàn)證我們的應(yīng)用程序是否返回了

我們期望的結(jié)果,從而幫助我們回歸測(cè)試我們的程序。為了最大的靈活性,JMeter允許我

們使用正則表達(dá)式創(chuàng)建斷言。

1.1歷史

Apache軟件組織的StefanoMazzocchi是JMeter的創(chuàng)始人。他編寫它起初是為了測(cè)試

ApacheJServ的性能(一個(gè)已經(jīng)被ApacheTomcat工程所替代的工程)。我們重新設(shè)計(jì)JMeter

來增強(qiáng)用戶界面并增加功能測(cè)試的能力。

1.2未來

我們希望看到作為開發(fā)者利用它的可插入架構(gòu)使JMeter的功能快速擴(kuò)展。未來發(fā)展的

主要目標(biāo)是在沒有影響JMeter的負(fù)載測(cè)試能力的情況下盡可能使JMeter成為最實(shí)用的回歸

測(cè)試工具。

2.入門

開始使用JMeter最容易的方法是首先下載最新版并且安裝它。這個(gè)版本包含所有你在

構(gòu)建和運(yùn)行Web,FTP,JDBC,和JND1等測(cè)試時(shí)使用需要的所有文件。

如果你想執(zhí)行JDBC測(cè)試,你當(dāng)然需要從供應(yīng)商得到適當(dāng)?shù)腏DBC驅(qū)動(dòng)。JMeter沒有提

供任何JDBC驅(qū)動(dòng)。你可能需要下載的其它軟件:

BeanShell-BeanShell函數(shù)和測(cè)試元件需要

JavaActivationFramework-JavaMail需要

JavaMail-Mail可視化,MailReader和WebService(SOAP)取樣器需要

JMS-JMS取樣器需要

下一步,開始使用JMeter并且參見用戶手冊(cè)創(chuàng)建一個(gè)測(cè)試計(jì)劃一章使自己更加熟悉

JMeter基礎(chǔ)(例如,添加和刪除元件)。

最后,參見如何構(gòu)建一個(gè)明確類型的測(cè)試用例的適合章節(jié)。例如,如果你對(duì)Web應(yīng)用

測(cè)試感興趣,那就參見創(chuàng)建一個(gè)Web測(cè)試計(jì)劃。其他具體的測(cè)試計(jì)劃章節(jié)是:高級(jí)Web測(cè)

試計(jì)劃、JDBC、FTP、JMS點(diǎn)到點(diǎn)、JMS主題、LDAP

2.1需求

JMeter需要最小需求的運(yùn)行環(huán)境。

2.1.1Java版本

JMeter需要一個(gè)完全適當(dāng)?shù)腏VM1.4或者更高

因?yàn)镴Meter僅使用Java標(biāo)準(zhǔn)API,請(qǐng)不要把因?yàn)镴RE實(shí)現(xiàn)版本而無法運(yùn)行JMeter的bug

報(bào)告提交。

2.1.2操作系統(tǒng)

JMeter是100%純Java應(yīng)用程序并且能夠正確的在任何有適當(dāng)?shù)腏ava實(shí)現(xiàn)的操作系統(tǒng)

上運(yùn)行。

JMeter在下列環(huán)境已經(jīng)被測(cè)試:

Unix(Solaris,Linux,等)、Windows(98,NT2000,xp)、OpenVMSAlpha7.3+

2.2可選

如果你計(jì)劃做JMeter開發(fā)或者想使用SUN的java標(biāo)準(zhǔn)擴(kuò)展包,你將需要下列更多的可

選包。

2.2.1Java編譯器

如果你想編譯JMeter源代碼或者開發(fā)JMeter插件,你將需要一個(gè)完整的適當(dāng)?shù)腏DK1.4

或者更高。

2.2.2SAXXML解析器

JMeter使用Apache的XercesXML解析器,你可以選擇告訴JMeter使用一個(gè)不同的

XML解析器。這樣做,把第三方的解析器的類包包含在JMeter的classpath中,并更新rties

文件里的解析器實(shí)現(xiàn)的全類名。

2.2.3Email支持

JMeter有有限的Email能力。它能夠發(fā)送基于測(cè)試結(jié)果的Email,并且支持POP/IMAP

取樣器。它現(xiàn)在不支持SMTP取樣。為了能夠支持Email,需要添加Sun的JavaMail包和

activation包至!JJMeterclasspath。

2.2.4SSL力口密

為了測(cè)試一個(gè)使用SSL加密(HPPS)的web服務(wù)器,JMeter需要一個(gè)提供SSL實(shí)現(xiàn)

(例如Sun的JavaSecureSocketsExtension-JSSE)。包含需要的加密包到JMeter的

classpath?同樣,通過注冊(cè)SSL提供者更新rties文件。

JMeter默認(rèn)協(xié)議等級(jí)TLS(傳輸層安全性)。這可以通過修改在ties或者rties文件中

的"Itocol"來改變。

JMeter被配置接受所有的證書,不管是否信賴和合法時(shí)間等。這允許在測(cè)試服務(wù)器最

大靈活性。如果服務(wù)器需要一個(gè)客戶端證書,這是可以提供的。為了更好的管理證書,也要

有一個(gè)SSL管理器。

2.2.5JDBC驅(qū)動(dòng)

如果你需要JDBC測(cè)試,需要添加廠商的JDBC驅(qū)動(dòng)到classpatho確認(rèn)文件是一個(gè)jar

文件,而不是zip。

2.2.6ApacheSOAP

ApacheSOAP需要和.你需要下載并拷貝這兩個(gè)jar文件到你jmeter/lib目錄.一旦文件

放到那里,JMeter會(huì)自動(dòng)找到它們。

2.2.7BeanShell

為了運(yùn)行BeanShell函數(shù)或者任何BeanShell測(cè)試元件(取樣器,定時(shí)器等),你需要

從下載beanshell的jar文件并拷貝jar文件至I]jmeter/lib目錄,JMeter會(huì)自動(dòng)找到它。

2.2.8ActiveMQ3.0類庫

詳細(xì)參見

,詳細(xì)參見JMeterClasspath一章安裝附加的jar包

2.3安裝

我們推薦大多數(shù)用戶運(yùn)行最新版本。要安裝一個(gè)構(gòu)建版本,簡(jiǎn)單解壓zip/tar文件到你

想安裝JMeter的目錄。保證一個(gè)JRE/JDK正確的安裝并且設(shè)置環(huán)境變量JAVA_HOME,其它

不需要做什么了。

安裝目錄接口應(yīng)該看到的像這樣一些東西(2.3.1版本):

jakarta-jmeter-2.3.1

jakarta-jmeter-2.3.1/bin

jakarta-jmeter-2.3.1/docs

jakarta-jmeter-2.3.1/extras

jakarta-jmeter-2.3.1/lib/

jakarta-jmeter-2.3.1/lib/ext

jakarta-jmeter-2.3.1/lib/junit

jakarta-jmeter-2.3.1/printable_docs

如果你想的話你可以重命名父目錄(例如jakarta-jmeter-2.3.1),但是不要改變?nèi)魏?/p>

子目錄命。父目錄路徑中不能包含任何空格;如果包含,你運(yùn)行客戶端?服務(wù)器模式會(huì)有問

題。

2.4運(yùn)行JMeter

要運(yùn)行JMeter;運(yùn)行(forWindows)或者jmeter(forUnix)文件。那些文件在bin

目錄下。稍微暫停后,JMeterGUI會(huì)顯示出來。

在bin目錄你會(huì)發(fā)現(xiàn)有些附加腳本很有用。Windows腳本文件(CMD文件需要Win2K

或者更新):

-運(yùn)行JMeter(默認(rèn)在GUI模式)

-使用一個(gè)JMX文件運(yùn)行非GUI測(cè)試

-使用一個(gè)JMX文件遠(yuǎn)程運(yùn)行一個(gè)非GUI測(cè)試

-在GUI模式使用一個(gè)JMX文件

-以服務(wù)器模式啟動(dòng)JMeter

注意:LAST可以在,和中使用,意味著最后一次測(cè)試會(huì)運(yùn)行.

Unix腳本文件可以運(yùn)行在大多Linux/Unix系統(tǒng).

jmeter-運(yùn)行JMeter(默認(rèn)在GUI模式)

jmeter-server-以服務(wù)器模式啟動(dòng)JMeter

2.4.1JMeterClasspath

JMeter自動(dòng)從下列目錄中的jar文件發(fā)現(xiàn)類。

JMETER_HOME/lib-用來放使用的jar文件

JMETER_HOME/lib/ext-用來放JMeter組件和擴(kuò)展

如果你開發(fā)新品JMeter組件,你可以壓縮它們成jar包并拷貝到JMeter的/lib/ext目錄。

JMeter將會(huì)自動(dòng)發(fā)現(xiàn)在這里的任何jar文件中的JMeter組件。

支持的jar文件(類庫)應(yīng)該放在lib目錄.

如果你不想把擴(kuò)展jar包放到lib/ext目錄,可以在rties中定義search_paths屬性。不

要使用lib/ext給那些公用的jar包;它僅僅是存放JMeter組件。

其他jar包(例如JDBC,和任何JMeter代碼需要支持的類庫)應(yīng)該被代替放在lib目錄,

而不是lib/ext目錄。

你可以在$爐丫人》01^/旌/1切6*1安裝有用的jar文件,或者(自從2.1.1版本)你可

以在rties中設(shè)置path屬性。

注意設(shè)置CLASSPATH環(huán)境變量將不起作用。這是因?yàn)镴Meter使用“java-jar”啟動(dòng),并

且java命令無記錄忽略CLASSPATH變量,并且當(dāng)使用-jar選項(xiàng)時(shí)?classpath/?cp選項(xiàng)也被使

用。

2.4.2使用代理服務(wù)器

如果你從防火墻/代理服務(wù)器后測(cè)試,你需要提供給JMeter防火墻/代理服務(wù)器的主機(jī)

名和端口號(hào)。這樣做,從命令行使用以下參數(shù)運(yùn)行/jmeter文件:

-H[代理服務(wù)器主機(jī)名或者ip地址]

-P[代理服務(wù)器端口]

-N[非代理主機(jī)](例如:*.|bcalhost)

-u[代理證書用戶名-如果需要]

-a[代理證書密碼-如果需要]

例如:jmeter-Hmy.r-P8000-uusername-apassword-Nlocalhost

或者,你使用-proxyHost,—proxyPort,—username,and-password

JMeter也有自己的內(nèi)建HTTP代理服務(wù)器,來記錄HTTP(不是

HTTPS)瀏覽器會(huì)話。這是和上面的代理設(shè)置描述不混淆的,它是在

JMeter發(fā)出HTTP或者HTTPS請(qǐng)求時(shí)使用的。

2.4.3非用戶界面模式(命令行模式)

為了不相互影響測(cè)試,你可以選擇運(yùn)行沒有用戶界面的JMeter。這樣做,使用下列命令

選項(xiàng):

-n這是指定JMeter在非用戶界面模式運(yùn)行

-t[包含測(cè)試計(jì)劃的JMX文件的名字]

-1[記錄取樣結(jié)果的JTL文件的名字]

-r運(yùn)行在rties文件里所有的遠(yuǎn)程服務(wù)器(或者通過在命令行覆蓋屬性指定遠(yuǎn)程服務(wù)

器)這個(gè)腳本也允許我們指定可選的防火墻/代理服務(wù)器信息:

-H[代理服務(wù)器主機(jī)名或者ip地址]

-P[代理服務(wù)器端口]

例如:jmeter-n-tmy_-1-Hmy.r-P8000

2.4.4服務(wù)器模式

為了分布測(cè)試,在服務(wù)器模式運(yùn)行JMeter,并且通過用戶界面控制每一臺(tái)服務(wù)器.

jmeter-server/腳本使用適當(dāng)?shù)腸lasspath為你開始遠(yuǎn)程注冊(cè)。如果

失敗,參見關(guān)于JMeter服務(wù)器啟動(dòng)細(xì)節(jié)。

運(yùn)行jmeter-server/,加上下列選項(xiàng)命令:

這個(gè)腳本也允許我們指定可選的防火墻/代理服務(wù)器信息:

-H[代理服務(wù)器主機(jī)名或者ip地址]

-P[代理服務(wù)器端口]

例如:jmeter-server-Hmy.r-P8000

2.4.5通過命令行覆蓋屬性

Java系統(tǒng)屬性,JMeter屬性,和日志屬性可以通過命令行直接覆蓋(代替更改rties文

件)。這樣做,使用下列選項(xiàng):

-D[prop_name]=[value]-定義一個(gè)java系統(tǒng)屬性值。

-J[propname]=[value]-覆蓋一個(gè)JMeter屬性。

-L[category]=[priority]-覆蓋一個(gè)日志設(shè)置,設(shè)置一個(gè)特殊目錄為給定的優(yōu)先級(jí)。

-L標(biāo)志也可以使用沒有目錄名來設(shè)置根目錄日志等級(jí)。

例如:

jmeter=/home/mstover/jmeter_stuff\

-Jremote_hosts=e=DEBUG

jmeter-LDEBUG

注意:命令行參數(shù)在啟動(dòng)時(shí)較早被處理,但是在日志系統(tǒng)被設(shè)置以

后。嘗試使用?J標(biāo)志更新bgjevel或者k)g_file屬性無效。

2.4.6日志和錯(cuò)誤信息

如果JMeter發(fā)現(xiàn)一個(gè)錯(cuò)誤,一個(gè)消息將被寫入日志文件。日志文件名在jmeter.

properties文件中定義。一般定義為。并且在JMeter啟動(dòng)目錄,例如bin。

當(dāng)在Windows下運(yùn)行時(shí),如果你不設(shè)置Windows顯示文件擴(kuò)展名,文件名會(huì)僅顯示為

JMetero

還有記錄錯(cuò)誤,文件記錄一些測(cè)試運(yùn)行信息。例如:

10/17/200312:19:20PMINFO-r:Version1.9.

10/17/200312:19:45PMINFO-.:Loadingfile:c:\mytestfiIes\

10/17/200312:19:52PMINFO-e.StandardJMeterEngine:Runningthetest!

10/17/200312:19:52PMINFO-e.StandardJMeterEngine:Starting1threadsforgroupBSH.

Rampup=1.

10/17/200312:19:52PMINFO-e.StandardJMeterEngine:Continueonerror

10/17/200312:19:52PMINFO-ds.JMeterThread:ThreadBSH1-1started

10/17/200312:19:52PMINFO-ds.JMeterThread:ThreadBSH1-1isdone

10/17/200312:19:52PMINFO-e.StandardJMeterEngine:Testhasended

日志文件對(duì)發(fā)現(xiàn)錯(cuò)誤原因很有幫助,作為JMeter不會(huì)打斷一個(gè)測(cè)試來顯示一個(gè)錯(cuò)誤對(duì)

話框。

2.4.7命令行選項(xiàng)目錄

調(diào)用JMeter的"jmeter-?"命令將打印所有命令選項(xiàng)的一個(gè)列表。列表如下:

-h,-help打印使用信息并退出

-v,??version打印版本信息并推出

-p,-propfile{argument}使用的JMeter屬性文件

?q,-addprop{argument}附加的屬性文件

-t,-testfile{argument}運(yùn)行的JMeter測(cè)試文件(.jmx)

-I-logfile{argument)日志取樣文件

-n,-nongui非用戶界面運(yùn)行JMeter

-s,-server運(yùn)行JMeter服務(wù)器

-H,--proxyHost{argument}設(shè)置JMeter使用的代理服務(wù)器

-B-proxyPort{argument}設(shè)置JMeter使用的代理服務(wù)器端口

-u,-username{argument}設(shè)置JMeter使用的代理服務(wù)器用戶名

-a,-password{argument}設(shè)置JMeter使用的代理服務(wù)器密碼

?J,??jmeterproperty{argument}={value}定義附力II的JMeter屬性

-D,--systemproperty{argument}={value}定義附加的System屬性

?S,-systemPropertyFile{filename}一個(gè)扇性文件被做為系統(tǒng)屬性添加

-L,-bglevel{argument}={value}定義日志等級(jí):[category=]level

例如jorphan=INFOor=DEBUG

-n-runremote從非用戶界面模式啟動(dòng)遠(yuǎn)程服務(wù)器

-d,-homedir{argument}使用的JMeter目錄

2.5配置JMeter

如果你希望改變JMeter運(yùn)行時(shí)的屬性你需要改變?cè)?bin目錄下的rties文件,或者創(chuàng)建

你自己的rties文件并且在命令行指定它。

注意咱從2.1.2,你能夠通過JMeter屬性rties在文件中定義附加的

JMeter屬性,rties默認(rèn)值是rties?如果在當(dāng)前目錄被發(fā)現(xiàn),這個(gè)文件

被自動(dòng)加載。,rties被用來更新系統(tǒng)屬性。

參數(shù):

屬性描述

你可以為你的SSL實(shí)現(xiàn)指定類。如果你想使用來自

sun的JSSE,是這樣:...Provi

derder°JMeter默認(rèn)提供https支持。如果你正在使用JDK1.4,

或者你使用帶JSSE類的jar文件在JMeter的classpath里

的JDK1.4。

JMeter默認(rèn)提供https支持是在你使用JDK1.4或者你

..internal

使用把JSSE類的jar包放到JMeterclasspath中的JDK1.3

.der

時(shí)候。

你可以指明一個(gè)你的XML解析器實(shí)現(xiàn)。默認(rèn)值是:

r

e.rs.SAXParser

逗號(hào)分割遠(yuǎn)程JMeter主機(jī)列表。如果你在一個(gè)分布

remote_hosts式環(huán)境運(yùn)行JMeter,列出你用JMeter遠(yuǎn)程主機(jī)運(yùn)行的機(jī)

器。這允許你使用機(jī)器的用戶界面控制那些服務(wù)器。

在JMeter選項(xiàng)屏中你不想看到的組件列表。如果

JMeter被添加越來越多的組件,你會(huì)希望定制JMeter只

notjn.menu出現(xiàn)那些你感興趣的組件。你可以在這兒列出那些類名和

他們的類標(biāo)簽(JMeter的用戶界面出現(xiàn)的字符串),它們

將在選項(xiàng)屏中不出現(xiàn)。

列出那些JMeter搜索JMeter附加類的路徑(以;分

search_paths割);例如附加的取樣器。被添加到lib/ext目錄的任何

jar包都被發(fā)現(xiàn)。

JMeter搜索的公用類庫的路徑列表。被添加到lib目

P錄的任何jar包都被發(fā)現(xiàn)。

附加的JMeter屬性文件名。初始化屬性文件后它們

被添加,但是在刃和-J選項(xiàng)被處理之前。

rties附加的系統(tǒng)屬性文件名。-S和-D選項(xiàng)被執(zhí)行前添加。

3.創(chuàng)建一個(gè)測(cè)試計(jì)劃

一個(gè)測(cè)試計(jì)劃描述了一系列Jmeter運(yùn)行時(shí)要執(zhí)行的步驟。一個(gè)完整的測(cè)試計(jì)劃包含一

個(gè)或者多個(gè)線程組,邏輯控制器,取樣發(fā)生控制,監(jiān)聽器,定時(shí)器,斷言和配置元件。

3.1添加和刪除元件

在一個(gè)樹上通過右擊可以添加元件到一個(gè)測(cè)試計(jì)劃,并且從“添加”列表中選擇一個(gè)新

元件。另外,元件可以從文件加載并且通過選擇“打開"選項(xiàng)添加。

為了刪除元件,確保元件被選中,正確在元件上右擊,并且選擇"刪除"選項(xiàng)。

3.2加載和保存元件

為了從文件加載元件,右擊將要加載元件到的己經(jīng)存在的樹元件,并選擇"打開"選項(xiàng)。

選擇你的元件保存的文件。JMeter會(huì)加載元件到樹中。

為了保存樹元件,在一個(gè)元件上右擊,選擇"保存"選項(xiàng)。JMeter會(huì)保存已選的元件,加

上所有下面的子元件。用這種方法,你能夠保存測(cè)試樹的片段,單獨(dú)元件,或者整個(gè)測(cè)試計(jì)

劃。

3.3配置樹元件

在測(cè)試樹中的任何元件都在JMeter的右側(cè)框架顯示配置。那些配置允許你配置測(cè)試元

件的細(xì)節(jié)行為,對(duì)于一個(gè)元件什么能被配置依賴于它是一個(gè)什么類型的元件。

3.4保存測(cè)試計(jì)劃

雖然這不是必須的,我們推薦你在運(yùn)行前保存測(cè)試計(jì)劃。為了保存測(cè)試計(jì)劃,從文件菜

單選擇保存測(cè)試計(jì)劃(使用最新版本,你不再需要首先選擇測(cè)試計(jì)劃元件)。

JMeter允許你保存整個(gè)測(cè)試計(jì)劃樹或者僅它的一部分。為了僅保存

測(cè)試計(jì)劃樹中特殊"支"位置的元件,從從這個(gè)“支"開始的地方選擇樹中

的測(cè)試計(jì)劃元件,然后右擊鼠標(biāo)訪問保存菜單項(xiàng)。另外選擇合適的測(cè)試

計(jì)劃元件并從編輯菜單選擇保存。

3.5運(yùn)行一個(gè)測(cè)試計(jì)劃

為了運(yùn)行一個(gè)測(cè)試計(jì)劃,從“運(yùn)行”菜單項(xiàng)選擇"開始"。為了停止你的測(cè)試計(jì)劃,從同樣

的菜單選擇"停止"。JMeter不會(huì)自動(dòng)給它是否正在運(yùn)行任何顯示.如果]Meter運(yùn)行,一些

監(jiān)聽器使它變明顯,但是唯一確定的方法是檢查“運(yùn)行"菜單。如果“開始"不可用,"停止”可

用,證明JMeter正在運(yùn)行你的測(cè)試計(jì)劃(或者至少它認(rèn)為它是)。

有兩個(gè)類型的停止命令:

停止(Control+-立刻停止所有的線程

關(guān)閉(Control+,;)-請(qǐng)求所有線程在當(dāng)前任務(wù)結(jié)束后停止

3.6元件作用域及執(zhí)行順序

3.6.1作用域規(guī)則

JMeter中共有8類可被執(zhí)行的元件(測(cè)試計(jì)劃與線程組不屬于元件),這些元件中,

取樣器是典當(dāng)?shù)牟慌c其它元件發(fā)生交互作用的元件,邏輯控制器只對(duì)其子節(jié)點(diǎn)的取樣器有

效,而其它元件(configelements>timers>post-processorsassertions>listeners、)需

要與取樣器(sampler)等元件交互。

配置元件(configelements):元件會(huì)影響其作用范圍內(nèi)的所有元件。

前置處理程序(Per-processors):元件在其作用范圍內(nèi)的每一個(gè)sampler元件之前執(zhí)

行。

定時(shí)器(timers):元件對(duì)其作用范圍內(nèi)的每一個(gè)sampler有效

后置處理程序(Post-processors):元件在其作用范圍向的每一個(gè)sampler元件之后執(zhí)

行。

斷言(Assertions):元件對(duì)其作用范圍內(nèi)的每一個(gè)sampler元件執(zhí)行后的結(jié)果執(zhí)行校

驗(yàn)。

監(jiān)聽器(Listeners):元件收集其作用范圍的每一個(gè)sampler元件的信息并呈現(xiàn)。

在jmeter中,元件的作用域是靠測(cè)試計(jì)劃的的樹型結(jié)構(gòu)中元件的父子關(guān)系來確定的,

作用域的原則是:

取樣器(sampler)元件不和其它元件相互作用,因此不存在作用域的問題。

邏輯控制器(LogicController)元件只對(duì)其子節(jié)點(diǎn)中的取樣器和邏輯控制器作用。

除取樣器和邏輯控制器元件外,其他6類元件,如果是某個(gè)sampler的子節(jié)點(diǎn),則該

元件公對(duì)其父子節(jié)點(diǎn)起作用。

除取樣器和邏輯控制器元件外的其他6類元件,如果其父節(jié)點(diǎn)不是sampler,則其作

用域是該元件父節(jié)點(diǎn)下的其他所有后代節(jié)點(diǎn)(包括子節(jié)點(diǎn),子節(jié)點(diǎn)的子節(jié)點(diǎn)等)。

3.6.2元件的執(zhí)行順序

了解了元件有作用域之后,來看看元件的執(zhí)行順序,元件執(zhí)行順序的規(guī)則很簡(jiǎn)單,在同

一作用域名范圍內(nèi),測(cè)試計(jì)劃中的元件按照如下順序執(zhí)行。

(1)配置元件(configelements)

(2)前置處理程序(Per-processors)

(3)定時(shí)器(timers)

(4)取樣器(Sampler)

(5)后置處理程序(Post-processors)(除非Sampler得到的返回結(jié)果為空)。

(6)斷言(Assertions)(除非Sampler得到的返回結(jié)果為空)°

(7)監(jiān)聽器(Listeners)(除非Sampler得到的返回結(jié)果為空)。

關(guān)于執(zhí)行順序,有三點(diǎn)需要注意:

*前置處理器、后置處理器和斷言等元件只能對(duì)取樣器作用,因此如果在它們的作用域

內(nèi)沒有任何取樣器,則不會(huì)被執(zhí)行。

*如果在同一作用域范圍內(nèi)有多個(gè)同一類型的元件,則這些元件按照它們?cè)跍y(cè)試計(jì)劃中

的上下順序依次執(zhí)行。

*一個(gè)斷言在測(cè)試樹中是分等級(jí)的。如果它的父元件是請(qǐng)求,它就被應(yīng)用于那個(gè)請(qǐng)求。

如果它的父元件是控制器,它就影響所有那個(gè)控制器下的所有請(qǐng)求。

91TestPlan

9應(yīng)'ThreadGroup

One

9:為SimpleController

Two

/Three

/?Four

請(qǐng)求的順序是One,Two,Three,Four。

一些控制器影響它的子元件的順序,你可以在組件參考讀到特定的控制器。

<?&TestPlan

92ThreadGroup

0/One

□Assertion#1

中⑥SimpleController

/Two

4*Three

QAssertion#2

Four

Assertion#1僅被應(yīng)用于請(qǐng)求One,Assertion#2僅被應(yīng)用于請(qǐng)求Two和Three。

9匚TestPlan

9盤ThreadGroup

One

9⑥SimpleController

/Two

Timer#1

9.Three

PlAssertion#1

9,⑥SimpleController

「Four

Five

ETimer#2

在這個(gè)例子里,請(qǐng)求的命名表現(xiàn)它們被執(zhí)行的順序。Timer#1應(yīng)用于請(qǐng)求Two,Three,

和Four(注意對(duì)于分等級(jí)的元件怎樣的順序是不相關(guān)的)。Assertion#1應(yīng)用于請(qǐng)求Three。

Timer#2對(duì)所有請(qǐng)求有效。

元件首部管理器,Cookie管理器和授權(quán)管理器的配置和默認(rèn)元件的配置被視為是不同

的默認(rèn)元件配置的設(shè)置被并入取樣器可以到達(dá)的一組值里了。然而來自管理器的設(shè)置沒有并

入。如果多于一個(gè)管理器在一個(gè)取樣器范圍中,僅僅一個(gè)被使用,但是現(xiàn)在沒有辦法指定那

個(gè)被使用。

3.7錯(cuò)誤報(bào)告

JMeter把警告和錯(cuò)誤信息報(bào)告在文件中,也有一些測(cè)試運(yùn)行本身的信息.只是偶爾地,

JMeter對(duì)于某些錯(cuò)誤是無法補(bǔ)捉和記錄的,這些信息會(huì)顯示在命令臺(tái)上。如果一個(gè)測(cè)試的

執(zhí)行并不是你所期待的,請(qǐng)檢查日志,也許錯(cuò)誤會(huì)被報(bào)告(例如:也許在函數(shù)調(diào)用上有語法

錯(cuò)誤)。

取樣錯(cuò)誤(例如:HTTP404-找不至U文件)是不會(huì)被正常的記錄在日志中的,取而代之

的,他們會(huì)被當(dāng)作取樣結(jié)果的屬性來儲(chǔ)存,取樣結(jié)果的狀態(tài)能被許多不同的監(jiān)聽器所得到。

4.測(cè)試計(jì)劃元件

測(cè)試計(jì)劃對(duì)象有一個(gè)叫做“功能測(cè)試”復(fù)選框。如果被選擇,它會(huì)使JMeter記錄來自服

務(wù)器返回的每個(gè)取樣的數(shù)據(jù)。如果你在測(cè)試監(jiān)聽器中選擇一個(gè)文件,這個(gè)數(shù)據(jù)將被寫入文

件。如果你嘗試一個(gè)較小的測(cè)試來保證JMeter配置正確并且你的服務(wù)器正在返回期望的結(jié)

果,這是很有用的。這樣的后果就是這個(gè)文件會(huì)快速的增大,并且JMeter的效率會(huì)影響。

如果你不做壓力測(cè)試這個(gè)選項(xiàng)應(yīng)該關(guān)閉(默認(rèn)關(guān)閉)。

如果你不記錄數(shù)據(jù)到文件,這個(gè)選項(xiàng)就沒有不同了。

4.1線程組

線程組元件是任何測(cè)試計(jì)劃的起點(diǎn)。一個(gè)測(cè)試計(jì)劃的所有元件必須在一個(gè)線程組下。由

名字可以看出,線程組元件控制JMeter運(yùn)行測(cè)試時(shí)使用的線程數(shù)。線程組管理允許你:

設(shè)置線程數(shù)

設(shè)置ramp-upperiod

設(shè)置執(zhí)行測(cè)試的次數(shù)

每個(gè)線程會(huì)作為一個(gè)整體執(zhí)行測(cè)試計(jì)劃并完全獨(dú)立于他測(cè)試線程。多線程用來模擬到達(dá)

服務(wù)器程序的同步連接。

Ramp-upperiod告訴JMeter多久開始"ramp-up"選擇的全部線程。如果使用10個(gè)線程,

ramp-upperiod是100秒,那么JMeter用100秒彳吏所有10個(gè)線程啟動(dòng)并運(yùn)行。每個(gè)線程

會(huì)在上一個(gè)線程啟動(dòng)后10秒(100/10)啟動(dòng)。如果有30個(gè)線程和一個(gè)120秒的ramp-up

period,那么每個(gè)連續(xù)的線程會(huì)延遲4秒。

Ramp-up需要要充足長(zhǎng)以避免在啟動(dòng)測(cè)試時(shí)有一個(gè)太大的工作負(fù)載,并且要充足小以

至于最后一個(gè)線程在第一個(gè)完成前啟動(dòng)(除非你想那樣發(fā)生)。

使用ramp-up=線程數(shù)啟動(dòng),并上下調(diào)整到所需的。

默認(rèn),線程組被配置僅循環(huán)一次。

1.9版本引入了一個(gè)測(cè)試運(yùn)行*調(diào)度器*。單擊在線程組面板底部的復(fù)選框來顯示額外的

文本域,在里面你可以輸入啟動(dòng)和結(jié)束時(shí)間。當(dāng)測(cè)試啟動(dòng)時(shí),如果必須JMeter會(huì)等待啟動(dòng)

時(shí)間到達(dá)。在每個(gè)周期結(jié)束,JMeter檢驗(yàn)結(jié)束時(shí)間是否到達(dá),如果是,運(yùn)行停止,如果不

是測(cè)試被允許繼續(xù),直到迭代限制到達(dá)。

另外你可以使用啟動(dòng)延遲和持續(xù)時(shí)間文本域。注意啟動(dòng)延遲會(huì)覆蓋啟動(dòng)時(shí)間,持續(xù)時(shí)間

會(huì)覆蓋結(jié)束時(shí)間。

4.2控制器

JMeter有兩種控制器:取樣器和邏輯控制器。

取樣器告訴JMeter發(fā)送請(qǐng)求到服務(wù)器。例如,如果你要JMeter發(fā)送一個(gè)HTTP請(qǐng)求添

加一個(gè)HTTP請(qǐng)求取樣器。你也可以通過添加一個(gè)或者多個(gè)配置元件到一個(gè)取樣器來定制一

個(gè)請(qǐng)求。更多信息,見取樣器。

邏輯控制聯(lián)立你定制當(dāng)發(fā)送請(qǐng)求時(shí)JMeter使用的判斷邏輯.例如,你可以添加交替控

制器來在兩個(gè)HTTP請(qǐng)求取樣器之間交替。更多信息,見邏輯控制器。

4.2.1取樣器(Sampler)

取樣器告訴JMeter發(fā)送請(qǐng)求到服務(wù)器。JMeter取樣器包括:

FTP請(qǐng)求

HTTP請(qǐng)求

JDBC請(qǐng)求

Javaobject請(qǐng)求

LDAP請(qǐng)求

SOAP/XML-RPC請(qǐng)求

WebService(SOAP)請(qǐng)求

每個(gè)取樣器有一些你可以設(shè)置的屬性。你可以通過添加一個(gè)或多個(gè)配置元件到取樣器來

進(jìn)一步定制它。注意JMeter發(fā)送請(qǐng)求按照取樣器出現(xiàn)在樹中的順序。

如果你想發(fā)送多個(gè)相同類型的請(qǐng)求(例如,HTTPRequest)到相同的服務(wù)器,可以考

慮使用一個(gè)默認(rèn)配置元件。每個(gè)控制器有一個(gè)或者多個(gè)默認(rèn)配置元件(見下)。

記得添加一個(gè)監(jiān)聽器到線程組來查看/保存你的請(qǐng)求結(jié)果到磁盤。

如果你對(duì)使用JMeter平臺(tái)的基礎(chǔ)驗(yàn)證器到你的請(qǐng)求響應(yīng)感興趣,添加一個(gè)斷言到請(qǐng)求

控制器。例如,在壓力測(cè)試一個(gè)web程序時(shí),服務(wù)器會(huì)返回一個(gè)成功的HTTP響應(yīng)代碼,

但是這個(gè)頁面有錯(cuò)誤或者被忽略部分。你可以添加斷言來檢查某個(gè)HTML標(biāo)簽,一些錯(cuò)誤

字符串,等等。JMeter允許你使用正則表達(dá)式創(chuàng)建斷言。

JMeter內(nèi)建取樣器

4.2.2邏輯控制器

保持

邏輯控制器讓你定制當(dāng)發(fā)送請(qǐng)求時(shí)JMeter使用的判斷邏輯。邏輯控制器還可以作為下列任

何元件的子元件:取樣器(請(qǐng)求)、配置元件、和其他邏輯控制器。邏輯控制器可以改變來

自它們的子元件的請(qǐng)求順序。它們可以修改請(qǐng)求本身,導(dǎo)致JMeter重復(fù)請(qǐng)求,等。

理解邏輯控制器在測(cè)試計(jì)劃中的效果,考慮下列測(cè)試樹:

測(cè)試計(jì)劃

線程組

僅一次控制器

登錄請(qǐng)求(一個(gè)HTTP請(qǐng)求)

加載搜索頁面(HTTP取樣器)

InterleaveController

搜索"A"(HTTP取樣器)

搜索"B"(HTTP取樣器)

HTTP默認(rèn)請(qǐng)求(配置元件)

HTTP默認(rèn)請(qǐng)求(配置元件)

Cookie管理器(配置元件)

這個(gè)測(cè)試的第一件事就是登錄請(qǐng)求僅在第一次經(jīng)過時(shí)被執(zhí)行。隨后的迭代會(huì)忽略它。這

應(yīng)使用僅一次控制器。

登陸后,下一個(gè)取樣器加載搜索頁面(假設(shè)一個(gè)用登錄的web應(yīng)用程序,并到達(dá)搜索

頁面去搜索)。這僅是一個(gè)簡(jiǎn)單的請(qǐng)求,不會(huì)被任何邏輯控制器過濾。

加載搜索頁面后,我們要做一個(gè)搜索。事實(shí)上,我們想做兩個(gè)不同的搜索。然而,在每

個(gè)搜索之間我們想要自己重新加載搜索頁面。我們通過4個(gè)簡(jiǎn)單HTTP元件這樣做。(bad

search,search"A",loadsearch,search"B").Instead,weusetheInterleaveControllerwhich

passesononechildrequesteachtimethroughthetest.Itkeepstheordering(ie-itdoesn't

passoneonatrandom,but"remembers"itsplace)ofitschildelements.Interleaving2child

requestsmaybeoverkill,buttherecouldeasilyhavebeen8,or20childrequests.

注意HTTP默認(rèn)請(qǐng)求屬于插入控制器。假如"SearchA"和"SearchB”共享同樣的PATH信

息(一個(gè)HTTP請(qǐng)求說明中包括域,端口,方法,協(xié)議路徑和參數(shù),附加其他可選項(xiàng))。兩

個(gè)搜索請(qǐng)求訪問同樣的后端搜索引擎(比方說Servle,或者cgi腳本),這樣是說得通的。

與其兩者都配置使用相同信息的HTTP取樣器,我們可以抽象那些新到一個(gè)單獨(dú)的配置元

件。當(dāng)內(nèi)部控制器通過"SearchA"或者"SearchB"傳遞時(shí),它會(huì)從HTTP默認(rèn)請(qǐng)求配置元件

中獲得值填充空白。所以我們可以為那些請(qǐng)求保留PATH域?yàn)榭眨缓蟀涯切┬畔⒎诺脚渲?/p>

元件。在這個(gè)例子中,這至多是一個(gè)很小的好處,但它顯示了這個(gè)特性。

在這個(gè)樹中下一個(gè)元件是另一個(gè)HTTP默認(rèn)請(qǐng)求,這個(gè)時(shí)間被添加到線程組本身。這個(gè)

線程組有一個(gè)內(nèi)建的邏輯控制器,因此它正好使用這個(gè)配置元件做為上面的描述。它填充

任何穿過的請(qǐng)求的空白。在web程序中你所有的HTTP取樣器元件DOMAIN域?yàn)榭?,這是

極度有用的,替代的,把那些信息放到HTTP默認(rèn)請(qǐng)求元件中,添加到線程組。通過這樣做,

你可以在一個(gè)同的服務(wù)器通過改變你測(cè)試計(jì)劃中的一個(gè)域來測(cè)試你的程序。另外,你必須編

輯每個(gè)取樣器。

最后一個(gè)元件是一個(gè)HTTPCookie管理器。一個(gè)Cookie管理器應(yīng)該添加到所有web測(cè)

試上-否則JMeter會(huì)忽略Cookie。通過在線程組級(jí)添加它,我們可以確定所有的線程分享同

樣的Cookie(>

邏輯控制器可以組合達(dá)到不同的結(jié)果。見內(nèi)建邏輯控制器列表。

4.3監(jiān)聽器

監(jiān)聽器提供訪問JMeter收集當(dāng)JMeter運(yùn)行的關(guān)于測(cè)試計(jì)劃的信息。

圖形結(jié)果監(jiān)聽器在一張圖上繪制響應(yīng)時(shí)間。

"查看結(jié)果樹"監(jiān)聽器顯示了請(qǐng)求和響應(yīng)取樣器的細(xì)節(jié),并且以基礎(chǔ)的HTML和XML顯

示響應(yīng)表現(xiàn)。

其他監(jiān)聽器提供了摘要或者集合信息。

另外,監(jiān)聽器可以指導(dǎo)它們收集的數(shù)據(jù)到一個(gè)文件供以后用.在JMeter中每一個(gè)監(jiān)聽

器提供一個(gè)域來指出存儲(chǔ)數(shù)據(jù)的文件。

在測(cè)試中監(jiān)聽器可以添加到任何位置。它們僅僅會(huì)從它們等級(jí)或者它們以下等級(jí)的元件

收集數(shù)據(jù)。

伴隨JMeter有很多有趣的監(jiān)聽器。

4.4定時(shí)器

默認(rèn),JMeter線程發(fā)送請(qǐng)求時(shí)不在請(qǐng)求間暫停。我們建議你通過添加一個(gè)可用的定時(shí)

器到你的線程組來指定一個(gè)延遲。如果你不添加延遲,JMeter會(huì)在短時(shí)間內(nèi)產(chǎn)生太多請(qǐng)求,

可能會(huì)壓倒你的服務(wù)。

定時(shí)器會(huì)使JMeter在一個(gè)線程開始每個(gè)請(qǐng)求間延遲一段時(shí)間。

如果你選擇添加多于一個(gè)定時(shí)器到一個(gè)線程組,JMeter會(huì)在執(zhí)行取樣器前獲得定時(shí)器

數(shù)量并暫停那個(gè)時(shí)間量。

4.5斷言

斷言允許你斷言關(guān)于從測(cè)試服務(wù)器收到的響應(yīng)的行為。使用斷言你本質(zhì)上你可以測(cè)試你

的應(yīng)用程序返回你期望的結(jié)果。

例如,你可以斷言一個(gè)查詢的響應(yīng)會(huì)包含一些特殊的文本。你指定的文本可能是Perl

風(fēng)格的正則表達(dá)式,并且你可以指出這個(gè)響應(yīng)是包含這個(gè)文本,還是匹配整個(gè)響應(yīng)。

你可以添加一個(gè)斷言到任何取樣器。例如你可以添加一個(gè)斷言到HTTP請(qǐng)求檢查文本

"</HTML>",JMeter會(huì)檢查在HTTP響應(yīng)中表現(xiàn)的文本。如果JMeter沒有找到這個(gè)文本,

它會(huì)標(biāo)記這個(gè)為一個(gè)失敗的請(qǐng)求。

為了查看斷言結(jié)果,添加一個(gè)斷言監(jiān)聽器到線程組。

Assertion--斷言,通常是用于對(duì)每一個(gè)requestsampler進(jìn)行額外驗(yàn)證的工具。下面通過

―■個(gè)例子來介紹一下常用的幾個(gè)Assertionso

假設(shè)現(xiàn)在要進(jìn)行一個(gè)登陸的壓力測(cè)試,下面是對(duì)pass的幾個(gè)定義:

1.正確bgin后,必須收到返回的身份驗(yàn)證和用戶個(gè)人信息下載的完成信息;

2.響應(yīng)時(shí)間不能超過150毫秒

3.返回的結(jié)果大小不能小于750bytes

根據(jù)以上的要求,我們?cè)趯?duì)應(yīng)的requestsampler下面添加了以下的Assertions?

?aBadboyTestPlan

?腎ThreadGroup

,修HTTPCookieManager

|_jUserParameters

q通Step1

f/DoLogin

CSVDataSetConfig

ResponseAssertion

SizeAssertion

回AggregateReport

回ViewResultsTree

國(guó)WorkBench

A.ResponseAssertion

ResponseAssertion

Name:ResponseAssertion

________________________________________________________________________________________

ResponseFieldtoTest

?TextResponseURLSampledResponseCodeResponseMessageResponseHeadersIgnoreStatus

PatternMatchingRules

色Contains(MatchesCEquals[Not

PatternstoTest

ResponseFieldtoTest■■標(biāo)示被檢查對(duì)象是什么?

PatternMatchingRules-標(biāo)明被檢查對(duì)象與驗(yàn)證內(nèi)容之間的關(guān)系,Contains(包含關(guān)

系);Matches(匹配關(guān)系);Equals(相等關(guān)系);Not(非關(guān)系)

PatterntoTest-需要驗(yàn)證的內(nèi)容列表

B.DurationAssertion

DurationAssertion

Name:DurationAssertion

Comments:

DurationtoAssert

Durationinmilliseconds:123

DurationtoAssert-允許的響應(yīng)時(shí)間的最大值

C.SizeAssertion

SizeAssertion

Name:IsizeAssertion

Comments:

SizetoAssert

TypeofComparison

0ss

O!=

Sizeint)ytes:10⑥〉

O<

o>=

o<=

SizetoAssert-對(duì)于返回結(jié)果文件大小的標(biāo)準(zhǔn)定義

二、結(jié)果分析

添加了以上的Assertions后,我運(yùn)行了一次腳本。以下是存放結(jié)果的.jtl文件的內(nèi)容:

timeStamp,elapsed,label,responseCode,responseMessage,threadName,dataType,success/

ailureMessage,bytes,Latency

11/04/0813:22:03,172,DoLogin,200,OK,ThreadGroupfalse,Theoperationlasted

toobng:Ittook172milliseconds,butshouldnothavelastedlongerthan150

milliseconds.,835,172

11/04/0813:22:03,156,DoLogin,200,OK,ThreadGroup1?2,text,false,Testfailed:text

expectedtocontain/bginMsg="OK"/,633,156

11/04/0813:22:03,156,DoLogin,200,OK,ThreadGroup1?3,text,false,Theoperationlasted

toobng:Ittook156milliseconds,butshouldnothavelastedlongerthan150

milliseconds.,839,156

11/04/0813:22:03,156,DoLogin,200,OK,ThreadGroup1?4,text,false,Theoperationlasted

toolong:Ittook156milliseconds,butshouldnothavelastedlongerthan150

milliseconds.,836,156

11/04/0813:22:03,78,DoLogin,200,OK,ThreadGroupl?5,text,true〃779,78

11/04/0813:22:03,63,DoLogin,200,OK,ThreadGroup1?7,text,false,Testfailed:textexpected

tocontain/foginMsg="OK"/,570,63

11/04/0813:22:03,141,DoLogin,200,OK,ThreadGroup1?6,text,false,Theresultwasthe

wrongsize:Itwas721bytes,butshouldhavebeengreaterthan750bytes.,721,141

11/04/0813:22:03,78,DoLogin,200,OK,ThreadGroup1?9,text,false,Theresultwasthe

wrongsize:Itwas724bytes,butshouldhavebeengreaterthan750bytes.,724,78

11/04/0813:22:03,204,DoLogin,200,0K,ThreadGroup1-10,text,false,Theoperationlasted

toobng:Ittook204milliseconds,butshouldnothavelastedlongerthan150

milliseconds.,1137,204

11/04/0813:22:03,2985,DoLogin,200,OK,ThreadGroup1?8,text,false,Testfailed:text

,

expectedtocontain/foginMsg='OK'7/570,2985

我?可以看到,每一個(gè)Sampler都會(huì)經(jīng)過Assertions的判斷,只要有一個(gè)不符合條件的

都會(huì)標(biāo)示為False。

4.6配置元件

配置元件配合取樣器工作。雖然它不發(fā)送請(qǐng)求(除了HTTP代理服務(wù)器),但是它可以

力口可^q多j青^

一個(gè)質(zhì)置元件進(jìn)能訪問有所代替元件所在的樹分支的內(nèi)部。例如,如果你在一個(gè)簡(jiǎn)單邏

輯控制器里面設(shè)置一個(gè)HTTPCookie管理器,Cookie管理器很容易訪問“webPage1"和“web

Page2"HTTP請(qǐng)求。但是不能訪問"webPage3"。

同樣,一個(gè)在樹枝內(nèi)部的配置元件比在父支的同樣元件有更高的優(yōu)先級(jí)。例如,我們定

義兩個(gè)HTTP默認(rèn)請(qǐng)求元件,“WebDefaults1”和"WebDefaults2%如果我們把“WebDefaults

1”放置在一個(gè)循環(huán)控制器內(nèi)部,僅"WebPage2”可以訪問它。另一HTTP請(qǐng)求會(huì)使用“Web

Defaults2”,如果我們把它放置在線程組(所有其他分支的父支)。

9.TestPlan

?rThreadGroup

9迪SimpleController

捷^HTTPCookieManager

JWebPage1

9fjf;LoopController

WebPage2

加JWebDefaults1

,?WebPage3

^t|WebDefaults2

UJ|WorkBench

圖1-測(cè)試計(jì)劃展示配置元件的可達(dá)性

4.7前置處理器元件

前置處理器在取樣器請(qǐng)求建立前執(zhí)行一些行為。如果前置處理器附屬于取樣器元件,那

么它會(huì)僅在那個(gè)取樣器元件運(yùn)行前執(zhí)行。前置處理器最常用來在取樣請(qǐng)求運(yùn)行前修改它的設(shè)

置,或者更新不能從響應(yīng)文本提取的變量。當(dāng)前置處理器執(zhí)行時(shí),詳細(xì)信息見作用域規(guī)則。

4.8后置處理器元件

后置控制器在取樣器請(qǐng)求建立后執(zhí)行一些行為。如果后置處理器附屬于取樣器元件,那

么它會(huì)僅在那個(gè)取樣器元件運(yùn)行后執(zhí)行。后置處理器最常用來處理響應(yīng)數(shù)據(jù),常用來從它里

面提取數(shù)值。\\\\\\詳細(xì)見作用域規(guī)則關(guān)于前置處理器執(zhí)行。

4.9執(zhí)行順序

配額制元件

前置處理器

定時(shí)器

取樣器

后置處理器(如果SampleResult不為空)

斷言(如果SampleResult不為空)

監(jiān)聽器(如果SampleResult不為空)

溫馨提示

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

最新文檔

評(píng)論

0/150

提交評(píng)論