JMETER使用,從入門到放棄_第1頁
JMETER使用,從入門到放棄_第2頁
JMETER使用,從入門到放棄_第3頁
JMETER使用,從入門到放棄_第4頁
JMETER使用,從入門到放棄_第5頁
已閱讀5頁,還剩35頁未讀, 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

TOC\o"1-5"\h\z\o"CurrentDocument"1工具介紹 3工具組成 3測試計劃 3\o"CurrentDocument"工作臺 3測試組成結(jié)構(gòu) .4\o"CurrentDocument"HTTP消息頭 .4\o"CurrentDocument"HTTP請求默認值 .4\o"CurrentDocument"HTTPCookie管理器 5\o"CurrentDocument"線程組 5\o"CurrentDocument"HTTP請求 5\o"CurrentDocument"DebugSampler 5響應(yīng)斷言 .6常用監(jiān)聽器 6\o"CurrentDocument"2準備工作 7監(jiān)控資源 .7\o"CurrentDocument"監(jiān)控TOMCAT資源 7\o"CurrentDocument"監(jiān)控WINDOWS資源 10\o"CurrentDocument"監(jiān)控LINUX資源 11使用技巧 12\o"CurrentDocument"參數(shù)化 12正則表達式提取器 14\o"CurrentDocument"集合點 16響應(yīng)斷言 17\o"CurrentDocument"IP欺詐 19\o"CurrentDocument"3開始搞事情 22準備工作 23接口測試 23\o"CurrentDocument"腳本組成 23\o"CurrentDocument"數(shù)據(jù)共享 26線程組 31\o"CurrentDocument"Linux下運行Jmeter 33數(shù)據(jù)庫性能測試 35\o"CurrentDocument"Mysql性能測試 35\o"CurrentDocument"JAVA性能測試 37該文檔只講解JMETER作為測試工具在測試中常用的功能如何使用。其他功能,如果感興趣,可以自行研究學(xué)習(xí)。該文檔內(nèi)容具有一定的跳躍性,不適合測試小白學(xué)習(xí)。該文檔是我畢生心血之作,雖然內(nèi)容有可能不正確和不準確,但至少是在項目中得到實踐和經(jīng)得起測試的。另外該文檔主要內(nèi)容只會出現(xiàn)我知道和我使用過且能得出結(jié)論的內(nèi)容。所以該文檔不屬于進階和工具文檔。主要是讓小白們知道如何使用JMETET工具進行測試,指導(dǎo)一個方向而已。就我目前所知JMETER只能進行HTTP協(xié)議的測試。至于能不能進行其他協(xié)議的測試,請讀者自行研究。說明一點,不同的協(xié)議測試請用合適的工具,所以請大家在做測試之前請先選擇合適的測試工具,不然在測試過程中很有可能半途而廢,浪費時間,而且會嚴重打擊你的測試信心。注意:文檔中介紹的JMETER工具版本為V3.0o1工具介紹工具組成該工具由測試計劃和工作臺組成。這2個部分均可以添加線程組及各種元件。區(qū)別是測試計劃部分可以添加線程組,而工作臺不能添加線程組。一般我們都是在測試計劃中創(chuàng)建線程組進行接口的功能和性能測試。測試計劃組成如下圖所示江淮輕卡WE日端性能則討然HTTP信息頭管理獸X-http請求默認值(1)【用戶登錄】(2)【首頁-百公考42⑶t故障分析Ta:(4)t其他斫有君-X察看結(jié)果樹-X圖形結(jié)果案m報告12用恚格察看結(jié)果添加 ?Threads{Users),TestFragment卜配置元件 ?定時渠 卜前置處理器卜后置處理器?斷言 ?監(jiān)聽器 ?粘貼 Orl-VResetGuiByfUndoRedo打開_臺并保存為常用到的有:Threads(Users)、配置元件、后置處理器、斷言、監(jiān)聽器。具體怎么用,后面再講。工作臺組成如下圖所示(該文章不會對這個玩意進行講解,因為我沒用過,感興趣的可以自己研究哈)添加 ?非則試元件卜粘貼 Ctrl-V遙輯控制器?ResetGui配置元件?UndoRedo前置處理器卜□3rnpi&if打開后置處理器?合并斷言 ?保存為…監(jiān)聽器?SaveasTestFragmentSaveNodeAsImage ctri-G"~~~~工 可能會用到的功能:非測試元件(HTTPMirrorServer.HTTP代理服務(wù)器)。測試組成結(jié)構(gòu)一般組成為HTTP消息頭、HTTP請求默認值、線程組、HTTP請求、DebugSampler、查看結(jié)果樹、聚合報告、用表格察看結(jié)果、響應(yīng)斷言、各種可選用的監(jiān)聽器。如下圖所示. .…一能測試X川田仔息頭管理器WHTTP請求默認值aU(1)1用戶登錄】線程組A,(2)1首頁-百公里油耗二線程組*U(3)t故障分析轍障走勢二線程組>J[其他斫有接口二線程組、察看結(jié)果樹-X聚合報告、用表格察看結(jié)果響應(yīng)斷言1.2.1HTTP消息頭具體作用不詳,反正要加,不然腳本報錯。響應(yīng)內(nèi)容如果是json,消息頭里就填寫Content-Type=application/json。HTTP請求默認值作用是當一個線程組里存在N多接口,而且接口路徑中開頭一段相同。為什么方便修改相同部分的路徑內(nèi)容,就添加這個請求默認值。HTTPCookie管理器用于管理Cookie值,一般情況下無需填寫任何內(nèi)容值。只有當多個接口需要用到固定的cookie值時才會填寫內(nèi)容,一般結(jié)合正則提取器使用,具體使用方法見第3.2.2章節(jié)。線程組線程組有2個特性:線程屬性和調(diào)度器。這2個特性均用于性能測試。(1)線程屬性,設(shè)置線程數(shù)即虛擬用戶數(shù),性能測試場景中腳本的運行設(shè)置(2)調(diào)度器,設(shè)置性能測試場景中腳本的運行周期(時間),選中“調(diào)度器”才能使用此功能具體操作和功能說明請參考第3,2,3章節(jié)。HTTP請求接口是放在線程組里的。HTTP請求也有2個特性:接口測試和作為監(jiān)聽器使用。這2個特性的具體說明請參考第3,2章節(jié)(接口測試)和第2,1章節(jié)(監(jiān)控TOMCAT資源)。DebugSampler腳本調(diào)試神器。當在使用正則表達式提取器時想知道提取的數(shù)值是否正確,就可以使用這玩意了。將此元件掛在某個接口下即可,然后執(zhí)行腳本(DEBUG結(jié)果如下)。腳本調(diào)試完了記得禁用啊。

