溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊(cè)×
其他方式登錄
點(diǎn)擊 登錄注冊(cè) 即表示同意《億速云用戶服務(wù)條款》

Jmeter接口測(cè)試實(shí)戰(zhàn)-數(shù)據(jù)傳遞

發(fā)布時(shí)間:2020-07-23 22:13:27 來(lái)源:網(wǎng)絡(luò) 閱讀:412 作者:louiezhou001 欄目:軟件技術(shù)

Jmeter接口測(cè)試實(shí)戰(zhàn)-數(shù)據(jù)傳遞

接口與接口之間沒(méi)有關(guān)聯(lián)的測(cè)試是缺乏意義和沒(méi)有靈魂的,只有數(shù)據(jù)在不同接口之間傳遞才能勾畫出業(yè)務(wù)場(chǎng)景重要的鏈路.

我們用較為通用的http/https協(xié)議,接口普遍返回json方式為例.


舉例場(chǎng)景:

比如電商平臺(tái),用戶登錄后產(chǎn)生令牌token, 其他接口拿著這個(gè)token判斷用戶是否登錄才能進(jìn)行相關(guān)操作, 當(dāng)用戶將商品加入購(gòu)物車支付完成后,系統(tǒng)按照規(guī)則生成訂單號(hào), 同時(shí)會(huì)在該用戶的全部訂單列表中查到全部訂單和相應(yīng)狀態(tài).


要點(diǎn)分析:

1. login接口登錄后生成token

2. pay支付接口拿到token正確的情況下,支付完成后生成訂單號(hào)

3. orderList 訂單列表接口需要有token和訂單號(hào)等為入?yún)⒈靥铐?xiàng),查出該用戶的所有訂單狀態(tài)


有了Idea就開(kāi)始動(dòng)手吧!

手頭有三個(gè)接口,來(lái)模擬上面場(chǎng)景,同時(shí)也為了演示方便

  • login登錄 //生成token

  • 創(chuàng)建用戶 //生成用戶id

  • 刪除用戶 //拿到創(chuàng)建用戶接口id, 并刪除該用戶

前提條件:

需要使用Json取樣器, Jmeter默認(rèn)沒(méi)有提供, 可用plugin-manager安裝, 也可以去jmeter官網(wǎng)把jar包下載后放在%jmeter_home%/lib/ext/目錄下,重啟jmeter生效.


第一步: 在線程組內(nèi)新建三個(gè)sampler

登錄接口

Jmeter接口測(cè)試實(shí)戰(zhàn)-數(shù)據(jù)傳遞

  • 入?yún)⒎绞讲捎胘son, 在http信息管理頭里設(shè)置

  • 用戶名密碼登錄獲取token,用戶名和密碼用變量, 在用戶自定義變量中賦值


創(chuàng)建用戶接口

Jmeter接口測(cè)試實(shí)戰(zhàn)-數(shù)據(jù)傳遞

  • 同樣采用json 方式入?yún)?/p>

  • 拿到login接口的token后, 生成用戶唯一id


通過(guò)正則表達(dá)式提取token

Jmeter接口測(cè)試實(shí)戰(zhàn)-數(shù)據(jù)傳遞

正則為什么要這樣寫呢?                  

來(lái)看下login執(zhí)行后的結(jié)果樹(shù)就明白了

Jmeter接口測(cè)試實(shí)戰(zhàn)-數(shù)據(jù)傳遞

accessToken在data節(jié)點(diǎn)下面,出于能夠準(zhǔn)確尋找到節(jié)點(diǎn)


和beanshell結(jié)合傳遞token

Jmeter接口測(cè)試實(shí)戰(zhàn)-數(shù)據(jù)傳遞

beanshell 我們?cè)谥暗耐莆闹幸呀?jīng)介紹過(guò)很多次了,有哪些內(nèi)置對(duì)象, 如何定義可以在jmeter 官方文檔中找到.


再來(lái)看下http信息管理器中的設(shè)置

Jmeter接口測(cè)試實(shí)戰(zhàn)-數(shù)據(jù)傳遞

這樣在線程組中的每個(gè)接口都能使用token了


好了我們執(zhí)行一下登錄和新增用戶接口,看下新增接口返回的json, 便于我們用json取樣器中寫節(jié)點(diǎn)結(jié)構(gòu)

Jmeter接口測(cè)試實(shí)戰(zhàn)-數(shù)據(jù)傳遞

用Json path Tester方式, 查看新增接口返回一串json樹(shù),  其中有我們用隨機(jī)數(shù)新建的用戶名和系統(tǒng)生成的用戶id, 這個(gè)id是我們要傳給下一個(gè)接口刪除用戶要使用的.

如何提取這個(gè)id呢? 用json取樣器或者正則表達(dá)式都是不錯(cuò)的選擇, 今天就用json取樣器來(lái)演示.

Jmeter接口測(cè)試實(shí)戰(zhàn)-數(shù)據(jù)傳遞

Names of created variables: 將這個(gè)傳遞給下一個(gè)要使用的接口的變量名稱

Json path expressions: 就是從json中提取的字段值

$. 注意這個(gè)美元符號(hào)后面有一個(gè)點(diǎn)不能丟, 這樣的組合表示根目錄, data是根節(jié)點(diǎn), id在data節(jié)點(diǎn)下面

match no:0隨機(jī);n取第幾個(gè)匹配值;-1匹配所有,后續(xù)引用用 變量名_N 取第N個(gè)值

default values: 缺省值,匹配不到值的時(shí)候取該值


刪除用戶接口

Jmeter接口測(cè)試實(shí)戰(zhàn)-數(shù)據(jù)傳遞

把json取樣器中的id傳給刪除接口,一整個(gè)數(shù)據(jù)傳遞鏈就設(shè)置完成了.

再來(lái)看下目錄結(jié)構(gòu)

Jmeter接口測(cè)試實(shí)戰(zhàn)-數(shù)據(jù)傳遞

看下執(zhí)行結(jié)果-新增接口

Jmeter接口測(cè)試實(shí)戰(zhàn)-數(shù)據(jù)傳遞

結(jié)果樹(shù)-刪除

Jmeter接口測(cè)試實(shí)戰(zhàn)-數(shù)據(jù)傳遞


新增接口里系統(tǒng)生成的id尾號(hào)9984

delete接口里id=尾號(hào)9984 作為入?yún)鬟f給該接口, 兩個(gè)接口id一致, 數(shù)據(jù)傳遞無(wú)誤

以上步驟組成了一整套數(shù)據(jù)鏈傳遞過(guò)程, 讓接口測(cè)試更貼近業(yè)務(wù)場(chǎng)景需求, 使數(shù)據(jù)賦予了更多的意義.


今日推薦閱讀文章精選推薦

為什么要做接口測(cè)試

JMeter數(shù)據(jù)庫(kù)操作

Jmeter接口測(cè)試-正則表達(dá)式

JMeter中文返回亂碼

Jmeter接口測(cè)試-參數(shù)化

JMeter接口測(cè)試-基礎(chǔ)

測(cè)試-感想


咨詢工作加微信

Jmeter接口測(cè)試實(shí)戰(zhàn)-數(shù)據(jù)傳遞

掃描二維碼


歡迎自薦和推薦, 需要的微信推送簡(jiǎn)歷!

請(qǐng)猛戳下面二維碼了解更多

Jmeter接口測(cè)試實(shí)戰(zhàn)-數(shù)據(jù)傳遞


向AI問(wèn)一下細(xì)節(jié)

免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如果涉及侵權(quán)請(qǐng)聯(lián)系站長(zhǎng)郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI