Jmeter調試腳本之斷言

前言:

jmeter中有個元件叫做斷言(Assertion),它的作用和loadrunner中的檢查點類似;

用於檢查測試中得到的響應數據等是否符合預期,用以保證性能測試過程中的數據交互與預期一致。

使用斷言的目的:在request的返回層面增加一層判斷機制;因爲request成功了,並不代表結果一定正確。

使用斷言的方法:

△在選擇的Sampler下添加對應的斷言(因爲不同類型的斷言檢查的內容不同);配置好響應的檢查內容(根據斷言情況而定,有的斷言控制面板不需要添加任何內容,如XML Assertion)。

△添加一個斷言結果的監聽器(從監聽器中添加),通過“斷言結果”可以看到是否通過斷言;對於一次請求,如果通過的話,斷言結果中只會打印一行請求的名稱;

  如果失敗,則除了請求的名稱外,還會有一行失敗的原因(不同類型的斷言,結果不同)。

PS:一個Sampler可以添加多個斷言,根據你的檢查需求來添加相應的斷言,當Sampler下所有的斷言都通過了,那麼纔算request成功。

1、BeanShell斷言

BeanShell斷言,是一種鬆散類型的腳本語言(這點和JS類似),一種完全符合java語法的java腳本語言,並且又擁有自己的一些語法和方法;

作用對象:針對sampler中的Bean Shell sampler而使用的斷言

Name:斷言的名字(可以用一個比較容易理解和分辨的名稱)

Comments:註釋(對這個斷言進行一個解釋,備註)

Reset bsh.interpreter before each call:在每次調用Bean Shell之前重置bsh.interpreter類(bsh.interpreter是Bean Shell腳本語言的一種類,也可以理解爲一種解析器)

Parameters(String Parameters and String []bsh.args):String參數(String []bsh.args是主類main函數的形式參數,是一個String 對象數組,可以用來獲取命令行用戶輸入進去的參數)

Script file:腳本文件(可以填入腳本文件路徑)

Script(see below for variables that are defined):參照下文定義的變量(使腳本文件參照定義的變量來運行)

2、 BSF斷言

BSF(Bean Scripting Framework)之前也介紹過,是一個支持在Java應用程序內調用腳本語言 (Script),並且支持腳本語言直接訪問Java對象和方法的一個開源項目;

作用對象:針對sampler中的BSF sampler而使用的斷言

Script language(e.g.beanshell,javascirpt,jexl):腳本語言(可以從下面的下拉框中選擇對應的腳本語言JavaScript、beanshell等)

parameters to be passed to script(=> String Parameters and String []args):(傳遞給腳本的參數→可以理解爲使用BSF斷言腳本時候一起引用的參數 )

Script file(overrides script):重寫腳本(可以通過選擇腳本文件的狀態,是瀏覽調用已有的腳本還是在在下方的輸入框內寫入腳本;)

Script:下面的輸入框表示可以輸入變量類型,運用的腳本(取樣結果、斷言結果、取樣日誌文件等參數)

3、比較斷言(compare  assertion)

這是一種比較特殊的斷言元件,針對斷言進行字符串替換時使用;

作用對象:需要替換的字符串

Select Comparison Operators:選擇比較運算符

Compare Content:可以選擇比較的內容類型(true/false或者自定義,編輯)

Compare Time:比較時間(可以設定比較的時間,單位爲秒,默認爲-1)

Comparison Fitters:比較修改工具

regular expression substitutions:替換正則表達式

Regex String:要替換的字符串(可從斷言結果中選擇)

substitutions:替換的字符串(替換結果)

4、HTML斷言

對響應類爲XML類型的文件進行斷言;

作用對象:針對sampler中的SOAP/XML-RPC Request而使用的斷言

Tidy Settings:Tidy 環境(Tidy是一個HTML語法檢查器和打印工具,可以將HTML轉換爲XML類型的文件)

Doctype:文檔類型(可通過下拉框選擇不同文檔類型→ omit疏忽遺漏的/auto動態的/strict嚴格的/loose寬泛的。。。。。。我也不太懂這裏什麼意思GG)

Format:文件格式(可選擇HTML/XHTML/XML三種不同類型的文件格式來檢查返回內容)

Errors only:誤差校正(能接受的最大值)

Error threshold:誤差/錯誤範圍(可選擇誤差/錯誤數量的範圍,最大值)

Warning threshold:警告範圍(可選擇誤差警告的數量範圍,最大值)

如果勾選“Error only”這裏忽略Warning,只對誤差作統計檢查;如果對返回內容的檢查結果不超過指定結果,則斷言通過,否則失敗。

Write JTidy report to file:寫入JTidy報告的文件(JTidy是Tidy的一個java移植,可以將它當成一個處理HTML文件的DOM解析器)

5、JSR223斷言

JSR223即Java 規範請求,是指向JCP(Java Community Process)提出新增一個標準化技術規範的正式請求;

作用對象:針對sampler中的JSR223 sampler而使用的斷言

Script language(e.g.beanshell,javascirpt,jexl):腳本語言(可以從下面的下拉框中選擇對應的腳本語言JavaScript、beanshell等)

parameters to be passed to script(=> String Parameters and String []args):(傳遞給腳本的參數→可以理解爲使用JSR223斷言腳本時候一起引用的參數 )

Script file(overrides script):重寫腳本(可以通過選擇腳本文件的狀態,是瀏覽調用已有的腳本還是在在下方的輸入框內寫入腳本;)

Script:下面的輸入框表示可以輸入變量類型,運用的腳本(取樣結果、斷言結果、取樣日誌文件等參數)

6、MD5Hex斷言

MD5是一種消息摘要算法,用以提供消息的完整性保護(具體關於MD5的知識請自行查詢);