。用戶登錄電。用戶登錄電BeanShellSampler中DebugSampler電故障分析故障走勢r取樣器結(jié)果(請求(響應(yīng)熟據(jù)JMeterThread.last_sample_ok=trueJMeterThread.pack=org.apache.jmeter.threads.SamplePackage@333cf7rc53START.HMS=101310START.MS=1541383990650START.YMD=20131105TESTSTART.MS=1541397522256Imeter.USER_TOKEN_=(1)【用戶登錄】線程組1-1passwo「d二口C483E30A7A0BD9EF71D3CF973673924token=29ec472e-7783-41f5-93eC-32TO363323detoKen_g口=寸口Ken-29ec472e-7738-41f5-93eC-32TO363323de'token_g1=29ec472e-7730-41f5-93eC-32TO363323deusername=xnUsrOOO1響應(yīng)斷言主要用于判斷返回值或內(nèi)容是否正確,避免測試白忙活。常用監(jiān)聽器查看結(jié)果樹調(diào)試/運行腳本后查看結(jié)果內(nèi)容。主要分為“取樣器結(jié)果”、“請求”和“響應(yīng)數(shù)據(jù)”。聚合報告性能測試用,查看每個線程組運行性能指標數(shù)值。用表格察看結(jié)果查看所有線程組中每個接口的指標數(shù)值。性能指標這里就不列舉了,有些監(jiān)視器需要安裝JMETER插件或遠程連接登錄被這里就不監(jiān)控對象。2準備工作監(jiān)控資源監(jiān)控TOMCAT資源使用jmeter的tomcat監(jiān)視器功能,可以通過向tomcat的status頁面發(fā)送get請求,得到資源使用信息,然后轉(zhuǎn)換為直觀的圖像方式,這樣的話,就可以監(jiān)視到服務(wù)器的資源使用情況,不過需要注意的是,要使用tomcat監(jiān)視器功能,就必須在要監(jiān)視的服務(wù)器上配置tomcat相關(guān)文件。(1)配置/。0f;0皿815863.》血,內(nèi)容如下<?xmlversion='1.0'encoding='utf-8'?><tomcat-users><rolerolename="manager-gui"/><rolerolename="manager-script"/><rolerolename="manager-jmx"/><rolerolename="manager-status"/><userusername="admin"password="admin"roles=nmanager-gui"/><userusername="admin"password="admin"roles="manager-script"/><userusername="admin"password="admin"roles="manager-jmx"/><userusername="admin"password="admin"roles=Hmanager-status"/></tomcat-users>(2)配置/coMcontextxml,內(nèi)容如下<Context><WatchedResource>WEB-INF/web.xml</WatchedResource><Managerpathname="/manager"debug="0"privileged="true"docBase=H/home/tomcat-9900/webapps/manager"/><ValveclassName="org.apache.catalina.valves.CometConnectionManagerValven/></Context>注意:配置完成后先訪問http://IP地址:端口號/manager/status,檢查是否配置成功。(3)打開Jmeter在線程組下添加“配置元件-HTTP授權(quán)管理器”,在HTTP授權(quán)管理的“基礎(chǔ)URL”中輸入http://IP地址:端口號/manager/status,用戶名為上面新建的admin,密碼是admin,其他默認,如下圖所示(4)接著在當前線程組下添加“HTTP請求”,輸入被檢測服務(wù)器中的TOMCAT訪問IP和端口號;路徑輸入/manager/status;請求參數(shù)輸入XML(必須大寫),值為true,如下圖A1所示并且將此HTTP請求設(shè)置為“用作監(jiān)視器”,如下圖A2所示圖A1

圖A2(5)接著在當前HTTP請求下添加“監(jiān)視器結(jié)果”和“察看結(jié)果樹”,如下圖所示?總則試計劃T2線程組(9900)丈HTTF授權(quán)管理器? http請求監(jiān)視器結(jié)果察看結(jié)果樹9線程組(9999)(6)最后運行JMETER腳本,此時進入到“監(jiān)視器結(jié)果”界面可以看到被測服務(wù)器IP和資源(圖片),如下圖所示事測試計劃?。線程組(9900)xHTT喉權(quán)管理器9JHTTP請求監(jiān)視器結(jié)果察看結(jié)果網(wǎng)。線程組0999)K)工作臺監(jiān)視器結(jié)果名稱:I監(jiān)視器結(jié)果可見如何使用JMETER\腳本\腳本01(監(jiān)控Tomcat資源).jmx。監(jiān)視器結(jié)果名稱:I監(jiān)視器結(jié)果2.1.2監(jiān)控WINDOWS資源(1)首先下載和安裝以下三個插件(都在如何使用JMETER\插件文件夾中)。JMeterPlugins-Extras-1.4.0(Jmeter插件)JMeterPlugins-Standard-1.3.1(Jmeter插件)ServerAgent-2.2.1(監(jiān)聽工具)(22.1.2監(jiān)控WINDOWS資源(1)首先下載和安裝以下三個插件(都在如何使用JMETER\插件文件夾中)。JMeterPlugins-Extras-1.4.0(Jmeter插件)JMeterPlugins-Standard-1.3.1(Jmeter插件)ServerAgent-2.2.1(監(jiān)聽工具)(2)解壓Jmeter的2個插件,將JMeterPlugins-Extras.jar和JMeterPlugins-Standard.jar復(fù)制到j(luò)meter安裝目錄下的\lib\ext下。(3)重啟或者啟動Jmeter后在“監(jiān)聽器”中就顯示出可以監(jiān)控的資源,如下圖所示則試計劃工作臺濤加StartStartnopaus&sValidate線拜痢譴輯控制器?配置元件?定時器卜前置處理器?剪切Ctrr-X復(fù)制Ctrl-C粘貼Ctrl-VDuphcateCtrl+Shift-CR&s&tGEii刪除Delete監(jiān)聽器Sampler卜后置處理^>斷言?D&lavjp@gc-ActiveThreadsO\rerTimejp@gc-AutoStopListenerjp@gc-BytesTtiroughputOverTimejp@gc-CompositeGraphjp@gc-ConnectTimesOverTimejp@gc-ConsolsStatusLoggerjp@gc-DbMonSamplesCollectorjp@gc-FtexibleFiteWriterjp@gc-GraphsGeneratorjp@gc-HitsperSecondjp@gc-JMXMonSamplesColl&ctorjp@gc-LUpload&rjp@gc-Pag&DataExtractorjp@gc-P&rfMonMetricsCollectorRedo:gc-ResponseCodesperSecondjp@gc-R&sponseLatenciesOverTime打開.臺井保存為…調(diào)度器畫

持續(xù)時間jp@gc-R&sponseTimesDistributtomjp@gc-ResponseTimesOverTime?2?1startAgent.bat^R^(如何啟動請自監(jiān)控工具也可以選擇別的,這個不是唯一的。jp@gc-TransactionThroughputvsThreads是唯一的。(5)現(xiàn)在回到Jmeter,在線程組中添加要監(jiān)聽的服務(wù)器資源,比如CPU和內(nèi)存和網(wǎng)絡(luò)硬盤I/O,操作如下A、首先添加HTTP請求并輸入相關(guān)內(nèi)容后,再在當前HTTP所在的線程組

上添加jp@gc-PerfMonMetricsCollector上添加jp@gc-PerfMonMetricsCollector,界面如下圖所示B、接著在jp@gc-PerfMonMetricsCollector頁面中添加要監(jiān)聽的服務(wù)器資源,端口號默認是4444。為了能監(jiān)控到資源變化,我將線程組設(shè)置為無限循環(huán),最后啟動腳本,結(jié)果如下圖所示.測試計劃?U線程組—jp@gc-PerfMonMetricsCollector/HTT嘴求K工作臺名稱:jp@gc-PerflvlonMetricsCollector@Helponinisplugin27000024000021000018000015000030000.測試計劃?U線程組—jp@gc-PerfMonMetricsCollector/HTT嘴求K工作臺名稱:jp@gc-PerflvlonMetricsCollector@Helponinisplugin27000024000021000018000015000030000localhostlocalhostlocalhostlocalhostcoasueElo七£斫有額據(jù)寫入一個文件444444444444MemoryDisksI/ONetworkI/ODeleteRowLoq/DisplayOnly:口僅日志錯誤口Successes117:54:41-ERROR:ConnectException:Connectionrefusedconnect17:54:41-ERROR:.ConnedException:ConnectionrefusedconnectSettings300000120000注意:如果在上圖中間黃底區(qū)域顯示紅色報警信息,說明監(jiān)控工具未啟動。因為運行一次JMETER腳本進行監(jiān)控完成后,監(jiān)控工具會自動關(guān)閉,需要手動重新啟動。監(jiān)控配置腳本可見如何使用JMETER\腳本\腳本02(監(jiān)控windows資源).jmx。2.1.3監(jiān)控LINUX資源首先將JMeterPlugins-Extras-1.4.0和JMeterPlugins-Standard-1.3.1兩個插件放在JMETER的\lib\ext目錄下。再將ServerAgent-2.2.1監(jiān)控工具安裝在Linux服務(wù)器上并啟動(在Linux下進入到ServerAgent目錄下啟動服務(wù):shstartAgent.sh)。打開Jmeter在HTTP請求下添加“監(jiān)視器”即可看到JP@開頭的監(jiān)視元素。

復(fù)制c-LUploader文件編輯Search運行選項幫助ComparisonAssertronVisaalizerHTTP請求Ctri-XCtrl-CCtJl-VDuplicateResetGoi°jp@gc-ActiveThreadsOverTimejp@gc-AutoStopListenerjp@gc-BytesThroughputOverTimejp@gc-CompositeGraph復(fù)制c-LUploader文件編輯Search運行選項幫助ComparisonAssertronVisaalizerHTTP請求Ctri-XCtrl-CCtJl-VDuplicateResetGoi°jp@gc-ActiveThreadsOverTimejp@gc-AutoStopListenerjp@gc-BytesThroughputOverTimejp@gc-CompositeGraphjp@gc-ConnectTimesOverTimejp@gc-ConsoleStatusLoggerjp@gc-DbP.lonSamplesCollectorjp@gc-FtexrbleFileWriterjp@gc-GraphsGeneratorjp@gc-HitsperSecondjp@gc-JMXMonSamplesCollectorT.刎試計劃口甥程組gSynchronizingTimer§/HTTF^^舔加插入上級辛HTTP請.配置元件?定時^?前置處理簿?后置處理器卜斷言監(jiān)聽器?Ctrl+Shift-C剩余操作與監(jiān)控WINDOWS資源一樣,監(jiān)控配置腳本可見如何使用JMETER\腳本\腳本03(監(jiān)控Linux資源).jmx。2.2使用技巧2.2.1參數(shù)化JMETER參數(shù)化一般使用的是配置元件里的CSVDataSetConfig。該元件支持TXT格式,別的格式我沒試過。當然了要使用參數(shù)化功能就必須有一個HTTP請求。即在HTTP請求下添加參數(shù)化元件。操作如下(1)在HTTP請求上添加“配置元件-CSVDataSetConfig",如下圖所示f餐刎試計劃丈HTTP信息頭管理器X-http請求默認值上拳(D1用戶登錄二線程組HTTP請求名稱:用戶登錄添加f餐刎試計劃丈HTTP信息頭管理器X-http請求默認值上拳(D1用戶登錄二線程組HTTP請求名稱:用戶登錄添加插入上投剪切Ctrl-X復(fù)制Ctrl-C粘貼Ctrl-V配置元件?定時器?獲耳響E/BeanSXDecugrr±hF前置處理器?后置處理器?斷言?眼限制的接口時去掉參數(shù)化,直接使用卬口眥4CSVDataSetConfigFTPW求最省值DNSCacheManager\ovsn\iHTTPCacheManagerHTTPCookia管理器添加成功后的界面如下圖所示CSVDataSetConfig名稱:loginusers注釋:Filename:文件路徑和文件名稱,需要帶文件后綴注意:這里必須使用TXT文件然后另存為CSV文件,不然執(zhí)行時會報錯全是亂碼。至于為什么會這樣,我也沒研究VariableNames(comma-delimited):文件中的參數(shù)名稱Delimiter(user,\t’fortab):當文件中存在多個變量時可以用英文輸入法下的逗號隔開。如果只有一個參數(shù)這里可以不填其他屬性值默認就好(2)現(xiàn)在回到HTTP請求界面,如果是GET方法,則在Basic標簽頁的Parameters標簽區(qū)域的列表中添加參數(shù)化文件中的變量(如下圖所示)。列表中左側(cè)的“名稱”列填寫接口要傳遞的變量名稱,列表右側(cè)的“值”就填寫參數(shù)化文件中的變量名稱(格式必須是${變量名})。如果是POST方法,則在Basic標簽頁的BodyData區(qū)域中輸入JSON格式的內(nèi)容,如下圖所示參數(shù)化放置位置可以在某個HTTP請求下,也可以在某個線程組下,還可以放在測試計劃中!正則表達式提取器有些返回值是動態(tài)值,而這些動態(tài)值又會作為其他接口需要傳遞的參數(shù),那么我們就需要對這些動態(tài)值進行提取保存到變量中,再讓其他接口直接調(diào)用。舉例說明,現(xiàn)在有個接口的返回內(nèi)容中有token值(JSON格式,如下圖所示),而這個值又會作為其他接口的Cookie值進行傳遞,使其能保證其他接口能成功

被調(diào)用。Text0用戶登錄Q被調(diào)用。Text0用戶登錄QBeanShellSamplera0用戶登錄電BeanShellSampler'取樣器結(jié)果「請求「響應(yīng)藪據(jù)I rcode":0;message":wSUCCESSVdata,':ricr:1538994388837twusername-:"xnUsr000r,'headPicture':"TealNamew:'pJpJVmobile":「identityCa「cr-4212221994031900017sex-:“MALE」?!竒l(^1538979561575:o^■gName:)性能車隊零?7o(■gType7CUSTOMER二statLls…ENABLE7qq-:一「email""Vaddress":"|rokerr:-41a7d54c-9810-4d5f-9460-29c783b49a^:^KginType?:?SYS-「defaultVirr:null}}圖中內(nèi)容是:"token":“xxxx”?,F(xiàn)在要得到xxxx就得使用正則表達式提取器。(1)在HTTP請求下方添加后置處理器-正則表達式提取器,界面如下所示按照上圖內(nèi)容進行填寫,引用名稱請牢記,這個在后面會用到。正則表達式內(nèi)容這個我也是百度出來的("token":"(,+?)”),大家可以自行研究下。參數(shù) 釋義引用名稱 在HTT僧請求中,引用此效據(jù)r需要用到的名稱正則表達式 用于將需要的數(shù)據(jù)提取出來模板 表示使用提取到的第幾個值:獷1$:表示取所有值$0$:表示隨機取值$1$:表示取第1■個$2$:表示取第二個以此類:表示取第n個匹配數(shù)字(0代表隨機) 0代表隨機取值,1代表全部取值缺省值 如果正則表達式?jīng)]有搜找到值,則使用此缺省值此時可以用DebugSampler查看接口返回數(shù)據(jù)中的正則的值是否正確,執(zhí)行腳本即可。

Text「取樣器結(jié)果'請求‘響應(yīng)索(據(jù)口Text「取樣器結(jié)果'請求‘響應(yīng)索(據(jù)口用戶登錄電BeanShellSamplerODebugSamplerJMeterThread.last_sample_ok=trueJMeterThread.pack=org.apache.jmeter.threads.SamplePackage@5c40da19START.HMS=141009START.MS=1541390209222START.YMD=20131105TESTSTART.MS=154U0612S955_jmeter.USER_TOKEN_=(1)【用戶登錄】線程組1-1password=DC483E80A7A0BD9EF71D8CF973673924token=t2aae5ab-5441-4463-3cca-50a5cf6bdee9t。既 既n-:T2aae5ath544M4Btoken_g1=12aae5ab-544M463-Scca-50a5cf6bdee9username=xnUsr0001(2)現(xiàn)在進入到HTTP請求頁面,在輸入值的列表(GET方法)或JSON輸入?yún)^(qū)域(POST方法)輸入已被正則的變量名稱即${變量名}(也就是正則表達式提取器中的“引用名稱”)。正則表達式腳本可見如何使用JMETER\腳本\腳本04(正則表達式提取器).jmx。集合點這個功能是用于并發(fā)測試的。在某個 HTTP請求下方添加“定時器”-SynchronizingTimer",界面如下圖所示“NumberofSimulatedUserstoGrounpby”代表并發(fā)數(shù)。該數(shù)值的設(shè)置請注意:集合點中的并發(fā)數(shù)最好能被線程組中設(shè)置的用戶數(shù)整除(線程用戶數(shù)%并發(fā)數(shù)=0),不然跑腳本會報錯。集合點在線程組中可以隨意拖動,必須放在HTTP請求前面。集合點可以和線程組的“線程屬性”和“調(diào)度器”結(jié)合使用,主要是為了保證所有的用戶能到達集合點并能發(fā)生并發(fā)。

一段時間內(nèi)多次并發(fā)的設(shè)置需要注意線程數(shù)、Ramp-UpReriod、循環(huán)次數(shù)、調(diào)度器和SynchronizingTimer的設(shè)置關(guān)系。比如現(xiàn)在我要讓100個線程在一段時間內(nèi)有間隔的完成多次并發(fā),設(shè)置為:線程數(shù)100,Ramp-UpReriod大于100即可(最好是線程數(shù)的倍數(shù)),循環(huán)次數(shù)為1,調(diào)度器選中然后輸入持續(xù)時間,接著在SynchronizingTimer設(shè)置并發(fā)數(shù)即可。集合點腳本可見如何使用JMETERM^^'腳本05(SynchronizingTimer集合點).jmx。2.2.4響應(yīng)斷言作用是驗證返回內(nèi)容是否為測試所需要的,有些情況下,返回內(nèi)容不為SUCCESS但取樣器頁面中會顯示為200。主要是為了調(diào)試測試腳本返回信息是否為測試所需,避免浪費時間做無用功。正式測試時可以禁用此功能。這里我以HTTP請求的響應(yīng)信息為例進行講解。(1)在HTTP請求下添加“斷言-響應(yīng)斷言”,如下圖所示1測試計劃XH^P信息頭管理器調(diào)用有權(quán)限限制的接口時去掉參數(shù)化直接使用麻號(密碼:63A9F0EA7Bive口Usemultipart^ixrn-datafeePOSTrd":"${password}|1方法POSTHTTP請求H口哨求默認值名稱:用戶登錄插入上期Ctrl-XCtrl-CBeanSheltf|f=Ctrl-VBSFAssertion1DuplicateCtrl+Shift-CCompareAssertionResetGuiHTMLAssertionDeletEJSR223AssertionUndoMD5Hex斷言RedoSiieAssertionSMIMEAssertionXMLSchemaAssertionXMLffif1測試計劃XH^P信息頭管理器調(diào)用有權(quán)限限制的接口時去掉參數(shù)化直接使用麻號(密碼:63A9F0EA7Bive口Usemultipart^ixrn-datafeePOSTrd":"${password}|1方法POSTHTTP請求H口哨求默認值名稱:用戶登錄插入上期Ctrl-XCtrl-CBeanSheltf|f=Ctrl-VBSFAssertion1DuplicateCtrl+Shift-CCompareAssertionResetGuiHTMLAssertionDeletEJSR223AssertionUndoMD5Hex斷言RedoSiieAssertionSMIMEAssertionXMLSchemaAssertionXMLffif言SaveasTestFragmentXPathAssertion響應(yīng)斷言SaveScre&nAsImagectri+shift-G斷言持續(xù)時間打開…臺笄保存為.SaveNodeAsImagecui-G?Z運營看XHTIXMot■響山⑸的察看結(jié)果樹、鬃臺報告用表格察看圖形結(jié)果以斷言結(jié)果.、、*Transactioij-Hit.^nsrSr?萬用戶登奉二關(guān)2小%獲電;響應(yīng)一-/日eanSt./Debug?Synchrc;0 (2)【故艮au⑶【故艮⑷【遴黑上防錄[線上斷言監(jiān)聽器?海:/api/plc一匚自動三定向Parameters-1{"usernar配置元件?定時能?前置處理器?后置處理器?ApplyTo默認即可,要測試的響應(yīng)字段區(qū)域根據(jù)實際返回信息進行選擇,我這里選擇的是“響應(yīng)文本”。模式匹配規(guī)則一般選中Substringo要測試的模式區(qū)域中輸入你要斷言的返回內(nèi)容信息,一般是SUCCESS。如下圖所示響應(yīng)斷言名稱:卜向應(yīng)斷言注摩Applyto:OMainsampleandsub-samples?MainsampleonlyOSub-samplesonlyOJMeterVariable要馴試的響應(yīng)字廢您響應(yīng)文本ODocument(texl)。URL樣本O響應(yīng)代碼。響應(yīng)信息OResponseHeaders□IgnoreStatus模式匹配版則O包括O匹配OEquals?Substring□否要測試的模式要測試的模式SUCCESS此時再在HTTP請求或者該請求所在的線程組中添加監(jiān)聽器斷言結(jié)果,當腳本運行后可以在這里查看響應(yīng)結(jié)果是否正確。正確的結(jié)果直接顯示為HTTP請求名稱如下圖所示斷言結(jié)果名稱:|斷言結(jié)果注暮:所有數(shù)據(jù)寫入一個文件文件名 |捌苴…斷言: 用戶登錄錯誤的結(jié)果顯示為與輸入的斷言內(nèi)容不匹配的信息,如下圖所示響應(yīng)斷言腳本可見如何使用JMETER\腳本\腳本06(響應(yīng)斷言).jmx。另外返回內(nèi)容中如果想要監(jiān)控的信息是動態(tài)值,那么可以使用正則先獲取返回信息然后再在響應(yīng)斷言里輸入正則變量即可。2.2.5IP欺詐在做性能測試時,如果不設(shè)置ip欺詐,那么在運行腳本時所有的線程用的都是同一個ip地址,這樣不太符合真實的線上環(huán)境。另外有些程序會限制ip的使用,比如一個用戶只能使用一個ip地址,那么在運行腳本時不使用ip欺詐的結(jié)果就是祖國江山一片紅。所以ip欺詐功能需要根據(jù)實際情況來決定是否使用。反正我不用。以下操作步驟都是我在網(wǎng)上抄的,所以能不能成功,我不確定。(1)首先獲取一些閑置的ip地址,且必須為固定地址,不能是自動獲取的地址,方法:可以ping下哪些ip沒有用,沒有用的可以拿來用(cmd-pingip地址,也可以直接找網(wǎng)管)。(2)打開網(wǎng)絡(luò)共享中心一本地連接一點擊鏈接的網(wǎng)絡(luò)查看一屬性一Internet協(xié)議版本4一屬性一高級一添加多個IP地址,如下圖所示

文件舊漏撮?格磔L型《空一雪些172.1K.200.16172,16,200.123(4)在HTTP請求一下添加邏輯控制器-簡單控制器,選擇該控制器的目的是避簡單控制器名稱隼錄發(fā)帖注暮:免造成HTTP簡單控制器名稱隼錄發(fā)帖注暮:/htt£/htt£添加以:登號摘入上級?/限Z咻ChangeControlfer甥切5發(fā)巾AZ發(fā)巾復(fù)制http粘貼Jhttfin■■ntan.n4n配置元件?CSVDataSetConfig定的盎 ?前置處理器?Sampler卜后置處理器?麻吉 卜u啊0cacneManagerFTP請求熱省值HTTPCacheManagerHTTPCookie管理器HTTP信口落好理黑Ctrl-XCtrl-CCtrl-V1■r>U:XLL事則回時刷XHTTF信息頭管理器;線程組Xhttp請求默認值:;i:f八rm產(chǎn)招三,4七工口占口稱:(D1用戶登錄】線程組CriticalSectionControlleriu(2)【故障添加攻羯控制雷?>…(3)【故障Start酉E置元件?ForEmch控制器5口)1運營Startnopauses定時器?IncludeController 5>(5)【其他人.察看結(jié)果樹Validate前置處理器?jp@gc-ParameterizedController、聚含報告入用表格察看算4p圖形結(jié)果二斷言結(jié)果4yTransaction*4yHitsperSec4yResponseTm復(fù)制粘貼DuplicateCVI-XC-trlCCtrl-VCtrl+Shift-CSamplerk后置處理器?斷言 ?監(jiān)聽器 ?RuntimeController -SwitchControllerWhilleController事著控制器ResetGui刪除Delete]DelayThreat]調(diào)度器交替控制器僅一次控制器吞吐里控制器4yResponseT4yBytesThroui4yTransactionUndoRedo度■配置陵時詞f種)如果UID控制器錄制控制器4yResponseT(5)添加CSynchronizin打開化警網(wǎng)EhB才面VSDataSetConfig,即參數(shù)專行參數(shù)化這里就不多說了?!癟estPlanfuThreadGroup*HTTPCookieManager冠UserDefinedVariables乂HTTPHeaderManager1卜s登錄發(fā)(6)接著將http請求界面中的Implementation改為HttpClient4oCixrterrt褶百:/i;:Lcaiiiorumphfi〃!國百立完向里逆無運向YCixrterrt褶百:/i;:Lcaiiiorumphfi〃!國百立完向里逆無運向YUsaKespAliXift, ^一■:?■:.「-「■」」 「l曰ruwjsMGOEpatibWh&nt:3附眼將器郵:笄舞名可堿P:otahostrdqti-ThreadGroupHTTPCOOKie蜀an被wuserDinnedv^ri^esHTTPHeaderManagerHTTP請求BasicAxlvaticedHMpClienl4▼Iit,削enieiTtat麗:方法:CET端口號:(7)將HTTP請求頁面切換到【Advanced】設(shè)置頁面設(shè)置sourceaddress為IP/Hostname。I刈暗1回1同―4BasicAdvancedBasicAdvancedf津TestPlanfajThreadGroup淺HTTPCookieManager犬.UserDefinedVariables*HTTPHeaderManager、1登錄發(fā)帖

