您好,登錄后才能下訂單哦!
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
登錄接口
入?yún)⒎绞讲捎胘son, 在http信息管理頭里設(shè)置
用戶名密碼登錄獲取token,用戶名和密碼用變量, 在用戶自定義變量中賦值
創(chuàng)建用戶接口
同樣采用json 方式入?yún)?/p>
拿到login接口的token后, 生成用戶唯一id
通過(guò)正則表達(dá)式提取token
正則為什么要這樣寫呢?
來(lái)看下login執(zhí)行后的結(jié)果樹(shù)就明白了
accessToken在data節(jié)點(diǎn)下面,出于能夠準(zhǔn)確尋找到節(jié)點(diǎn)
和beanshell結(jié)合傳遞token
beanshell 我們?cè)谥暗耐莆闹幸呀?jīng)介紹過(guò)很多次了,有哪些內(nèi)置對(duì)象, 如何定義可以在jmeter 官方文檔中找到.
再來(lái)看下http信息管理器中的設(shè)置
這樣在線程組中的每個(gè)接口都能使用token了
好了我們執(zhí)行一下登錄和新增用戶接口,看下新增接口返回的json, 便于我們用json取樣器中寫節(jié)點(diǎn)結(jié)構(gòu)
用Json path Tester方式, 查看新增接口返回一串json樹(shù), 其中有我們用隨機(jī)數(shù)新建的用戶名和系統(tǒng)生成的用戶id, 這個(gè)id是我們要傳給下一個(gè)接口刪除用戶要使用的.
如何提取這個(gè)id呢? 用json取樣器或者正則表達(dá)式都是不錯(cuò)的選擇, 今天就用json取樣器來(lái)演示.
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í)候取該值
刪除用戶接口
把json取樣器中的id傳給刪除接口,一整個(gè)數(shù)據(jù)傳遞鏈就設(shè)置完成了.
再來(lái)看下目錄結(jié)構(gòu)
看下執(zhí)行結(jié)果-新增接口
結(jié)果樹(shù)-刪除
新增接口里系統(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è)試-感想
咨詢工作加微信
掃描二維碼
歡迎自薦和推薦, 需要的微信推送簡(jiǎn)歷!
請(qǐng)猛戳下面二維碼了解更多
免責(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)容。