Postman高级使用——Tests 断言校验返回结果
1、引言
Postman的test本質上是JavaScript代碼,通過我們編寫測試代碼,每一個tests返回True,或是False。
每一個tests實際上就是一個測試用例
2、對接口進行Tests測試
Tests斷言:比較預期結果和實際結果
(編輯文本采用js語言,對于初學者來說可以直接點擊右邊的系統自帶配置js)
引用變量{{變量名稱}}
比如搜貓,那么我們就選擇Response body:Contains string
pm.test("Body matches string", function () {
pm.expect(pm.response.text()).to.include("string_you_want_to_search");
});
pm.test("檢查返回內容是否正確", function () {
pm.expect(pm.response.text()).to.include("<titile>貓_百度搜索</titile>");
});
附百度搜貓抓過來的接口Url
http://www.baidu.com/s?wd=貓
附JSON在線視圖查看器
http://www.bejson.com/jsonviewernew/
3、簡單實例測試(檢查百度搜貓返回請求情況)
//1、檢查返回值
pm.test("檢查返回內容是否正確", function () {
pm.expect(pm.response.text()).to.include("<title>貓_百度搜索</title>");
});
//2、檢查狀態碼
pm.test("檢查狀態碼", function () {
pm.response.to.have.status(200);
});
//3、檢查響應時間
pm.test("檢查響應時間小于300ms", function () {
pm.expect(pm.response.responseTime).to.be.below(300);
});
顯示結果
ps:檢查響應時間會因網速而發生變化,返回Fail有時是正常的
4、環境變量管理使用
//1、檢查返回值
pm.test("檢查返回內容是否正確", function () {
pm.expect(pm.response.text()).to.include("<title>貓_百度搜索</title>");
});
//2、檢查狀態碼
pm.test("檢查狀態碼", function () {
pm.response.to.have.status(200);
});
//3、檢查響應時間
pm.test("檢查響應時間小于300ms", function () {
pm.expect(pm.response.responseTime).to.be.below(300);
});
//4、獲取狀態碼
var code=responseCode.code;
//5、設置全局變量
pm.globals.set("codename", code);
通過js腳本我們獲取狀態碼后,存在一個全局變量codename里面,然后我們打開環境變量管理進行查看,如下:
實例二:將微信獲取token的返回值提取token出來,在后面的接口中進行引用
在Tests中進行腳本測試
//1、獲取jsonData數據包
var jsonData=JSON.parse(responseBody);
//2、通過json包獲取對應字段名access_token
var token=jsonData.access_token;
//設置token全局變量
pm.globals.set("myToken",token);
查看環境變量管理內容如下:
6、正則表達式使用(以獲取微信的token為例)
上面那個獲取腳本的方式其實是有一個缺點的,那種方式只能獲取一個JSON格式的值,而當我們切換類型后就沒辦法獲取了,所以我們可以采用更好一點的方法,正則表達式
var token=responseBody.match(new RegExp('access_token":"(.+?)"'))[1];
pm.globals.set("weixin_token",token);
7、提出問題①(關于百度在不同環境訪問問題):
當我們訪問百度時,可以通過網址進行訪問,也可以通過IP地址進行訪問,那么我們切換不同的環境時,如何讓它們都能用呢?
如何查看百度的IP地址呢?
首先WIN+R 進入cmd
然后輸出以下命令:
nslookup www.baidu.com
于是我們能查看到如下內容(每個電腦的顯示界面可能不一樣)
通過查看,我們就能得到百度的三種環境:生產環境、測試環境、預發布環境
www.baidu.com 生產環境 IP地址: 183.232.231.172 測試環境 183.232.231.174 預發布環境
公司的環境有哪些?
開發環境:開發人員用來編碼調試
測試環境:測試人員找bug
預發布環境:模擬的真實環境
生產環境:用戶真實使用的
PS:那么我們將主機設置為全局變量,這樣我們對于不同的環境都能夠使用,此時我們打開Postman,進入之前的環境變量管理,點擊Add然后添加這三個環境,注意我們的環境變量名稱要統一
1、測試環境配置
2、生產環境配置
3、預發布環境配置
8、提出問題②(關于請求頭封裝隱藏問題)
①提取返回值(正則表達式、json)
②環境變量的設置
③修改請求頭
④參數化循環取值
之前各個環境配置好了之后,我們發送send請求后,打開我們的Fiddler工具查看我們的請求頭,發現在User-Agent會直接顯示我們的Postmanxxx,這樣的接口肯定會出問題的,我們應該如何進行隱藏封裝呢?
很簡單,就是我們直接去訪問百度,去拿到百度的Headers的信息就好了,然后去修改我們自己接口的key-value值
下面是我從百度拷下來的Headers,可以直接使用
Accept: text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3;q=0.9 Accept-Encoding: gzip, deflate, br Accept-Language: zh-CN,zh;q=0.9,en;q=0.8 User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/79.0.3945.88 Safari/537.36
然后在接口那選擇Headers,采用文本方式直接復制過去即可
PS:我們這里是引用了全局變量baiduUrl,是之前配置的三個環境的變量名稱
那么現在我們的Headers請求頭就封裝好了,我們再send一下,采用預發布環境試試~
結果很顯然,修改成了百度的請求頭了,說明隱藏成功!
希望本文對你有所幫助~~如果對軟件測試、接口測試、自動化測試、面試經驗交流感興趣可以加入我們。642830685,免費領取最新軟件測試大廠面試資料和Python自動化、接口、框架搭建學習資料!技術大牛解惑答疑,同行一起交流。
總結
以上是生活随笔為你收集整理的Postman高级使用——Tests 断言校验返回结果的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: JS原生手写轮播图
- 下一篇: Vue中的 ref 和 $refs