HTTP請求名稱:http://localhost/upload.'Torum.php■,Embei■,Embeihttp://localhost/upload/fornm.php

HZ口目00“|~££&HTPJ1LFilesA:登錄事勞控制器/http://localhost/upload/forum.phpdhttp://localhosVuploadjTorum.php色發(fā)帖隼臺點-發(fā)帖事勞控制器Jhttp:.''/localhosVupload/forurn.php/httpJ/localhosVupload/member.php/http://localhosVuploadfforum.php口朗HTML文件獲取所有內(nèi)含的費迪匚Sourceaddr&ssIPi'HostnameDevice-DeviceIPv4&asMD5hast]?(8)在后面添加CVSDataSetConfig設(shè)置好的參數(shù)名稱:${ipadress}。(9)添加結(jié)果樹,推行報告等,運行查看。T.TflffiPianfq1TriruJdGidupKHTrPGgMifHiagw唐UfierDeHrtpriVarlsiWesXI^TTFHsacterMan.ageit3團時1K■=VTHl;Fp!'--rJT.TflffiPianfq1TriruJdGidupKHTrPGgMifHiagw唐UfierDeHrtpriVarlsiWesXI^TTFHsacterMan.ageit3團時1K■=VTHl;Fp!'--rJri3瓊青耕學(xué)代M工幅^113J--11233T*13rti*4一口OO9中事白中,營?白。白4,0察看片果幗名春:緊香菇票利江年二照整甲?與人一十支件文件名^Fi:E?1JE^ml,Twcmjku&鰭。2he力n-L$thiAddFES3;473,日寓Cl14mDMlR口胃口WEdi加口KCEa_ll32nBg 君時10594瓦*P*EXCEn節(jié)旌—QNiiwussinum-iU;舒曰加『;XGE<J1LlmmZm『wqj?^iC^hnt*.:lln!iheifp-dlrvE!Jso-1內(nèi)㈱?吐Mn;:甲a*0icnnpjtiizie;wjrwu:0m$24CLR3.5.30F29)胸口eH:tn明|制W.Ie叫曲一中tn祁?irn困吟品q/巾9#$雁0/*,MlitfrticnMidEM-iMMrpiihlidppllrsHththtiMtHd.■appIkiUor(10)也可以使用【cmd-netstat-an】查看ip的使用情況。EQ3CiXVJ'indaiLVs\5ystem32\cmd.exeicrosoftwindows[版本10.0.105S6](c)2015lierasoftCorparatian?保留所有權(quán)利。:\Users\arindn>netstat-ani舌動連接議PPPPPPPPPPPLfrccccccccccc^^WTTTTTTTTTTT?本地地址 外部地址狀態(tài)議PPPPPPPPPPPLfrccccccccccc^^WTTTTTTTTTTT?本地地址 外部地址狀態(tài)D.0.0.0:1350,0.0.0:0LISTENING口,0.0.0:44:0LISTENING0.0,0,0:66460,0.0,0:0LISTENTS:7680:0LISTENING0.包0.0:4965:0LISTENING0.0.0,0:496650,0.0.0:0LISTENING氏0.0.0:4^66:0LIS7EWIN3口,Q.口,0:496670,口,0,Q;QLISTENING0.0.0,0:4966:0LISTENING:49670:0LISTENING127.Q,0,1:40000.0,oho:oLISTENING3開始搞事情HTTP接口的方法有很多,這里我只講解GET和POST兩種。另外監(jiān)控對象以WINDOWS為例。

