2022-05-06 - Postman測試腳本入門の一

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

一、概述

本次測試基于查詢Ip的接口http://apis.juhe.cn/ip/ipNew
詳情可前往FreeApi查看。(如果公司有現(xiàn)成的接口就不必費這個事啦,直接用公司的就好。)
接口請求類型為:GET請求
請求參數(shù)包含keyip,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電腦)

參考文檔:postman中做完測試后如何自生成測試報告

  • 下載安裝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
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容