全網獨家的 Jmeter 循環斷言

2020-12-13 騰訊網

前言

對於使用 jmeter 工具完成接口測試的測試工程師而言。在工作中,或者在面試中,都會遇到一個問題。

CSV 文檔做了一大筆測試數據後,怎麼去校驗這個結果呢?

現在大部分測試工程師可能都是通過人工的方法去查看結果,十幾個還好,那要很多很多呢?

OK,此時,肯定會有同學想到,斷言唄,響應斷言,beanshell 斷言,都可以阿。

但是 beanshell 裡要寫 Java 代碼,對於沒有代碼基礎的怎麼辦?求開發?開發小哥沒時間怎麼辦?

那響應斷言呢?對於很多測試工程師而言,響應斷言好像只能斷言一次,無法循環去斷言不同的內容。

其實不然,今天我們就一起來學學,不寫代碼,就用響應斷言,怎麼實現循環斷言不同的內容

思路

我們要去做一件事,肯定是要謀而後定,那麼去實現循環斷言,要怎麼去做呢?

先對 CSV 文檔進行參數化

循環取出 CSV 裡的數據

編寫需要的斷言內容

對每一條數據都要進行一次斷言

先導知識

jmeter 元件之計數器

概念:

允許用戶在線程組中任何位置創建引用的計數器。

計數器配置允許用戶配置起始點,最大值和增量。

計數器將從開始循環到最大,然後從開始重新開始,繼續進行,直到測試結束。

所以:用大白話來講,計數器就是幫你去計數的,從幾開始到幾結束,每次循環迭代後加幾。

解釋:

Starting Value:給定計數器的初始值

遞增:每次循環迭代後,給計數器增加的值

Maximum Value:計數器的最大值,如果超過最大值,會重新設置為初始值,非必填項

數字格式:可選格式,比如填寫 000,格式化為 001,002;比如填寫 0,格式化為 1,2;

引用名稱:引用變量,可以在其他元素中引用該值,形式:$

與每用戶獨立的跟蹤計數器:不勾選,即全局計數器的,比如用戶 #1 獲取值為 1,用戶 #2 獲取值還是為 1;勾選,即獨立的,則每個用戶有自己的值:比如用戶 #1 獲取值為 1,用戶 #2 獲取值為 2。

每次迭代復原計數器:只有當勾選了,與每用戶獨立的跟蹤計數器時才可用;勾選此選項後,則每次線程組迭代,都會重置計數器的值,當線程組是在一個循環控制器內時比較有用。

拼接函數,嵌套變量

這個是 jmeter 自帶的函數,可以用用這個函數進行字符串的拼接,或者是變量中再嵌套變量。

Name of variable:引用的變量名

默認值:非必填參數,填寫了之後,當你引用變量失敗後,就會填充該默認值

1、先參數化接口

請一定要注意,CSV 文檔參數化,裡面有多少條數據,就要在線程組裡循環多少次,不然只會執行一次喲。

2、添加計數器

3、設置斷言內容

這裡有一個非常重要的點就是我們要把需要斷言的內容給設置成變量

因為只有這樣,我們才能循環取值,做循環斷言

4、取出需要進行結果判斷的數據

此處,我們將以返回結果的 msg 進行斷言

5、添加響應斷言,進行結果判斷

6、添加察看結果樹,進行循環斷言

通過結果樹可以看到,這裡會有兩條用例失敗了。

那是因為,我們在第三步的時候,設置了需要斷言的內容

至此,我們就完全可以用響應斷言,實現循環斷言了,這也是以後要用工具做自動化的一個必不可少的步驟喲。

是不是非常棒,歡迎大家留言點讚喲。

本文作者:檸檬班軟體測試(lemonban)——專注於最新最前沿的軟體測試技術,解決你的測試技術煩惱,對軟體測試感興趣的朋友趕快關注我們吧!