3.1準備工作(1)監(jiān)控TOMCAT資源(請參考2.1.1章節(jié)),監(jiān)控WINDWOS資源(請參考第2.1.2章節(jié))。(2)選取HTTP接口,了解接口需要傳遞的參數(shù),使用的方法及返回正常/錯誤內(nèi)容及格式。(3)確定一個虛擬用戶是否只能使用一個IP地址。(4)確定消息頭內(nèi)容,可以通過瀏覽器的開發(fā)者模式查看。以GoogleChrome瀏覽器為例簡單講解。打開瀏覽器輸入訪問地址及賬號和密碼(登錄頁面),然后F12開啟開發(fā)者模式后切換到Network標簽頁面開始錄制,然后點擊登錄按鈕進入到系統(tǒng)里面后關(guān)閉開發(fā)者模式,找到登錄接口,接著點擊右側(cè)的Header標簽頁面進行相關(guān)內(nèi)容的查看即可。ElementsConsoleSourcesNetworkPerformanceMemoryApplicationSecurityAuditsJSCSSImgMediaFontDocWSManifestOther90000ms100000ms110000ms120000ms130000msDate:Mon,05Nov201809:45:24GMTServer:nginx/1.12.0vehidelou?t=1541411066681Set-Cookie:3AC_SESSIONID=8dl58425-8e27-4cdc-8441-79916062dbfd;Path:onlineRate?t=1541411066681Nov-201810:47:48GMT;HttpOnlyTransfer-Encoding:chunkedVary:OriginVary:Accept-EncodingonlineRate?t=1541411097504=1541411127496?RequestHeaders(10)□ElementsConsoleSourcesNetworkPerformanceMemoryApplicationSecurityAuditsJSCSSImgMediaFontDocWSManifestOther90000ms100000ms110000ms120000ms130000msDate:Mon,05Nov201809:45:24GMTServer:nginx/1.12.0vehidelou?t=1541411066681Set-Cookie:3AC_SESSIONID=8dl58425-8e27-4cdc-8441-79916062dbfd;Path:onlineRate?t=1541411066681Nov-201810:47:48GMT;HttpOnlyTransfer-Encoding:chunkedVary:OriginVary:Accept-EncodingonlineRate?t=1541411097504=1541411127496?RequestHeaders(10)□X-Application-Context:aerozhonghuan-jac-server:release:10041FlgetCurrentUserMenu?t=1541411066193□fuelConsumption?t=1541411066681OGroupbyframeOPreservelog(JDisablecache□OfflineOnline▼□current?t=1541411066684||getCurrer)tUserMenu?t=1541411066684□fuelConsumption?t=1541411097504vehidelou?t=1541411097504140000ms□□□□□vehidelou?t=1541411127496onlineRate?t=1541411127496rIfuelConsumption?t=1541411157509_TIvehidelou?t=1541411157509▼RequestPayloadviewsource▼{username:"facQl",password:"DC483E80A7A0BD9EF71D8CF973673924")password:"DC483E80A7A0BD9EF71D8CF973673924"22/25requests29.4KB/30.1KBtransferredusername:"facBl"3.2接口測試接口測試包括功能和性能兩個方面。該文章主要是講解如何使用JMETER編寫測試腳本,不包含性能測試的分析和調(diào)優(yōu)。該內(nèi)容可以參考另外一篇文章《性能分析與調(diào)優(yōu)指南》。腳本組成基本組成如下圖所示

