传递给beanshell的参数_jmeter基础之断言及参数的关联性
jmeter參數(shù)關(guān)聯(lián)
接口測試中經(jīng)常會(huì)碰到,下一個(gè)接口的入?yún)⑹巧蟼€(gè)接口的出參,企業(yè)中不可能實(shí)時(shí)進(jìn)行手工改動(dòng),那么就需要用到參數(shù)的關(guān)聯(lián),把接口的響應(yīng)數(shù)據(jù),輸出給下一個(gè)接口。參數(shù)關(guān)聯(lián)我們可以使用正則表達(dá)式提取器或者是json提取器進(jìn)行數(shù)據(jù)的提取。
正則表達(dá)式
():括起來的部分就是要提取的。
.:匹配除換行外的任何字符串。
+:代表+號(hào)前面的字符必須至少出現(xiàn)一次(一次或多次)。
?:代表?前面的字符最多可以出現(xiàn)一次,在找到第一個(gè)匹配項(xiàng)后停止(0次或1次)。
:代表號(hào)前面的字符可以不出現(xiàn),也可以出現(xiàn)一次或者多次(0次、1次或者多次)
(.*):貪婪模式,匹配盡可能多的字符
(.*?)或(.+?):匹配盡可能少的字符,一旦匹配到第一個(gè)就不往下走了。
正則表達(dá)提取器模板
如果想要輸入多個(gè)參數(shù)應(yīng)該怎么處理模板,則可以寫成:$1$$2$。無論要提取多少個(gè)值,引用名稱就是一個(gè)的,比如名稱為id,${id}:獲取整個(gè)字符串a(chǎn)和b,則${id1}:獲取的是a,${id2}:獲取的是b。
jmeter接口請(qǐng)求中添加后置處理器--正則表達(dá)式提取器
以上是對(duì)上個(gè)接口返回的數(shù)據(jù)進(jìn)行提取,接下來需要對(duì)下個(gè)接口進(jìn)行引用:
變量的形式傳給下一個(gè)接口,發(fā)起請(qǐng)求可以看到結(jié)果是什么:
json提取器
json提取器和json斷言都需要引入第三方j(luò)ar包,jmeter沒有自帶這個(gè)插件,下載地址:https://jmeter-plugins.org/?search=jpgc-json,下載完成后放到j(luò)meter對(duì)應(yīng)目錄下。
json提取器和json斷言,需要了解下jsonpath表達(dá)式,可參考?xì)v史文章:
如何使用jsonpath與python結(jié)合進(jìn)行接口響應(yīng)斷言
在進(jìn)行jsonpath表達(dá)式填寫之前,我們可以切換響應(yīng)數(shù)據(jù)的格式,改為json path tester,在這里我們先進(jìn)行簡單的表達(dá)式調(diào)試:
后置處理器添加json提取器
接下來傳給我們需要這個(gè)參數(shù)的接口:
運(yùn)行查看我們參數(shù)傳遞的正確性:下面是新建的主題返回的id參數(shù)
下面是我們接收到的參數(shù),進(jìn)行修改:
jmeter斷言
jmeter運(yùn)用中斷言方式主要為3種,響應(yīng)斷言,json斷言,beanshell語句斷言。
響應(yīng)斷言
接口請(qǐng)求中添加斷言--響應(yīng)斷言
以上可以看到,斷言校驗(yàn)未通過
json斷言
接口請(qǐng)求下面添加斷言--json斷言
然后我們?cè)诳吹秸{(diào)試無誤后,在json斷言里面進(jìn)行設(shè)置:
beanshell斷言
beanshell語句實(shí)際為java源代碼語句,語法相通,首先需要先添加提取器,提取出變量:
然后添加beanshell斷言
利用提取器提取的變量進(jìn)行beanshell語句進(jìn)行判斷
運(yùn)行查看結(jié)果:
總結(jié)
以上是生活随笔為你收集整理的传递给beanshell的参数_jmeter基础之断言及参数的关联性的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 需求分析的过程是什么?_7大需求分析方法
- 下一篇: mysql模糊查询不会区分大小写_MyS