相關焦點

  • 用Groovy處理JMeter斷言和日誌
    閒扯一會jmeter和Groovy首先說明一下,我並不擅長jmeter,因為我基本不用這個,關於jmeter
  • jmeter單機最大負載_手把手教你用jmeter做壓力測試(詳圖)
    另外,JMeter能夠對應用程式做功能/回歸測試,通過創建帶有斷言的腳本來驗證你的程序返回了你期望的結果。為了最大限度的靈活性,JMeter允許使用正則表達式創建斷言。Apache jmeter 可以用於對靜態的和動態的資源(文件,Servlet,Perl腳本,java 對象,資料庫和查詢,FTP伺服器等等)的性能進行測試。
  • 記一次jmeter壓測實戰總結
    :總請求數=線程數*循環次數;勾選調度器設置持續時間7.添加json斷言JSON斷言可以對伺服器返回的JSON文檔進行驗證。JSON斷言有兩種使用模式:1.根據JSONPath能否在JSON文檔中找到路徑;2.根據JSONPath提取值並對值進行驗證。若文檔格式為非JSON則斷言失敗;若找不到路徑斷言失敗;若提取值與預期值不一致斷言失敗。Additionally assert value:添加驗證的值,只有勾選了此複選框,才可以在Expected Value中設置期望的值。
  • JMeter工具簡單介紹
    進入bin目錄運行jmeter.bat啟動jmeter   注意:打開的時候會有兩個窗口,JMeter的命令窗口和JMeter的圖形操作界面,不可以關閉命令窗口。2. 如果你需要Jmeter立即啟動所有線程,將此設定為0即可  循環次數:表示每個線程執行多少次請求。 3、測試片段(Test Fragment)     測試片段元素是控制器上的一個種特殊的線程組,它在測試樹上與線程組處於一個層級。
  • Jmeter性能及自動化全集
    正好今年雙十一,我司的全鏈路壓測,也嘗試了jmeter分布式壓測的手段。這篇博客,介紹下利用jmeter在NGUI模式下進行分布式壓測的 閱讀全文jmeter(二十六)生成HTML性能測試報告摘要:性能測試工具Jmeter由於其體積小、使用方便、學習成本低等原因,在現在的性能測試過程中,使用率越來越高,但其本身也有一定的缺點,比如提供的測試結果可視化做的很一般。
  • Jmeter進行http接口測試,這一篇就搞定
    斷言的作用是用來查看返回結果是否正確,如果正確就代表這個請求的返回值是正確的,如果沒有的話就代表這個請求的結果和我們預期的不一致,這樣我們就可以通斷言來檢查返回結果,測試是否通過。是在jmeter的bin目錄下的jmeter.sh這個shell腳本。
  • 基於JMeter對J2EE應用程式進行性能測試
    下面簡述一下元素類型:    1、ThreadGroup  顧名思義就是線程組,測試必須有一個ThreadGroup元素作為基礎(否則就沒有測試線程在跑了),這個元素可以配置跑多少個線程、每個線程循環多少次,所有線程數的總啟動時間(Ramp-up period)等等。
  • 乾貨| JMeter接口測試實戰之參數化
    參數化如果需要測試另一種數據集合,需要修改請求、斷言等幾個地方腳本才能繼續使用,那麼參數化就是解決這個問題的一個辦法。 1.Jmeter引用變量:${變量名} 1.2 修改創建用戶的請求將請求中固定的參數值改成調用jmeter變量,結果如下  1.3 修改斷言判斷請求響應碼
  • JMeter安裝與接口測試入門
    後來,因為其便捷的關聯功能、豐富的斷言以及Beanshell的存在,使JMeter成為接口測試的利器。1 JMeter安裝下載地址各版本JMeter下載地址,本文及後續都使用的5.1.1版本,即下圖中紅圈中。
  • 雲智慧壓測實戰分享之JMeter工具使用初探
    另外,JMeter能夠對應用程式做功能/回歸測試,通過創建帶有斷言的腳本來驗證你的程序返回了你期望的結果。為了最大限度的靈活性,JMeter允許使用正則表達式創建斷言。     循環次數:表示每個線程執行多少次請求。       3、測試片段(Test Fragment)       測試片段元素是控制器上的一個種特殊線程組,在測試樹上與線程組處於一個層級。它與線程組的差異在於,只有被一個模塊控制器或者是被控制器所引用時才會執行。
  • JMeter接口測試之斷言實現
    什麼是斷言?為了甄別接口是否實現業務上的成功,我們便需要引入斷言。2 斷言的實現在取樣器上右鍵–添加–斷言,可以看到,JMeter提供了豐富的斷言實現(JMeter版本:5.1.1,下同)創建方式:在線程組或者HTTP請求上右鍵–>添加–>斷言–>響應斷言,就創建了一個斷言:關於斷言的作用域:在線程組上創建斷言,則該斷言對線程組下所有取樣器生效,而在取樣器上創建,則只對該取樣器生效。
  • Jmeter-測試計劃
    常見的邏輯控制器:switch控制器、隨機控制器、隨機順序控制器和循環控制器特別注意僅在調試測試計劃時,才應該使用上面的 GUI 模式【界面模式】,如果實際運行負載測試的時候,應該使用CLI模式【命令行模式、無界面模式】
  • jmeter無法滿足敏捷理念怎麼辦,使用二次開發集中管理!
    apache jmeter是apache軟體基金會出品的一款用於接口測試,壓力測試的開源軟體,由於其免費開源,插件j自由擴展,跨平臺,所以理論上可以支持所有種類的接口測試。jmeter自身也已經提供了許多優秀的插件,極大地增強了jmeter的能力。
  • 「教程分享」Jmeter入門教程
    使用教程:一、下載登錄官網Jmeter下載,得到壓縮包jmeter-5.0.tgz,下載地址:http://jmeter.apache.org/download_jmeter.cgi二、安裝將下載得到的壓縮包解壓即可,這裡我解壓到自己電腦的路徑為E:\Mysoftware
  • 接口測試詳解JMeter學習(廣州中軟卓越)
    另外,JMeter能夠對應用程式做功能/回歸測試,通過創建帶有斷言的腳本來驗證你的程序返回了你期望的結果。為了最大限度的靈活性,JMeter允許使用正則表達式創建斷言。今天中軟卓越廣州軟體測試培訓課程分享一些JMeter的知識。
  • jmeter函數用於jmx小短文__CSVRead
    指定具體的csv文件的路徑CSV文件列號| next| *alias 第二個參數,讀取csv文件中的第幾列參數,第一列為0,第二列為1,依此類推Number of threads與Loop Count對讀取順序的影響如果線程Number of threads=1讀取第一行的數字Number of threads不等於1,順序讀取,如果線程組多於文件中的行數,則循環讀取
  • jmeter錄製腳本
    錄製的腳本並不是一行行代碼,而是一個web對象,有點類似於loadrunner中VuGen中的tree view視圖4)錄製完成後,點擊工具欄中的停止按鈕(綠色標註區域),完成腳本的錄製5)點擊file→save或者export to jmeter,將文件保存為jmeter的腳本格式:.jmx;啟動jmeter
  • 初學者如何編寫Jmeter測試腳本?
    )throws Exception {PrintWriter out =new PrintWriter(new File(filename));out.write(a+":"+b);out.close();}}3.2 測試類:package test;import org.apache.jmeter.config.Arguments
  • python基礎 | 條件 循環 異常 斷言
    ,執行循環體中的代碼,否則退出循環。可以搭配else一起使用,當循環執行完後執行某段代碼,可選但非必須,for循環也可以用else。python為我們提供了兩個循環控制關鍵字 break 和 continue 。二者區別就是break會終止循環,continue不終止循環。
  • jmeter(五)HTTP請求
    ,建立一個測試計劃這裡再次說說怎麼安裝和啟動jmeter吧,昨天下午又被人問到怎樣安裝和使用,我也是醉了;在我看來,百度能解決百分之八十的問題,特別是基礎的問題。。。安裝:去官網下載一個安裝包,官網地址:jmeter.apache.org(Windows系統下載.zip包,Linux系統下載.tgz包)環境:jmeter是一個純java工具,因此,JDK必不可少,現在最新版的jmeter是3.1,做了很多的優化,建議使用1.7及以上的JDK     JDK版本請注意和作業系統吻合,下載後默認安裝,一般不需要修改環境變量