<kbd id="afajh"><form id="afajh"></form></kbd>
<strong id="afajh"><dl id="afajh"></dl></strong>
    <del id="afajh"><form id="afajh"></form></del>
        1. <th id="afajh"><progress id="afajh"></progress></th>
          <b id="afajh"><abbr id="afajh"></abbr></b>
          <th id="afajh"><progress id="afajh"></progress></th>

          JMeter性能測試入門

          共 3456字,需瀏覽 7分鐘

           ·

          2020-08-05 17:46

          出處:cnblogs.com/panchanggui/p/11433319.html



          Apache JMeter是一款純java編寫負(fù)載功能測試和性能測試開源工具軟件。相比Loadrunner而言,JMeter小巧輕便且免費(fèi),逐漸成為了主流的性能測試工具,是每個(gè)測試人員都必須要掌握的工具之一。


          本文為JMeter性能測試完整入門篇,從Jmeter下載安裝到編寫一個(gè)完整性能測試腳本、最終執(zhí)行性能測試并分析性能測試結(jié)果。


          運(yùn)行環(huán)境為Windows 10系統(tǒng),JDK版本為1.8,JMeter版本為3.3。


          2. Jmeter安裝


          2.1 JDK安裝


          由于Jmeter是基于java開發(fā),首先需要下載安裝JDK (目前JMeter只支持到Java 8,尚不支持 Java 9)?


          1. 官網(wǎng)下載地址:


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

          2. 選擇Java SE 8u151/ 8u152,點(diǎn)擊JDK下載?



          3. 安裝下載的JDK?


          4. 配置系統(tǒng)環(huán)境變量


          2.2 JMeter安裝


          1. 官網(wǎng)下載地址:http://jmeter.apache.org/download_jmeter.cgi

          2. 下載最新JMeter 3.3版本:apache-jmeter-3.3.zip




          3. 下載完成后解壓zip包

          4. 啟動JMeter?


            雙擊JMeter解壓路徑(apache-jmeter-3.3\bin)bin下面的jmeter.bat即可?




          3. 測試實(shí)例


          我們選取最常見的百度搜索接口:


          3.1 接口地址


          http://www.baidu.com/s?ie=utf-8&wd=jmeter性能測試


          3.2 請求參數(shù)


          ie:編碼方式,默認(rèn)為utf-8
          wd: 搜索詞


          3.3 返回結(jié)果


          搜索結(jié)果,我們可以通過校驗(yàn)結(jié)果中是否含有搜索詞wd來判斷本次請求成功或失敗。


          4. JMeter腳本編寫


          4.1 添加線程組


          右鍵點(diǎn)擊“測試計(jì)劃” -> “添加” -> “Threads(Users)” -> “線程組”?



          這里可以配置線程組名稱,線程數(shù),準(zhǔn)備時(shí)長(Ramp-Up Period(in seconds))循環(huán)次數(shù),調(diào)度器等參數(shù):?



          線程組參數(shù)詳解:?


          1. 線程數(shù):虛擬用戶數(shù)。一個(gè)虛擬用戶占用一個(gè)進(jìn)程或線程。設(shè)置多少虛擬用戶數(shù)在這里也就是設(shè)置多少個(gè)線程數(shù)。?


          2. Ramp-Up Period(in seconds)準(zhǔn)備時(shí)長:設(shè)置的虛擬用戶數(shù)需要多長時(shí)間全部啟動。如果線程數(shù)為10,準(zhǔn)備時(shí)長為2,那么需要2秒鐘啟動10個(gè)線程,也就是每秒鐘啟動5個(gè)線程。?


          3. 循環(huán)次數(shù):每個(gè)線程發(fā)送請求的次數(shù)。如果線程數(shù)為10,循環(huán)次數(shù)為100,那么每個(gè)線程發(fā)送100次請求。總請求數(shù)為10*100=1000 。如果勾選了“永遠(yuǎn)”,那么所有線程會一直發(fā)送請求,一到選擇停止運(yùn)行腳本。?


          4. Delay Thread creation until needed:直到需要時(shí)延遲線程的創(chuàng)建。?


          5. 調(diào)度器:設(shè)置線程組啟動的開始時(shí)間和結(jié)束時(shí)間(配置調(diào)度器時(shí),需要勾選循環(huán)次數(shù)為永遠(yuǎn))?


          持續(xù)時(shí)間(秒):測試持續(xù)時(shí)間,會覆蓋結(jié)束時(shí)間?


          啟動延遲(秒):測試延遲啟動時(shí)間,會覆蓋啟動時(shí)間?


          啟動時(shí)間:測試啟動時(shí)間,啟動延遲會覆蓋它。當(dāng)啟動時(shí)間已過,手動只需測試時(shí)當(dāng)前時(shí)間也會覆蓋它。?


          結(jié)束時(shí)間:測試結(jié)束時(shí)間,持續(xù)時(shí)間會覆蓋它。


          因?yàn)榻涌谡{(diào)試需要,我們暫時(shí)均使用默認(rèn)設(shè)置,待后面真正執(zhí)行性能測試時(shí)再回來配置。


          4.2 添加HTTP請求


          右鍵點(diǎn)擊“線程組” -> “添加” -> “Sampler” -> “HTTP請求”?



          對于我們的接口http://www.baidu.com/s?ie=utf-8&wd=jmeter性能測試,可以參考下圖填寫:?



          Http請求主要參數(shù)詳解:


          1. Web服務(wù)器?
            協(xié)議:向目標(biāo)服務(wù)器發(fā)送HTTP請求協(xié)議,可以是HTTP或HTTPS,默認(rèn)為HTTP
            服務(wù)器名稱或IP :HTTP請求發(fā)送的目標(biāo)服務(wù)器名稱或IP
            端口號:目標(biāo)服務(wù)器的端口號,默認(rèn)值為80?
            2.Http請求?
            方法:發(fā)送HTTP請求的方法,可用方法包括GET、POST、HEAD、PUT、OPTIONS、TRACE、DELETE等。?
            路徑:目標(biāo)URL路徑(URL中去掉服務(wù)器地址、端口及參數(shù)后剩余部分)?
            Content encoding :編碼方式,默認(rèn)為ISO-8859-1編碼,這里配置為utf-8

          2. 同請求一起發(fā)送參數(shù)?
            在請求中發(fā)送的URL參數(shù),用戶可以將URL中所有參數(shù)設(shè)置在本表中,表中每行為一個(gè)參數(shù)(對應(yīng)URL中的 name=value),注意參數(shù)傳入中文時(shí)需要勾選“編碼”


          4.3 添加察看結(jié)果樹


          右鍵點(diǎn)擊“線程組” -> “添加” -> “監(jiān)聽器” -> “察看結(jié)果樹”?



          這時(shí),我們運(yùn)行Http請求,修改響應(yīng)數(shù)據(jù)格式為“HTML Source Formatted”,可以看到本次搜索返回結(jié)果頁面標(biāo)題為”jmeter性能測試_百度搜索“。?



          4.4 添加用戶自定義變量


          我們可以添加用戶自定義變量用以Http請求參數(shù)化,右鍵點(diǎn)擊“線程組” -> “添加” -> “配置元件” -> “用戶定義的變量”:?



          新增一個(gè)參數(shù)wd,存放搜索詞:?



          并在Http請求中使用該參數(shù),格式為:${wd}?



          4.5 添加斷言


          右鍵點(diǎn)擊“HTTP請求” -> “添加”-> “斷言” -> “響應(yīng)斷言”?



          我們校驗(yàn)返回的文本中是否包含搜索詞,添加參數(shù)${wd}到要測試的模式中:?



          4.6 添加斷言結(jié)果


          右鍵點(diǎn)擊“HTTP請求” -> “添加”-> “監(jiān)聽器” -> “斷言結(jié)果”?



          這時(shí),我們再運(yùn)行一次就可以看到斷言結(jié)果成功或失敗了?



          4.7 添加聚合報(bào)告


          右鍵點(diǎn)擊“線程組” -> “添加” -> “監(jiān)聽器” -> “聚合報(bào)告”,用以存放性能測試報(bào)告?



          這樣,我們就完成了一個(gè)完整Http接口的JMeter性能測試腳本編寫。


          5. 執(zhí)行性能測試


          5.1 配置線程組


          點(diǎn)擊線程組,配置本次性能測試相關(guān)參數(shù):線程數(shù),循環(huán)次數(shù),持續(xù)時(shí)間等,這里我們配置并發(fā)用戶數(shù)為10,持續(xù)時(shí)間為60s



          5.2 執(zhí)行測試


          點(diǎn)擊綠色小箭頭按鈕即可啟動測試,測試之前需要點(diǎn)擊小掃把按鈕清除之前的調(diào)試結(jié)果。?



          6. 分析測試報(bào)告


          待性能測試執(zhí)行完成后,打開聚合報(bào)告可以看到:?



          聚合報(bào)告參數(shù)詳解:?


          1. Label:每個(gè) JMeter 的 element(例如 HTTP Request)都有一個(gè) Name 屬性,這里顯示的就是 Name 屬性的值?
          2. #Samples:請求數(shù)——表示這次測試中一共發(fā)出了多少個(gè)請求,如果模擬10個(gè)用戶,每個(gè)用戶迭代10次,那么這里顯示100?
          3. Average:平均響應(yīng)時(shí)間——默認(rèn)情況下是單個(gè) Request 的平均響應(yīng)時(shí)間,當(dāng)使用了 Transaction Controller 時(shí),以Transaction 為單位顯示平均響應(yīng)時(shí)間?
          4. Median:中位數(shù),也就是 50% 用戶的響應(yīng)時(shí)間?
          5. 90% Line:90% 用戶的響應(yīng)時(shí)間?
          6. Min:最小響應(yīng)時(shí)間?
          7. Max:最大響應(yīng)時(shí)間?
          8. Error%:錯(cuò)誤率——錯(cuò)誤請求數(shù)/請求總數(shù)?
          9. Throughput:吞吐量——默認(rèn)情況下表示每秒完成的請求數(shù)(Request per Second),當(dāng)使用了 Transaction Controller 時(shí),也可以表示類似 LoadRunner 的 Transaction per Second 數(shù)?
          10. KB/Sec:每秒從服務(wù)器端接收到的數(shù)據(jù)量,相當(dāng)于LoadRunner中的Throughput/Sec


          一般而言,性能測試中我們需要重點(diǎn)關(guān)注的數(shù)據(jù)有:#Samples 請求數(shù),Average 平均響應(yīng)時(shí)間,Min 最小響應(yīng)時(shí)間,Max 最大響應(yīng)時(shí)間,Error% 錯(cuò)誤率及Throughput 吞吐量。


          7. 源碼下載


          至此,我們使用JMeter完成了一個(gè)完整的Http接口性能測試流程,從腳本編寫,執(zhí)行到最終結(jié)果分析。


          完整的腳本源碼下載鏈接:?https://pan.baidu.com/s/1eS90cVo?密碼: st15



          瀏覽 29
          點(diǎn)贊
          評論
          收藏
          分享

          手機(jī)掃一掃分享

          分享
          舉報(bào)
          評論
          圖片
          表情
          推薦
          點(diǎn)贊
          評論
          收藏
          分享

          手機(jī)掃一掃分享

          分享
          舉報(bào)
          <kbd id="afajh"><form id="afajh"></form></kbd>
          <strong id="afajh"><dl id="afajh"></dl></strong>
            <del id="afajh"><form id="afajh"></form></del>
                1. <th id="afajh"><progress id="afajh"></progress></th>
                  <b id="afajh"><abbr id="afajh"></abbr></b>
                  <th id="afajh"><progress id="afajh"></progress></th>
                  国产传媒天美果冻精品亚洲一区二区三区直播 | 欧亚无码| 国产精品久久久久久久久久久久久久久久久 | 色婷婷婷| 欧美a片中文字幕 |