r.測試計劃Xhttp信息頭管理器Xhttp請求默認值fU線程組9Z用戶登錄乂loginusersL工響應(yīng)斷言一■Synch「onizjngTime「――察看結(jié)果樹一&果合報告?用表格察看結(jié)果?斷言結(jié)果國工作臺具體操作如下(1)打開JMETER后,在測試計劃下添加線程組,如下圖所示又件瞬題search脛仃逝須幫助Threads(Users)k粘貼cui-vResetGuiUndoRedo+TTTTestFragment 卜酉EThreads(Users)k粘貼cui-vResetGuiUndoRedo+TTTTestFragment 卜酉E置元件 ?定時器 ?前置處理器 ?后置處理器 ?jp@gc-MappingThreadGroupjp@gc-UltimateThreadGroupsetupThreadGrouptearDownThreadGroup線程組名稱:注意:jp@gc-SteppingThreadGroup和jp@gc-UltimateThreadGroup用于性能測試的場景設(shè)置。setUpThreadGroup相當于初始化,在線程組之前運行。tearDownThreadGroup相當于退出,在線程組之后運行。這里講解的是線程組。(2)在該線程組下添加HTTP請求(3)在HTTP請求界面的Basic標簽區(qū)域輸入服務(wù)器IP、端口號、選擇方法(一般是GET和POST),輸入訪問路徑,最后再Parameters或者BodyData標簽頁中添加或者輸入要傳遞的參數(shù)名和值一般情況下,用非JSON格式傳遞參數(shù)的值在Parameters標簽頁的列表中添加,如下圖所示用JSON格式傳遞的參數(shù)在BodyData標簽頁中輸入,如下圖所示

