jmeter中有個元件叫做斷言(Assertion),它的作用和loadrunner中的檢查點類似;
用于檢查測驗中得到的回應資料等是否符合預期,用以保證性能測驗程序中的資料互動與預期一致,
使用斷言的目的:在request的回傳層面增加一層判斷機制;因為request成功了,并不代表結果一定正確,
使用斷言的方法:
△在選擇的Sampler下添加對應的斷言(因為不同型別的斷言檢查的內容不同);配置好回應的檢查內容(根據斷言情況而定,有的斷言控制面板不需要添加任何內容,如XML Assertion),
△添加一個斷言結果的監聽器(從監聽器中添加),通過“斷言結果”可以看到是否通過斷言;對于一次請求,如果通過的話,斷言結果中只會列印一行請求的名稱;
如果失敗,則除了請求的名稱外,還會有一行失敗的原因(不同型別的斷言,結果不同),
PS:一個Sampler可以添加多個斷言,根據你的檢查需求來添加相應的斷言,當Sampler下所有的斷言都通過了,那么才算request成功,
最新版本的3.0jmeter中有13種不同的斷言,下面簡單介紹下每個斷言各自擁有什么樣的作用以及它們的適用場景:
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 物件陣列,可以用來獲取命令列用戶輸入進去的引數)
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:回應時間設定(單位:毫秒),如果回應時間大于設定的回應時間,則斷言失敗,否則成功!

如果對軟體測驗、介面測驗、自動化測驗、面試經驗交流感興趣可以加入我們,642830685,免費領取最新軟體測驗大廠面試資料和Python自動化、介面、框架搭建學習資料!技術大牛解惑答疑,同行一起交流,


轉載請註明出處,本文鏈接:https://www.uj5u.com/qita/205074.html
標籤:其他
上一篇:jmeter壓力測驗報告—模板
