目錄:
1、概述
2、單條腳本代碼閱讀
3、Response\Status code相關(guān)腳本代碼
4、請求類型詳解
5、生成測試報告

image.png
一、概述
本次測試基于查詢Ip的接口http://apis.juhe.cn/ip/ipNew:
詳情可前往FreeApi查看。(如果公司有現(xiàn)成的接口就不必費這個事啦,直接用公司的就好。)
接口請求類型為:GET請求
請求參數(shù)包含key和ip,key到FreeApi去根據(jù)引導獲取,每日有上限,我下面的Demo就是超過請求次數(shù)了的【苦澀】,無妨,不影響學習。

請求地址、參數(shù)、響應(yīng)體
根據(jù)Postman提供的腳本片段入手進行測試腳本學習:

Tests欄
二、單條腳本代碼閱讀
先取一段腳本代碼進行閱讀:
pm.test("響應(yīng)體中包含字符串:resultcode", function () {
pm.expect(pm.response.text()).to.include("resultcode");
});
上述代碼為一段包含兩個參數(shù)的函數(shù),函數(shù)為pm類下的 test函數(shù),
- 第一個參數(shù)是一個字符串(測試腳本執(zhí)行后這串文字會在TestResult中打印出來,如下圖);
- 第二個參數(shù)是一個匿名函數(shù),匿名函數(shù)體中調(diào)用了pm的
expect函數(shù),expect包含一個參數(shù):pm.response.text(),這個參數(shù)是通過pm獲取到響應(yīng)體并轉(zhuǎn)換成文本,再通過.to.include來跟期望的字符串resultcode進行比對。判斷響應(yīng)體文本中是否包含resultcode這個字符串。

test函數(shù)第一個參數(shù)的用途
三、Response\Status code相關(guān)腳本代碼
對Response\Status code進行測試:
// 檢測響應(yīng)體中是否包含特定的字符串,這個響應(yīng)體信息我們在postman最下方窗口的Body標簽可以直接查看
pm.test("響應(yīng)體中包含字符串:resultcode", function () {
pm.expect(pm.response.text()).to.include("resultcode");
});
// 檢測響應(yīng)狀態(tài)碼是否為200,響應(yīng)狀態(tài)碼在postman最下方窗口的標題欄右側(cè)可看
pm.test("狀態(tài)碼為200", function () {
pm.response.to.have.status(200);
});
// 檢測響應(yīng)體Json中的error_code字段的值是否等于10012
pm.test("error_code的值為10012", function () {
var jsonData = pm.response.json();
pm.expect(jsonData.error_code).to.eql(10012);
});
// 檢測響應(yīng)體完整的內(nèi)容是否完全等同于期望的內(nèi)容
pm.test("響應(yīng)體內(nèi)容與預(yù)期完全一致", function () {
pm.response.to.have.body({"resultcode":"112","reason":"超過每日可允許請求次數(shù)!","result":null,"error_code":10012});
});
// 檢測請求頭是否帶了date信息,也可以檢查是否包含Content-Type、Transfer-Encoding、Connection、Etag等,這個請求頭信息我們在postman窗口中TestResult旁邊的標簽可以直接查看
pm.test("header中包含date日期", function () {
pm.response.to.have.header("date");
});
// 響應(yīng)時間在postman最下方窗口的標題欄右側(cè)可看
pm.test("響應(yīng)時間少于200ms", function () {
pm.expect(pm.response.responseTime).to.be.below(200);
});
// 響應(yīng)狀態(tài)碼在postman最下方窗口的標題欄右側(cè)可看
pm.test("響應(yīng)碼為201或202或200", function () {
pm.expect(pm.response.code).to.be.oneOf([201, 202,200]);
});
// 響應(yīng)狀態(tài)碼名稱在postman最下方窗口的標題欄右側(cè)可看
pm.test("狀態(tài)碼名稱為OK", function () {
pm.response.to.have.status("OK");
});
四、八種請求類型介紹
后四種不常用
- POST 增
- DELETE 刪
- PUT 改
- GET 查
- TRACE 跟蹤
- HEAD 跟GET類型,但只返回頭部,不返回響應(yīng)體
- OPTIONS 返回服務(wù)器針對特定資源所支持的HTTP請求方法
- CONNECT 用于建立一個網(wǎng)絡(luò)連接,HTTP/1.1協(xié)議中預(yù)留給能夠?qū)⑦B接改為管道方式的代理服務(wù)器
五、生成測試報告(mac電腦)
- 下載安裝node.js 并配置環(huán)境變量
- 安裝
newman
以管理員身份打開terminal ( sudo su ,然后輸入密碼)
安裝命令:mpn install -g newman
檢驗:newman -v - 安裝
newman-reporter-html
npm install -g newman-reporter-html - 在postman里導出測試集
search.pm_collection.json
search.pm_collection_envir.json - terminal 執(zhí)行以下命令,生成測試報告
newman run search.pm_collection.json -e search.pm_collection_envir.json -r html --reporter-html-export search_ip.html

接口測試報告 search_ip.html