持續(xù)三篇,每周一篇拖延癥終究還是犯了。但是畢竟說過的話,如同潑出去的水,還是得兌現(xiàn)。不管閱讀量,不管評(píng)論,不管成效。這次,我們將講解下SoapUI的TestCase 斷言。
SoapUI系列教程請(qǐng)點(diǎn)擊下列鏈接:
1、SoapUI 入門之創(chuàng)建Project、生成TestCase以及參數(shù)化
2、SoapUI 入門之配置Headers,以及將Cookie、Token持久化存儲(chǔ)
4、SoapUI入門之附件上傳和配置Https請(qǐng)求
TestCase斷言
一、SoapUI斷言的分類
斷言有幾個(gè)大的分類:
(1) Property Content 該類斷言可以讓你用XPath、XQuery、JsonPath等表達(dá)式驗(yàn)證request和response的內(nèi)容
(2) Compliance Assertions 該類斷言將處理驗(yàn)證service定義和message消息結(jié)構(gòu)(xml、json等)
(3) Script? ? 該斷言將運(yùn)行你的Groovy腳步,并驗(yàn)證信息??梢则?yàn)證消息內(nèi)容、header、property屬性等內(nèi)容
(4) Response SLA? ? 該斷言將判斷響應(yīng)是否在指定的時(shí)間內(nèi)返回
(5) JDBC Assertions 該類斷言將驗(yàn)證JDBC 數(shù)據(jù)庫連接狀態(tài)和是否超時(shí)等
(6) JMS Assertions? ? 該類斷言將驗(yàn)證JMS(Java消息服務(wù))的狀態(tài)和是否超時(shí)
(7) Security Assertions 該類斷言將驗(yàn)證你收到的response是否包含不安全的內(nèi)容
以上7個(gè)大類是SoapUI斷言的分類,在1、2、5、6、7類下又有其他詳細(xì)的子類分類,而我們用的比較多的斷言是Property Content、Compliance、Script、Response SLA大類,下邊我們將對(duì)這幾大類下的常用的具體斷言列舉一下。
1、Property Content
在這個(gè)Property Content斷言大類中,也可以分成幾小類:Content(內(nèi)容)、JSONPath(JSONPath表達(dá)式)、XPath(Xpath表達(dá)式)、XQuery(XQuery表達(dá)式)
(1)? ? Content:
? ? ? ? Contains Assertion:此斷言將在Request和response中搜索是否包含指定的內(nèi)容
? ? ? ? No Contains Assertion:此斷言將判斷request和response中是否不包含指定內(nèi)容
? ? ? ? Equals Assertion:? ?此斷言將檢查屬性值是否和response內(nèi)容相等
? ? ? ? Message Content Assertion:此斷言將檢查response消息內(nèi)容,字段預(yù)期值和實(shí)際值之間的比較(可以設(shè)置大于/等于/小于等運(yùn)算符)
(2)? ? JSONPath
? ? ? ? JSONPath Count Assertion:此斷言將使用JSONPath表達(dá)式選擇指定字段,并判斷在request或response出現(xiàn)次數(shù)是否和預(yù)期次數(shù)相等
? ? ? ? JSONPath Existence Match Assertion:此斷言使用JSONPath表達(dá)式選擇指定字段,并判斷是否在response返回消息中存在
? ? ? ? JSONPath RegEx Match Assertion:此斷言使用JSONPath表達(dá)式從response返回消息中選擇你想要的字段,并同你所填入的正則表達(dá)式匹配,看是否能匹配上
? ? ? ? JSONPath Match Assertion:此斷言使用JSONPath表達(dá)式選擇你需要的字段,并比較判斷該字段的實(shí)際值和指定值是否相等
(3)? ? XPath
? ? ? ? ?XPath Match Assertion:此斷言使用Xpath表達(dá)式從request或response中選擇你所需的字段,并比較判斷該node的實(shí)際值和預(yù)期值是否相等
2、? ?Compliance
? ? ? ? ?HTTP Download Resources:此斷言檢查鏈接下載資源是否是有用的、可下載的
? ? ? ? ?HTTP Valid Status Codes:此斷言檢查Http請(qǐng)求返回的狀態(tài)碼是否在定義的狀態(tài)碼列表中
? ? ? ? ?HTTP Invalid Status Codes:這個(gè)斷言與上一個(gè)是相反的,檢查狀態(tài)碼是否不在定義的列表中
? ? ? ? ?Header Equals Assertion:此斷言檢查你指定的header字段是否存在,并且值是否和你的預(yù)期值一致
? ? ? ? ?Header Exists Assertion:顧名思義,此斷言檢查指定的Header是否存在于Request或response中
二、如何為TestStep添加斷言
在TestCase界面中,我們點(diǎn)擊下方Assertion按鈕或者點(diǎn)擊圖2.1中綠色+號(hào),打開斷言對(duì)話框


三、常用的斷言的使用
1、Property Content
(1)Contains Assertion(No Contains Assertion類似,不再截圖了)

(2)? Equals Assertion
這個(gè)斷言有兩種Mode:Text和Other Property
Text Mode:

Other Property Mode:

(3)??Message Content Assertion

(4)JSONPath Count Assertion

(5)JSONPath Existence Match Assertion

(6)JSONPath Match Assertion

(7)JSONPath RegEx Match Assertion

(8)XPath Match Assertion

2、Compliance
(1)HTTP Valid Status Codes

(2)HTTP Invalid Status Codes

(3)Header Equals Assertion

(4)Header Exists Assertion

3、Response SLA

4、Script
ScoapUI中一般使用Groovy語言作為腳本語言,現(xiàn)在也可以用javaScript,但是要引入庫,這里暫時(shí)以Groovy為主

好了,到這ScoapUI TestCase斷言部分基本上講完了,本來是計(jì)劃把上傳附件和Https請(qǐng)求一起講的,但是一寫覺得斷言單獨(dú)一節(jié)比較好,因?yàn)楹芏辔恼轮v到斷言基本是翻譯了一下文檔,我這里圖文并茂了下,希望您看完后,真正學(xué)會(huì)了用一些斷言,這才是我真實(shí)的目的,那下一節(jié)接著沒講完的附件上傳和Https請(qǐng)求吧。Thanks?(?ω?)?
申明:禁用于商業(yè)用途,如若轉(zhuǎn)載,請(qǐng)附帶原文鏈接。http://www.itdecent.cn/p/ee0da5abf49d 蟹蟹(#^.^#)