版權(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ì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 合同的補(bǔ)充協(xié)議
- 2025廣告制作合同范本
- 二零二五年度高性能混凝土工程供應(yīng)與施工服務(wù)合同3篇
- 二零二五版太陽能光伏發(fā)電系統(tǒng)安裝及售后服務(wù)合同3篇
- 2025-2030年中國(guó)齒科材料行業(yè)發(fā)展現(xiàn)狀規(guī)劃研究報(bào)告
- 2025-2030年中國(guó)鎢精礦市場(chǎng)發(fā)展現(xiàn)狀規(guī)劃研究報(bào)告
- 二零二五年度林業(yè)生態(tài)補(bǔ)償項(xiàng)目承包協(xié)議4篇
- 2025-2030年中國(guó)鉬精礦市場(chǎng)深度評(píng)估及未來發(fā)展趨勢(shì)預(yù)測(cè)報(bào)告
- 2025-2030年中國(guó)金屬絲繩制造行業(yè)現(xiàn)狀分析與競(jìng)爭(zhēng)戰(zhàn)略研究報(bào)告
- 二零二五年度新能源儲(chǔ)能系統(tǒng)零部件采購合同4篇
- 2024-2025學(xué)年八年級(jí)上學(xué)期1月期末物理試題(含答案)
- 2025年國(guó)新國(guó)際投資有限公司招聘筆試參考題庫含答案解析
- 制造車間用洗地機(jī)安全操作規(guī)程
- 2025河南省建筑安全員-A證考試題庫及答案
- 商場(chǎng)電氣設(shè)備維護(hù)勞務(wù)合同
- 油氣田智能優(yōu)化設(shè)計(jì)-洞察分析
- 陜西2020-2024年中考英語五年真題匯編學(xué)生版-專題09 閱讀七選五
- 磚混結(jié)構(gòu)基礎(chǔ)加固技術(shù)方案
- 助產(chǎn)專業(yè)的職業(yè)生涯規(guī)劃
- 2023年國(guó)家公務(wù)員錄用考試《行測(cè)》真題(行政執(zhí)法)及答案解析
- 新《國(guó)有企業(yè)管理人員處分條例》知識(shí)競(jìng)賽考試題庫500題(含答案)
評(píng)論
0/150
提交評(píng)論