聊一聊Jmeter与多接口测试
背景
前面兩篇聊過了 JMeter 的 簡單使用 和 參數化,主要都還是單接口的。
很多時候,一個業務要走完,它會依賴多個接口,而且這些接口會有依賴性。
好比說,我想查詢一個訂單信息,那么大前提肯定是我已經下單了,并且拿到了訂單號我才可以去查。
像這個場景就會有下單接口和查詢訂單兩個接口,并且查詢訂單接口會依賴于下單接口。
所以下面來看看多接口的情況下我們怎么用 JMeter 來實現自動化測試。
場景接口
在這里的話,老黃沒有虛擬一個場景,用的是步驟一步驟二和步驟三來代替。
它們的流程大概如下:
調用步驟一接口,會返回一個 data 字段
根據步驟一返回的 data 字段,去調用步驟二的接口,會返回一個 data 字段
根據步驟二返回的 data 字段,去調用步驟三的接口
下面是各接口定義
步驟一
請求:
POST http://localhost:8532/auto/step1 Content-Type: application/json{"str":"123","r":"456" }響應:
{"code":0,"msg":"ok","data":"step1"}步驟二
請求:
POST http://localhost:8532/auto/step2 Content-Type: application/json{"str":"123","r":"step1" }響應:
{"code":0,"msg":"ok","data":"step1+step2"}步驟三
請求:
POST http://localhost:8532/auto/step3 Content-Type: application/json{"str":"123","r":"step1+step2" }響應:
{"code":0,"msg":"ok","data":"step1+step2+step3"}步驟一處理
添加一個 HTTP 請求,進行相關的參數設定。
同時還要添加一個 JSON Extractor 的后置處理器
添加這個處理器的目的就是為了獲取到接口返回的 data 字段。
這里的配置和前面的 JSON 斷言其實差不多,都是定義一個參數名和 JSON 節點的路徑就可以了。
到這里的話,步驟一的接口就可以了。
下面是步驟二,要怎么用步驟一返回的結果數據。
步驟二處理
步驟二也是一個 HTTP 請求,所以這里也是添加,不一樣的地方是參數這一塊。
可以看到,這里是直接把步驟一的 JSON Extractor 里面定義的變量名拿過來用了。
用法和參數化的方式差不多。這里繼續復刻步驟一的 JSON Extractor,提取步驟三需要的內容。
步驟三處理
同樣是添加一個 HTTP 請求,參數配置和步驟二類似。
換的是步驟二的變量名。
步驟三還要加一個 JSON 斷言,確定返回的 data 是期望值。
到這里,有依賴性的多接口測試其實已經配置好了。
最后就是添加一個查看結果樹,看對應的結果。
寫在最后
對于多接口測試,老黃認為這里的核心的關鍵點會是后置處理器這一塊內容,通過它可以很方便的拿到接口返回的內容。
試想一下,一個相對穩定業務,測試同學配置好這些接口的用例和流程。
只要開發同學調整了接口,通過 Jenkins 更新到測試環境后,就會自動跑測試同學定義的 Jmeter 腳本,就可以很輕松的知道這次更新會不會出現明顯的問題。
這樣的話可以節省很多不必要的時間。
但是呢,不建議剛起來的業務去做這些內容,因為多變,腳本會經常變,吃力不討好!
最后的話,老黃把 JMeter 系列的內容都放在 github 了,方便大家查閱和測試。
https://github.com/catcherwong/JmeterSample
總結
以上是生活随笔為你收集整理的聊一聊Jmeter与多接口测试的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: .NET Core with 微服务 -
- 下一篇: C# 强大的新特性 Source Gen