您好,登錄后才能下訂單哦!
Jmeter接口測試實戰-數據傳遞
接口與接口之間沒有關聯的測試是缺乏意義和沒有靈魂的,只有數據在不同接口之間傳遞才能勾畫出業務場景重要的鏈路.
我們用較為通用的http/https協議,接口普遍返回json方式為例.
舉例場景:
比如電商平臺,用戶登錄后產生令牌token, 其他接口拿著這個token判斷用戶是否登錄才能進行相關操作, 當用戶將商品加入購物車支付完成后,系統按照規則生成訂單號, 同時會在該用戶的全部訂單列表中查到全部訂單和相應狀態.
要點分析:
1. login接口登錄后生成token
2. pay支付接口拿到token正確的情況下,支付完成后生成訂單號
3. orderList 訂單列表接口需要有token和訂單號等為入參必填項,查出該用戶的所有訂單狀態
有了Idea就開始動手吧!
手頭有三個接口,來模擬上面場景,同時也為了演示方便
login登錄 //生成token
創建用戶 //生成用戶id
刪除用戶 //拿到創建用戶接口id, 并刪除該用戶
前提條件:
需要使用Json取樣器, Jmeter默認沒有提供, 可用plugin-manager安裝, 也可以去jmeter官網把jar包下載后放在%jmeter_home%/lib/ext/目錄下,重啟jmeter生效.
第一步: 在線程組內新建三個sampler
登錄接口
入參方式采用json, 在http信息管理頭里設置
用戶名密碼登錄獲取token,用戶名和密碼用變量, 在用戶自定義變量中賦值
創建用戶接口
同樣采用json 方式入參
拿到login接口的token后, 生成用戶唯一id
通過正則表達式提取token
正則為什么要這樣寫呢?
來看下login執行后的結果樹就明白了
accessToken在data節點下面,出于能夠準確尋找到節點
和beanshell結合傳遞token
beanshell 我們在之前的推文中已經介紹過很多次了,有哪些內置對象, 如何定義可以在jmeter 官方文檔中找到.
再來看下http信息管理器中的設置
這樣在線程組中的每個接口都能使用token了
好了我們執行一下登錄和新增用戶接口,看下新增接口返回的json, 便于我們用json取樣器中寫節點結構
用Json path Tester方式, 查看新增接口返回一串json樹, 其中有我們用隨機數新建的用戶名和系統生成的用戶id, 這個id是我們要傳給下一個接口刪除用戶要使用的.
如何提取這個id呢? 用json取樣器或者正則表達式都是不錯的選擇, 今天就用json取樣器來演示.
Names of created variables: 將這個傳遞給下一個要使用的接口的變量名稱
Json path expressions: 就是從json中提取的字段值
$. 注意這個美元符號后面有一個點不能丟, 這樣的組合表示根目錄, data是根節點, id在data節點下面
match no:0隨機;n取第幾個匹配值;-1匹配所有,后續引用用 變量名_N 取第N個值
default values: 缺省值,匹配不到值的時候取該值
刪除用戶接口
把json取樣器中的id傳給刪除接口,一整個數據傳遞鏈就設置完成了.
再來看下目錄結構
看下執行結果-新增接口
結果樹-刪除
新增接口里系統生成的id尾號9984
delete接口里id=尾號9984 作為入參傳遞給該接口, 兩個接口id一致, 數據傳遞無誤
以上步驟組成了一整套數據鏈傳遞過程, 讓接口測試更貼近業務場景需求, 使數據賦予了更多的意義.
今日推薦閱讀文章精選推薦
為什么要做接口測試
JMeter數據庫操作
Jmeter接口測試-正則表達式
JMeter中文返回亂碼
Jmeter接口測試-參數化
JMeter接口測試-基礎
測試-感想
咨詢工作加微信
掃描二維碼
歡迎自薦和推薦, 需要的微信推送簡歷!
請猛戳下面二維碼了解更多
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。