日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪(fǎng)問(wèn) 生活随笔!

生活随笔

當(dāng)前位置: 首頁(yè) > 编程资源 > 编程问答 >内容正文

编程问答

云智慧压测实战分享之JMeter脚本录制实例

發(fā)布時(shí)間:2023/12/10 编程问答 30 豆豆
生活随笔 收集整理的這篇文章主要介紹了 云智慧压测实战分享之JMeter脚本录制实例 小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.

在前面的《云智慧壓測(cè)實(shí)戰(zhàn)分享之JMeter工具使用初探》中我們對(duì)JMeter的功能特點(diǎn)和常用元件做了簡(jiǎn)單介紹,接下來(lái)說(shuō)說(shuō)JMeter的腳本錄制。JMeter有多種錄制腳本方法,其中最常見(jiàn)的是通過(guò)第三方工具Badboy錄制,另外還有JMeter自身設(shè)置(Http代理服務(wù)器+IE瀏覽器設(shè)置)來(lái)錄制腳本,下面以壓測(cè)寶為例來(lái)介紹下Badboy腳本錄制過(guò)程。

  注:使用JMeter的代理或是Badboy進(jìn)行錄制的時(shí)候,操作不能太快,不然容易造成錄制失敗。

  1、打開(kāi)Badboy工具,在地址欄目中輸入被測(cè)試項(xiàng)目的地址。注意:Badboy啟動(dòng)默認(rèn)是錄制狀態(tài),為紅色按鈕,如圖:

  錄制完成后點(diǎn)擊工具欄旁邊黑色按鈕,結(jié)束錄制。

  2、選擇“文件”--Export to JMeter…

  3、打開(kāi)JMeter工具,選擇“文件”-->“打開(kāi)”選擇剛才保存的文件(.jmx類(lèi)型),將文件導(dǎo)入進(jìn)來(lái)了。

  錄制的腳本一定要添加HTTP Cookie Manager,否則腳本運(yùn)行失敗。

  對(duì)于JMeter來(lái)說(shuō),一個(gè)測(cè)試計(jì)劃只能有一個(gè)Cookie管理器,因?yàn)楫?dāng)多個(gè)Manager存在時(shí),JMeter沒(méi)有方法來(lái)指定使用哪個(gè)Manager,同時(shí)一個(gè)Cookie Manager中存儲(chǔ)的Cookie也不能被其他Cookie Manager所引用,所以同一個(gè)測(cè)試計(jì)劃中不建議使用多個(gè)Cookie Manager。

  JMeter壓測(cè)實(shí)例

  下面我們用幾個(gè)JMeter壓測(cè)實(shí)例來(lái)熟悉一下JMeter的使用。

  1、使用JMeter進(jìn)行http接口測(cè)試

  Jmter工具設(shè)計(jì)之初是用于性能測(cè)試的,它在實(shí)現(xiàn)對(duì)各種接口的調(diào)用方面已經(jīng)比較成熟,因此可直接使用JMeter工具來(lái)完成對(duì)Http接口的測(cè)試。

  1)、開(kāi)發(fā)接口測(cè)試案例的整體方案:

  ? 第一步:我們要分析出測(cè)試需求,并拿到開(kāi)發(fā)提供的接口說(shuō)明文檔;

  ? 第二步:從接口說(shuō)明文檔中整理出接口測(cè)試案例,里面要包括詳細(xì)的入?yún)⒑统鰠?shù)據(jù)以及明確的格式和檢查點(diǎn)。

  ? 第三步:和開(kāi)發(fā)一起對(duì)接口測(cè)試案例進(jìn)行評(píng)審。

  ? 第四步:結(jié)合開(kāi)發(fā)庫(kù),準(zhǔn)備接口測(cè)試案例中的入?yún)?shù)據(jù)和出參數(shù)據(jù),并整理成csv格式的文件。

  ? 第五步:結(jié)合接口測(cè)試案例文檔和csv格式的數(shù)據(jù)文檔,做接口測(cè)試案例的自動(dòng)化案例開(kāi)發(fā)。

  2)、接口自動(dòng)化適用場(chǎng)景:

  目前設(shè)計(jì)的自動(dòng)化接口測(cè)試案例有兩個(gè)運(yùn)行場(chǎng)景:

  a. 測(cè)試前置、開(kāi)發(fā)自測(cè):一個(gè)新的自動(dòng)化接口測(cè)試案例開(kāi)發(fā)完成后,直接發(fā)給接口對(duì)應(yīng)的開(kāi)發(fā),安排在開(kāi)發(fā)本地環(huán)境執(zhí)行,一旦開(kāi)發(fā)確認(rèn)完成接口開(kāi)發(fā),就開(kāi)始執(zhí)行接口測(cè)試案例,基本上可以實(shí)時(shí)拿到測(cè)試結(jié)果,方便開(kāi)發(fā)快速做出判斷。【開(kāi)發(fā)本地運(yùn)行的方式就是打開(kāi)JMeter工具,導(dǎo)入JMX文件,開(kāi)始執(zhí)行即可?!?/p>

  b. 回歸測(cè)試:開(kāi)發(fā)本地測(cè)試通過(guò)后,或整個(gè)需求手工測(cè)試通過(guò)后,把自動(dòng)化的接口測(cè)試案例做分類(lèi)整理,挑選出需要納入到回歸測(cè)試中的案例,在持續(xù)集成環(huán)境重新準(zhǔn)備測(cè)試數(shù)據(jù),并把案例納入到持續(xù)集成的job中來(lái),這些用于回歸的接口測(cè)試案例需要配置到持續(xù)集成平臺(tái)自動(dòng)運(yùn)行。

  3)、接口測(cè)試環(huán)境準(zhǔn)備

  ?  Jdk1.6或以上:http://www.oracle.com/technetwork/java/javase/downloads/index.html

  ?  JMeter,下載址址:http://jmeter.apache.org/download_jmeter.cgi

  ?  插件的下載安裝地址:http://www.jmeter-plugins.org/

  4)、創(chuàng)建工程:

  a、打開(kāi)JMeter:下載好JMeter后,雙擊bin目錄下的jmeter.bat文件:

  

  b、添加線(xiàn)程組:在“測(cè)試計(jì)劃”上點(diǎn)擊鼠標(biāo)右鍵-->添加-->threads(Users)-->線(xiàn)程組,添加測(cè)試場(chǎng)景設(shè)置組件,接口測(cè)試中一般設(shè)置為1個(gè)“線(xiàn)程數(shù)”,根據(jù)測(cè)試數(shù)據(jù)的個(gè)數(shù)設(shè)定“循環(huán)次數(shù)”。

  

  c、添加“HTTP Cookie管理器”:

  d、添加“Http請(qǐng)求默認(rèn)值”組件,當(dāng)被測(cè)系統(tǒng)有唯一的訪(fǎng)問(wèn)域名和端口時(shí),這個(gè)組件很好用:

  e、在“HTTP 請(qǐng)求默認(rèn)值”組件配置頁(yè)面,填寫(xiě)被測(cè)系統(tǒng)的域名和端口,http請(qǐng)求的實(shí)現(xiàn)包版本以及具體協(xié)議類(lèi)型,線(xiàn)程組里的所有“HTTP Sampler”可默認(rèn)使用此設(shè)置。

  

  f、在“線(xiàn)程組”里添加“HTTP 請(qǐng)求”的Sampler

  

  g、在HTTP請(qǐng)求設(shè)置頁(yè)面,錄入被測(cè)接口的詳細(xì)信息,包括請(qǐng)求路徑,對(duì)應(yīng)的請(qǐng)求方法,以及隨請(qǐng)求一起發(fā)送的參數(shù)列表:

  

  h、設(shè)置檢查點(diǎn):在被測(cè)接口對(duì)應(yīng)的“HTTP 請(qǐng)求”上,添加“響應(yīng)斷言”

  

  i、在設(shè)置頁(yè)面上添加對(duì)相應(yīng)結(jié)果的正則表達(dá)式存在性判斷即可:

  

  j、添加監(jiān)聽(tīng)器:方便查看運(yùn)行后的結(jié)果

  

  上述步驟完成了一個(gè)簡(jiǎn)單測(cè)試實(shí)例的創(chuàng)建,復(fù)雜測(cè)試實(shí)例均在此基礎(chǔ)上擴(kuò)展完成。使用JMeter工具開(kāi)發(fā)的接口測(cè)試案例,一個(gè)子系統(tǒng)建議放在同一個(gè)“測(cè)試計(jì)劃”中,流程測(cè)試可以通過(guò)“線(xiàn)程組”來(lái)區(qū)分,這樣也便于設(shè)定不同的測(cè)試數(shù)據(jù)個(gè)數(shù)。比較獨(dú)立的接口,可以統(tǒng)一放在一個(gè)線(xiàn)程組內(nèi),順序完成測(cè)試。

  流程性接口的測(cè)試:如果要測(cè)試的接口可以組成一個(gè)流程,只需要順序添加多個(gè)“HTTP 請(qǐng)求”的Sampler,各請(qǐng)求之間可以提取需要在上下文傳遞的數(shù)據(jù)作為參數(shù),以保證流程中數(shù)據(jù)的一致性。

  2、JMeter分布式測(cè)試

  在使用JMeter進(jìn)行性能測(cè)試時(shí),如果并發(fā)數(shù)比較大(比如最近項(xiàng)目需要支持1000并發(fā)),單臺(tái)電腦(CPU和內(nèi)存)可能無(wú)法支持,這時(shí)可以使用JMeter提供的分布式測(cè)試的功能。

  1)、JMeter分布式執(zhí)行原理:

  JMeter分布式測(cè)試時(shí),選擇其中一臺(tái)作為調(diào)度機(jī)(master),其它機(jī)器做為執(zhí)行機(jī)(slave)。

  執(zhí)行時(shí),master會(huì)把腳本發(fā)送到每臺(tái)slave上,slave 拿到腳本后就開(kāi)始執(zhí)行,slave執(zhí)行時(shí)不需要啟動(dòng)GUI,我理解它應(yīng)該是通過(guò)命令行模式執(zhí)行的。

  執(zhí)行完成后,slave會(huì)把結(jié)果回傳給master,master會(huì)收集所有slave的信息并匯總。

  2)、執(zhí)行機(jī)(slave)配置:

  a、slave機(jī)上需要安裝JMeter,具體如何安裝這里不詳細(xì)介紹了。

  b、添加環(huán)境變量:JMETER_HOME=D:\B_TOOLS\apache-jmeter-2.13,此處為你JMeter的路徑

  c、啟動(dòng)bin目錄下的:jmeter-server.bat,啟動(dòng)成功如下圖:

  

  d、上圖上標(biāo)紅的IP和端口會(huì)在master里配置時(shí)用到。IP就是slave機(jī)器IP,端口默認(rèn)是1099,端口也可以自定義,這里我自定義為1000,這個(gè)后面會(huì)講。

  e、多臺(tái)slave的話(huà),重復(fù)1~4步驟就好。

  3)、調(diào)度機(jī)(master)配置:

  a、腳本:簡(jiǎn)單的一個(gè)訪(fǎng)問(wèn)壓測(cè)寶的腳本: 

  b、找到JMeter的bin目錄下jmeter.properties文件,修改如下配置,IP和Port是slave機(jī)的IP以及自定義的端口(這里端口我自定義為100,后面會(huì)講如何自定義):

        remote_hosts=10.13.223.202:1000,10.13.225.12:1000

    多臺(tái)slave之前用","隔開(kāi),我這配置了2臺(tái),可以看到標(biāo)紅的這個(gè)就是上面截圖slave的IP和Port.

  c、打開(kāi)JMeter,選擇運(yùn)行,有運(yùn)程啟動(dòng)、運(yùn)程全部啟動(dòng)兩個(gè)選項(xiàng):

  

  d、選擇遠(yuǎn)程啟動(dòng)-->10.13.225.12:1000

    a) master結(jié)果,這里我只啟動(dòng)了10.13.225.12:1000這一臺(tái)slave,所以只有一個(gè)結(jié)果(線(xiàn)程數(shù)和循環(huán)次數(shù)都是1):

  

    b) slave控制臺(tái)信息:

  

  e、選擇遠(yuǎn)程啟動(dòng)-->遠(yuǎn)程全部啟動(dòng):

    a) master結(jié)果,全部啟動(dòng),我配置了2臺(tái)slave,所以有兩次執(zhí)行結(jié)果:

  

  4)、自定義端口:

  上面其實(shí)已經(jīng)實(shí)現(xiàn)了JMeter的分布式測(cè)試,這部分主要介紹下如何自定義slave端口:

  a、slave:在slave機(jī)的JMeter的bin目錄下,找到j(luò)meter.properties文件,修改如下兩個(gè)配置項(xiàng),比如我這里修改為1888:

      server_port=1888

      server.rmi.localport=1888

  b、啟動(dòng)slave機(jī)上的jmeter-server.bat,如下圖,端口已經(jīng)修改為:1888

  

  c、master:修改master機(jī)器的jmeter.properties文件:

      remote_hosts=10.13.223.202:1000,10.13.225.12:1888

  d、重啟jmeter.bat,如下圖,端口已經(jīng)變了:

  

  5)、其它說(shuō)明:

  a、調(diào)度機(jī)(master)和執(zhí)行機(jī)(slave)最好分開(kāi),由于master需要發(fā)送信息給slave并且會(huì)接收slave回傳回來(lái)的測(cè)試數(shù)據(jù),所以mater自身會(huì)有消耗,所以建議單獨(dú)用一臺(tái)機(jī)器作為mater。

  b、參數(shù)文件:如果使用csv進(jìn)行參數(shù)化,那么需要把參數(shù)文件在每臺(tái)slave上拷一份且路徑需要設(shè)置成一樣的。

  c、每臺(tái)機(jī)器上安裝的JMeter版本和插件最好都一致。

  3、搭建持續(xù)集成接口測(cè)試平臺(tái)

  下面介紹最后一個(gè)實(shí)例,搭建持續(xù)集成接口測(cè)試平臺(tái)(Jenkins+Ant+JMeter)。

  1)、環(huán)境準(zhǔn)備:

  JDK:http://www.oracle.com/technetwork/java/javase/downloads/index.html

  Ant:http://ant.apache.org/bindownload.cgi

  Jenkins:http://jenkins-ci.org/

  2)、Jemter腳本準(zhǔn)備:

  a、腳本目錄:D:\B_TOOLS\apache-jmeter-2.13\demo

  b、腳本內(nèi)容:都是訪(fǎng)問(wèn)壓測(cè)寶或google首頁(yè)

  Script_yacebao.jmx  

  Script_google.jmx

  3)、ANT的build.xml代碼準(zhǔn)備:

  1

  2

  3

  4

  5

  6

  7

  8

  9

  10

  11

  12

  13

  14

  15

  16

  17

  18

  19

  20

  21

  22

  23

  24

  25

  26

  27

  28

  29

  30

  31

  32

  33

  34

  35

  36

  37

  38

  39

  40<xslt p="" <="" in="${jmeter.result.jtlName}">

  41 out="${jmeter.result.htmlName}"

  42 style="${jmeter.home}/extras/jmeter-results-detail-report_21.xsl"/>

  43

  44

  45

  46

  47

  48

  49

  50

  51

  4)、配置Jenkins Job并運(yùn)行:

  a、job配置如下:

  b、在job的workspace目錄下會(huì)生成結(jié)果報(bào)告:

  c、TestReport.html:

  5)、配置發(fā)送郵件功能

  a、自已寫(xiě)一個(gè)發(fā)送郵件的功能并打成sendmail.jar包,放在job的workspace目錄中

  b、jenkins增加構(gòu)建步驟

  a)進(jìn)入到測(cè)試報(bào)告的目錄

  b) 調(diào)用sendmail.jar命令發(fā)送郵件

  說(shuō)明:

  由build3.xml的第12、13行可知,報(bào)告文件生成目錄為:${env.WORKSPACE}/results/${env.BUILD_ID},所以這里要先cd到具體執(zhí)行的那個(gè)build_id目錄下。

  可以把上面的兩行命令寫(xiě)在成一個(gè)批處理文件,例如第1步有個(gè)sendmail.bat文件就是,然后調(diào)用時(shí)直接寫(xiě)sendmail.bat就好了。

  持續(xù)集成接口測(cè)試平臺(tái)(Jenkins+Ant+JMeter)就此搭建成功,以上是關(guān)于Jmeter腳本錄制和壓測(cè)的幾個(gè)實(shí)例,接下來(lái)為您帶來(lái)進(jìn)階的《云智慧壓測(cè)實(shí)戰(zhàn)分享之JMeter場(chǎng)景設(shè)置與監(jiān)控》,敬請(qǐng)期待。

轉(zhuǎn)載地址:http://news.chinabyte.com/175/14014175.shtml

總結(jié)

以上是生活随笔為你收集整理的云智慧压测实战分享之JMeter脚本录制实例的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。

如果覺(jué)得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。