[_|自動受定向叵]阻葩M定向0LfeeKeepAlive||UsemuItipart-'fc-rm-dstafc-rParametersBodyDataFilesUpload-1~{"username":{username}"?"password":"J{password}"^(4)如果接口需要通過不同的值進行測試,那么就需要對接口中待傳遞的參數(shù)進行參數(shù)化。在HTTP請求上右鍵點擊添加-配置元件-CSVDataSetConfig。完成參數(shù)化設(shè)置該配置元件可以放在HTTP請求下,也可以放在線程組,更可以放在測試計興HTT喟息頭管理器CSVDataSetConfig興HTT喟息頭管理器CSVDataSetConfig名稱:)CSVDataSetConfig注釋:共HTT嗝求默認值r短線程組F/loginusers:氣響F/loginusers:氣響應(yīng)既言興CSVDataSetConfig-■SynchronizingTimer—&察看結(jié)果樹K.鬃合報告&用表格察看結(jié)果—1.斷言結(jié)果K工作臺3.2.2數(shù)據(jù)共享這里借共享Cookie值來講解如何讓多個線程組共享某個Cookie值。比如只想進行一次登錄生成Cookie值后,其他多個線程組均使用這個Cookie值進行接口的調(diào)用。當一個JMETER腳本中存在多個線程組時會用到數(shù)據(jù)共享技術(shù)。1)先準備2個HTTP接口(分別放在2個線程組里),HTTPCookie管理器,HTTP信息頭管理器和HTTP請求默認值(可選)。結(jié)構(gòu)如下f4接口測試然HTTP請求默認值XHTTP。。曲語管理器X-HTTP信息頭管理器u1差錄線程組/1量錄匕3」2-查詢數(shù)據(jù)線程組X2■■查詢數(shù)據(jù)、察看結(jié)果樹另外該測試計劃中已選中如下選項(即先運行登錄線程組然后再運行其他線程組)

