真实的国产乱ⅩXXX66竹夫人,五月香六月婷婷激情综合,亚洲日本VA一区二区三区,亚洲精品一区二区三区麻豆

成都創(chuàng)新互聯(lián)網(wǎng)站制作重慶分公司

JMeter中的JSON斷言方法

JMeter

成都創(chuàng)新互聯(lián)始終堅(jiān)持【策劃先行,效果至上】的經(jīng)營理念,通過多達(dá)十多年累計(jì)超上千家客戶的網(wǎng)站建設(shè)總結(jié)了一套系統(tǒng)有效的全網(wǎng)營銷推廣解決方案,現(xiàn)已廣泛運(yùn)用于各行各業(yè)的客戶,其中包括:成都塑料袋等企業(yè),備受客戶表揚(yáng)。

Apache JMeter是Apache組織開發(fā)的基于Java的壓力測試工具。用于對軟件做壓力測試,它最初被設(shè)計(jì)用于Web應(yīng)用測試,但后來擴(kuò)展到其他測試領(lǐng)域。 它可以用于測試靜態(tài)和動(dòng)態(tài)資源,例如靜態(tài)文件、Java 小服務(wù)程序、CGI 腳本、Java 對象、數(shù)據(jù)庫、FTP 服務(wù)器, 等等。JMeter 可以用于對服務(wù)器、網(wǎng)絡(luò)或?qū)ο竽M巨大的負(fù)載,來自不同壓力類別下測試它們的強(qiáng)度和分析整體性能。另外,JMeter能夠?qū)?yīng)用程序做功能/回歸測試,通過創(chuàng)建帶有斷言的腳本來驗(yàn)證你的程序返回了你期望的結(jié)果。為了最大限度的靈活性,JMeter允許使用正則表達(dá)式創(chuàng)建斷言。

JSON斷言

JSON用于描述文本數(shù)據(jù)結(jié)構(gòu),有如下形式:
1.對象(object)
對象是一組無序的名稱/值對。對象以{(左大括號)開始,以}(右
大括號)結(jié)束。每個(gè)名稱后面跟著:冒號,
名稱/值對之間用逗號分隔。
比如:
{"name":"zhangsan","sex":1,"age":25}
2.數(shù)組(Array)
數(shù)組是值的有序集合。數(shù)組以[(左中括號)開始,以](右中括號)
結(jié)束。值之間用逗號分隔。
比如:
{
"man":[{"name":"zhangsan","sex":1,"age":21},
{"name":"lisi","sex":0,"age":18},
{"name":"wangwu","sex":0,"age":25}]
}
3.值(value)
值可以是字符串、數(shù)字、true/false、null、對象或數(shù)組。
4.字符串(string)
字符串是由零個(gè)或多個(gè)Unicode字符組成的序列,用雙引號括起來,
使用反斜杠轉(zhuǎn)義。
字符表示為單個(gè)字符串。字符串非常類似于C或Java中的字符串。
5.數(shù)字(number)
一系列0-9的數(shù)字組合,可以為負(fù)數(shù)或者小數(shù)。還可以用e或者E表示
為指數(shù)形式;

數(shù)字非常類似于C或Java數(shù)字,但只是不使用八進(jìn)制和十六進(jìn)制格式。
6.空白符(whitespace)
可以在任意成對的語法符號之間插入空白符(包括空格、換行符、回車符、橫向制表符)。

我們經(jīng)常使用XPath來分析、轉(zhuǎn)換以及有選擇地從XML文檔中提取數(shù)據(jù)。與XPath類似,JOSNPath可以方便從JSON結(jié)構(gòu)中發(fā)現(xiàn)和提取數(shù)據(jù)。

JSONPath中的“根成員對象”總是被稱為$,無論它是對象還是數(shù)組。

JSONPath表達(dá)式有“dot–notation”(.號)和“bracket–notation”([]號)兩種不同的表示風(fēng)格。

例如,

$.store.book[0].title or

$['store']['book'][0]['title']

JSONPath語法元素
JMeter中的JSON斷言方法
JMeter中的JSON斷言方法

JSONPath實(shí)例:

{ "store": {

"book": [

{ "category": "reference",

"author": "Nigel Rees",

"title": "Sayings of the Century",

"price": 8.95

},

{ "category": "fiction",

"author": "Evelyn Waugh",

"title": "Sword of Honour",

"price": 12.99

},

{ "category": "fiction",

"author": "Herman Melville",

"title": "Moby Dick",

"isbn": "0-553-21311-3",

"price": 8.99

},

{ "category": "fiction",

"author": "J. R. R. Tolkien",

"title": "The Lord of the Rings",

"isbn": "0-395-19395-8",

"price": 22.99

}

],

"bicycle": {

"color": "red",

"price": 19.95

}

}

}
JMeter中的JSON斷言方法
JMeter中的JSON斷言方法
JMeter中的JSON斷言方法

JSON 斷言:

JSON斷言可以對服務(wù)器返回的JSON文檔進(jìn)行驗(yàn)證。

JSON斷言有兩種使用模式:

1.根據(jù)JSONPath能否在JSON文檔中找到路徑;

2.根據(jù)JSONPath提取值并對值進(jìn)行驗(yàn)證。

若文檔格式為非JSON則斷言失敗;

若找不到路徑斷言失敗;

若提取值與預(yù)期值不一致斷言失敗。

配置項(xiàng)

Assert JSON Path exists:

用于斷言的JSON元素的路徑(JSONPath)。

1.Additionally assert value

是否額外驗(yàn)證根據(jù)JSONPath提取的值。

不勾選,驗(yàn)證JSONPath能否在JSON文檔中找到路徑;

勾選,驗(yàn)證根據(jù)JSONPath提取值是否預(yù)期。

2.Match as regular expression

預(yù)期值是否可以使用正則表達(dá)式。

不勾選,預(yù)期值不能使用正則表達(dá)式表示;

勾選,預(yù)期值可以使用正則表達(dá)式表示。

Expected Value:

預(yù)期值。

1.Expect null

若驗(yàn)證提取的值為null,則勾選此項(xiàng)。

這里有兩個(gè)地方需要額外注意:

a.驗(yàn)證null值,還是需要勾選“Additionally assert

value”,否則驗(yàn)證的是JSONPath能否找到路徑;

b.預(yù)期值不填表示空字符,與null不等價(jià)。

2.Invert assertion(will fail if above conditions met)

若勾選,表示對斷言結(jié)果取反。

注意:

除了null外,還有一種特殊的值,就是空數(shù)組,預(yù)期值不能不填,需要

設(shè)置為:[]

應(yīng)用案例

這里仍以前面介紹過的查詢被購買商品的總金額接口為例來講述JSON斷言的用法。

該接口返回的響應(yīng)數(shù)據(jù)為JSON,故可以使用JSON斷言。

操作步驟:

1.對預(yù)期結(jié)果要驗(yàn)證的項(xiàng)進(jìn)行參數(shù)化這里驗(yàn)證err_msg,result將預(yù)期結(jié)果寫入csv文件中

比如:

case_name,goods_id,goods_attr,goods_num,error_msg,rs lt

case1,9,226,3,,¥6630元

case2,,226,1,沒有找到指定的商品或者沒有找到指定的商品屬性。

case3,9,,1,,¥2298元

case4,9,226,,¥2308元

2.添加JSON Assertion并進(jìn)行配置

JSON斷言每次只能斷言一個(gè)參數(shù),因此這里需要添加多個(gè)JSON斷言。

假設(shè)對錯(cuò)誤消息與商品金額這個(gè)兩個(gè)返回參數(shù)值做斷言。

{

"err_msg": "沒有找到指定的商品或者沒有找到指定的商品屬性。",

"result": "",

"qty": 1,

"err_no": 1

}

$.err_msg --> 沒有找到指定的商品或者沒有找到指定的商品屬性。

$.qty --> 1

JSON斷言配置

JMeter中的JSON斷言方法


當(dāng)前題目:JMeter中的JSON斷言方法
標(biāo)題來源:http://weahome.cn/article/isjeij.html

其他資訊

在線咨詢

微信咨詢

電話咨詢

028-86922220(工作日)

18980820575(7×24)

提交需求

返回頂部