作用對象:針對參數類型爲MD5Hex加密的參數的斷言

MD5Hex:將已被MD5加密的參數寫入其中,添加取樣器等其他元件

7、Size斷言

用於判斷返回內容的大小;

作用對象:返回信息,響應報文

APPly to:應用範圍(返回內容的斷言範圍)

         Main sample and sub-samples:作用於父節點取樣器及對應子節點取樣器

         Main sample only:僅作用於父節點取樣器

         Sub-samples only:僅作用於子節點取樣器

         JMeter Variable:作用於jmeter變量(輸入框內可輸入jmeter的變量名稱)

Response Size Field to Test:響應字節的測試範圍(可以選擇用於判斷的響應範圍)

         Full Response:全部響應

         Response Headers:響應頭部

         Response Body:響應主體

         響應代碼:響應報文相關的代碼

         響應信息:響應報文的信息

         Size to Assert:斷言字節範圍

         字節大小單位爲:字節;比較順序是①返回內容的大小②比較類型③指定字節大小

8、SMIME斷言

SMIME是一種多用途網際郵件擴充協議,相比於之前的SMAP郵件傳輸協議,增加了安全性,對郵件主題進行保護;

作用對象:針對採用了該種郵件傳輸協議的信息

signature:簽名(可選擇對協議的簽名驗證狀態)

          Verify signature:驗證簽名

          Message not signed:沒有簽名消息

Signer certificate:簽名證書(因爲SMIME協議增加了安全傳輸,需要證書驗證)

          No check:不檢查

          Check values:檢查

Signer distinguished name:簽名證書者名稱(證書註冊者的名稱)

Sigmer email address:簽名者的郵件地址(註冊的郵件地址)

Issuer distinguished name:發行者名稱(由誰發行的證書)

Serial Number:證書序號

Certificate file:選擇證書文件

Execute assertion message at position:執行斷言消息的位置(在返回消息的具體哪個位置執行斷言)

9、XML概要斷言

亦可以稱爲XML模型斷言/XML數據類型斷言;XML Schema 定義了兩種主要的數據類型:①xml document schema 文檔架構 ;② 文檔架構xml-schema xml模式

作用對象:返回結果爲XML概要斷言的2中數據類型的消息

XML Schema:XML概要模型

File Name:文件名(寫入需要斷言的文件名稱)

10、XML斷言

XML(可擴展標記語言) 提供一種描述結構化數據的方法。與主要用於控制數據的顯示和外觀的 HTML 標記不同,XML 標記用於定義數據本身的結構和數據類型;

作用對象:判斷返回結果是否和xml的格式即<></>成對出現

11、XPath斷言

XPath即爲XML路徑語言,它是一種用來確定XML(標準通用標記語言的子集)文檔中某部分位置的語言。XPath基於XML的樹狀結構,提供在數據結構樹中找尋節點的能力。

作用對象:針對返回信息爲XPAth的數據類型進行斷言

Apply to:適用範圍

         Main sample and sub-samples:主要樣本和次級樣本

         Main sample only:僅主要樣本

         Sub-samples only:僅次級樣本

         JMeter Variable:jmeter變量(輸入框內可輸入jmeter的變量名稱)

XML Parsing Options:XML解析選項

         Use Tidy(tolerant parser):使用Tidy(容錯解析器),默認選擇quiet(不顯示)

         Quiet:不顯示

         Report errors:錯誤報告

         Show warnings:顯示錯誤

         Use Namespaces:使用名稱空間

         Validate XML:驗證XML(文件包/數據)

         Ignore Whitespace:忽略空格(這允許你指定語法分析器可以忽略哪個空格,而哪個空格是重要的)

         Fetch external DTDs:獲取外部DTDs(一些XML元素具有屬性,屬性包含應用程序使用的信息,屬性僅在程序對元素進行讀、寫操作時,提供元素的額外信息,這時候需要在DTDs中聲明)

XPath Assertion:輸入框中寫入xpath斷言,點擊Validate驗證其正確性

         True if nothing matches:確認都不匹配

12、響應斷言

判斷返回內容中的內容

作用對象:響應報文中的所有對象

APPly to:適用範圍

         Main sample and sub-samples:作用於父節點取樣器及對應子節點取樣器

         Main sample only:僅作用於父節點取樣器

         Sub-samples only:僅作用於子節點取樣器

         JMeter Variable:作用於jmeter變量(輸入框內可輸入jmeter的變量名稱)

要測試的響應字段:要檢查的項

                響應報文

                Documeng(text):測試文件

                URL樣本

                響應代碼

                響應信息

                Response Headers:響應頭部

                Ignore status:忽略返回的響應報文狀態碼

模式匹配規則:

           包括:返回結果包括你指定的內容

           匹配:(好像跟Equals查不多,弄不明白有什麼區別)   

           Equals:返回結果與你指定結果一致

           Substring:返回結果是指定結果的字串

           否:不進行匹配

要測試的模式:即填寫你指定的結果(可填寫多個),按鈕【添加】、【刪除】是進行指定內容的管理

13、斷言持續時間

用於判斷服務器的響應時間

作用對象:服務器

APPly to:適用範圍

         Main sample and sub-samples:作用於父節點取樣器及對應子節點取樣器

         Main sample only:僅作用於父節點取樣器

         Sub-samples only:僅作用於子節點取樣器

Duration to assert:持續斷言

Duration in milliseconds:響應時間設置(單位:毫秒),如果響應時間大於設置的響應時間,則斷言失敗,否則成功!

PS:雖然斷言方法這麼多,通常我們用的最多是:響應斷言、Beanshell斷言、Xpath斷言

發佈了14 篇原創文章 · 獲贊 13 · 訪問量 1萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章