.接口測試XHTTP?求默認值XHTTPCookieXHTTP信息頭管理器々斑1壁錄線程組遙錄tie,2-查詢數(shù)據(jù)^程組丁/2-查詢數(shù)據(jù)L 察看結(jié)果樹LR工作臺H獨立運行整個鞋程組(惻如在一個組運行緒束后啟動下一個)口H獨立運行整個鞋程組(惻如在一個組運行緒束后啟動下一個)口RuntearDownThreadGroupsaftershutdownofmainthreads口國勤則試模式只有當你需要記錄每個清求從服務(wù)器取得的數(shù)據(jù)到文件時才需要選擇函數(shù)測試模式。為了方便理解,我們將登錄線程組設(shè)置3個線程數(shù),查看數(shù)據(jù)線程組設(shè)置1為了方便理解,?4t接口測試http請求默認值丈HTTP管理器丈HTTP信息頭管理器U1差錄線程組[J1量錄2-查詢數(shù)據(jù)線程組察看結(jié)果樹工作臺?4t接口測試http請求默認值丈HTTP管理器丈HTTP信息頭管理器U1差錄線程組[J1量錄2-查詢數(shù)據(jù)線程組察看結(jié)果樹工作臺從上圖中我們可以看出查看數(shù)據(jù)線程組訪察看結(jié)果樹名稱:察看結(jié)果樹注窿所有數(shù)據(jù)寫入一個文件文件名Search:T&xt電1差錄日1差錄問系統(tǒng)失孵源因是會話過期。了找出出錯原因,我們看下查詢數(shù)據(jù)接口的請求92查詢數(shù)據(jù)內(nèi)容(如下圖所示)Text廣取樣器結(jié)果『請求『響應(yīng)熟據(jù)GEThttp://212.64.69,99:10041/api/app/advertisement/getLatestAdList[nocookies]GEThttp://212.64.69,99:10041/api/app/advertisement/getLatestAdList[nocookies]電1墨錄中錄/忸查詢額據(jù)RequestHeaders:Connection:keep-aliveContent-Type:application/jsonHost:212.64.69,99:10041User-Agent:Apa.che-HttpClient/4.5.2(Javayi,3,0_51;暫時沒發(fā)現(xiàn)問題,現(xiàn)在我們將查詢數(shù)據(jù)接口放在登錄線程組的登錄接口下方,再次執(zhí)行腳本然后再看看查詢數(shù)據(jù)的請求內(nèi)容(如下圖所示)XHTTP請求默認值XHTTPcookie管理器XHTT喟息頭管理器鼐1-登錄線程組卜量錄LJ2道詢數(shù)據(jù)M2-查詢數(shù)據(jù)線程組察看結(jié)果樹名稱:察看結(jié)果樹所有數(shù)據(jù)寫入一個文件KI工作臺察看結(jié)果樹文件名取樣署結(jié)果請求GET9:10041/api/app/advertisement/getLatestAdListCookieXHTTP請求默認值XHTTPcookie管理器XHTT喟息頭管理器鼐1-登錄線程組卜量錄LJ2道詢數(shù)據(jù)M2-查詢數(shù)據(jù)線程組察看結(jié)果樹名稱:察看結(jié)果樹所有數(shù)據(jù)寫入一個文件KI工作臺察看結(jié)果樹文件名取樣署結(jié)果請求GET9:10041/api/app/advertisement/getLatestAdListCookieData:悔卜查瞰握?2-查詢數(shù)據(jù)Q2-查詢薊據(jù)RequestHeaders:Connection:keep-aliveContent-Type:application/jsonHost:9:10041User-Agent:Apache-HttpClient/4.5.2(Java/1.8.0_51)以上兩圖以比較,發(fā)現(xiàn)查詢數(shù)據(jù)接口的請求內(nèi)容中有個CookieData值,這個值就是我們要獲取的數(shù)據(jù)。CookieData值有兩種使用方法:固定值和動態(tài)值,現(xiàn)在分別進行講解如何獲取CookieData值。Cookie固定值我們還是將2個接口分別放在2個線程組里。只運行登錄線程組,得到登錄接口返回的token值。如下圖所示Xhttp請求默認值XHTTPCookie管理器XHTTPW息頭管理器,戰(zhàn)1-登錄續(xù)程組1/1垂錄,卜,2■■查詢數(shù)據(jù)線程組

2■■查詢數(shù)據(jù)&寮看結(jié)果樹察看結(jié)果樹名稱:上看結(jié)果樹注暮:所有數(shù)據(jù)寫入一個文件文件名口瀏覽…|Log/DisplayOnly:口僅日志錯誤□SuccessesConfigureSearch:| |[_jCasesensitive口RegularexpSearchReset取樣i號結(jié)果[請求I響應(yīng)數(shù)據(jù)I rcode,:0,,message-:'SUCCESSTdataTi<r:1533901647443,"createTime-:-2018-08-10ig4y2r.'createByr'roor.'updateTime^OIS-OS-IO20:08:36","updateBy-:"roor,tdl(r:null,"fleetl(r:1527577061112,"type--driver,TleetName"湊微車隊丁avata「:null「driverName-濟里-JnickName-mullJmObile-:-1588890100V,"passwor(T:-5E774EE5AEF9AODBF6B52B4E76FB4CCDTidentityCar(r7541234156845675456',"ser:-MALEVt>irtridar:null,■emair:null,"qq':null;address":null,'driverLicense":"541234156845675456*,-|icenseValidDate":"2020-08-1200:00:00-|icensePicture":,static/images/noPichjre.png",'qualityValidDate':-2021-08-1900:00:00","qualityPicture':"static/images/noPicture.pngTapplyStatus,:-NOT_APPLY".|[o^en]'5ddO6ecc-83d1-4fcd-8bdd-2b9197c2b8er-signe(rfalse,-identity':"driverlfleerrdefauttVin":*TTS0000200003000r,"openStolen-"YES","fleetUsernull.lotalPoinrnull."sair^Swie-}}記住這個tokne值。此時打開HTTPCookie管理器輸入以下內(nèi)容.接口測試XHTTPi青求默認值Cookie管理署xhttp信息頭管理器滋1蚩錄線程組上/1量錄卜.2■■查詢數(shù)據(jù)線程組T 2-查詢題據(jù)匚屋察看結(jié)果樹HTTPCookie管理器名稱:〔HTTPCookie管理器注釋:Options□每次反復(fù)清除Cookies?Implementation:HC4CookieHandler▼CookiePolicy:standard存睛在Cookie管理器中的Cookie-3L 7 7JAC_SESSIONID5dd06ecc-83d1-4fcd-8bdd-2b9197c2b8e79/安全

五上圖中的“值”就是token值。然后再將HTTPCookie管理器放在第2個線程中,如下圖所示

?*接口測試http請求默認值¥http信息頭管理器fU1型錄線程組工Z1餐錄q電2■■查詢數(shù)據(jù)線程組I XHTTPC口口tie管理器—|y2■■查詢數(shù)據(jù)

察看結(jié)果樹LKI工作臺啟動2個線程組并執(zhí)行,最終得到線程組的正確返回值,如下圖所示辛-0接口測試XH仃嘴求默認值XH/Pfl辛-0接口測試XH仃嘴求默認值XH/Pfl息頭管理器9《5》1建錄線程組IJ1聿錄,移5■■查詢數(shù)據(jù)線程組)<j;HTTPCookie管螺L/2-查詢數(shù)據(jù)匚“察看結(jié)果樹察看結(jié)果樹名稱:|察看結(jié)果樹注釋二所有獺據(jù)寫入一個文件取樣溶結(jié)果請求響應(yīng)數(shù)據(jù)|,"message':"BT:'roor,"adType":-DRIVERVadTitle':"^^hB222-,"adCover:whttp://6:30501/files/cover/rafedbac-a02c-4ade-98c0-c4089b16f8fe.png'"advertiser":"■誰看見7adeontenr:Jp>司忖告,新熠加,^0>i</p>"adStatus":",RELEASEVissuelcr:1,-issueTime-:-2O18-O6-2613:56:32°,"issueName"nullLricTiZO/createTime'^IS-oe-ia11:41:42VcreateBy":?rootVupdateTime":"2018-06-1911:41:4T「updateBT;"roofadType■:-DRIVER-adTltleF機廣告Tja(lCover:-http://222.2l2.94.96:3050l/mes/cover/6953cca2-54aX52l-a5b2-eaf746b026d9.png-:a(?veEser■一道森傳媒--adContenr「vp也難輕卡車輛展示v/p>7adStatus~-RELEASETissuel(ri「issueTime;-20l8-06-1911:41:47VissueName":null}.ri<r:l7,'createTimeT2018-06-1518:20:36","createBr:Toor;updateTime":"2018-06-1518:20:4Z;updateBr:Toor;adType':'DRIVER',"adTitle':'^ff',"adCover:-http://26:30501/files/cover/4ffc27c0-ca6a?4637-aeb2-e6e42bf1f593.jpg丁advertiser:11優(yōu)酷傳媒"JadContenf,vp邛可啥地方撤地方v/p>TadStatus^RELEASE",■issuel(T:fissueTime':-2018-06-1518:20:4r;issueName':nullDCookie動態(tài)值使用原理:獲取第1線程組中登錄成功返回的token值后將其設(shè)置為全局變量,然后該變量作為第2個線程組中接口的cookie值使用。我們需要“正則提取器”(用于獲取token值并保存在變量里)和“BeanShellSampler(將token值設(shè)置為全局變量)”。1)修改修改perties文件:CookieManager.save.cookies=true。重啟jmeter2)正則提取器放在登錄接口下方,BeanShellSampler放在第1個線程組下方,結(jié)果如下圖所示

?金接口則試HTTP請求默認值乂HTTP信息頭管理器?混巾手錄線程組9/1差錄>正則表達式提取器

萬BeanShellSampler.接口測試Xhttp清求默認值X.接口測試Xhttp清求默認值Xhttp信息頭管理器論1登錄線程組?"W1羞錄?畫裘達式提取圖LJBeanShellSampler(,2-查詢數(shù)據(jù)線程組XHTTPCoolde管理器L/2-查詢數(shù)據(jù)L屋瓢看結(jié)果樹KI工作臺正則表達式提取器名稱:I正貝陸達式提取器 一注釋:Applyto:QMainsampleandsub-samples(§)MainsampleonlyOSub-samplesonlyOJMeterVariable引用名稱:token正則表達式:引用名稱:token正則表達式:token-:-(.+?)'模板二$1$匹配數(shù)字(0代志隨機):1赦省值:I□Useemptydefaultvalue⑥主體OBody(unescaped)OBodyasaDocumentO信息頭ORequestHeadersOURLO響應(yīng)代斛O響應(yīng)信息引用名稱:token,可以自定義正則表達式:"token〃:〃(.+?)〃,不同數(shù)值的表達式寫法不一樣模板:$1$匹配數(shù)字:04)BeanShellSampler:${__setProperty(token,${token},)},如下所示5)此時在第2線程組中“HTTPCookie管理器”中輸入如下內(nèi)容名稱:JAC_SESSIONID值:${_property(token)},這就是全局變量名稱域:就是接口的IP地址路徑:/7-1接口則試Xhttp請求默認值X7-1接口則試Xhttp請求默認值Xhttp信息頭管理器卜池登錄線程組O-Z1遙錄L/BeanShellSampler,:卷2-查詢數(shù)據(jù)線程組J2-查詢數(shù)據(jù)XHTTPCookie管理器察看結(jié)果樹L兇工作臺察看結(jié)果樹名稱:|察看結(jié)果樹注釋:斫有藪據(jù)寫入一個文件 文件名 瀏覽…Log/DisplayOnly:口僅Search:InCasesensitive口Regularexp.SearchResetText?1Text?1-登錄。BeanShellSampler電2-查詢數(shù)據(jù)rcode':0,"message-:'SUCCESS",'data':[ricr:21,'createTime-:-2018-06

溫馨提示

  • 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)容負責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

最新文檔

評論

0/150

提交評論