4、實(shí)現(xiàn)Postman中的數(shù)據(jù)驅(qū)動(dòng)
當(dāng)需要進(jìn)行數(shù)據(jù)驅(qū)動(dòng)運(yùn)行多次Postman腳本時(shí),可以通過.csv或者.json格式的數(shù)據(jù)文件,對(duì)接口測(cè)試數(shù)據(jù)進(jìn)行管理,以方便用例的執(zhí)行。
步驟1:
進(jìn)入Collection測(cè)試集的Collection Runner界面。
點(diǎn)擊Collection測(cè)試集名稱后邊的箭頭,點(diǎn)擊Run。

步驟2:
在Collection Runner界面中選擇需要執(zhí)行的接口。
我們只需要執(zhí)行批量新增學(xué)院請(qǐng)求,如下圖:

Deselect All:取消全選(默認(rèn)全選)。
Select All:全選。
Reset:重置(恢復(fù)默認(rèn)全選)。
步驟3:
配置Collection Runner執(zhí)行選擇。
選擇Collection測(cè)試集。
Environment:選擇環(huán)境變量。-
Iterations:接口迭代次數(shù),這個(gè)不用填寫,選擇數(shù)據(jù)文件后會(huì)自動(dòng)識(shí)別(會(huì)自動(dòng)忽略第一行標(biāo)題)。如果只執(zhí)行測(cè)試集,不進(jìn)行數(shù)據(jù)驅(qū)動(dòng),自己按需求填寫。
Delay:每次執(zhí)行的間隔。-
Data:選擇.csv數(shù)據(jù)文件。(可以添加測(cè)試數(shù)據(jù),在tests中用data參數(shù)訪問)// data 表示數(shù)據(jù)文件的對(duì)象 // data.cityname表示獲取數(shù)據(jù)文件中的cityname屬性值 pm.test("驗(yàn)證返回中city的值是"+data.cityname, function () { var jsonData = pm.response.json(); // 獲取返回值所有數(shù)據(jù) pm.expect(jsonData.city).to.eql(data.cityname); // 斷言返回值中具體字段的值 }); // 這種取值方式要重點(diǎn)記住 -
Save responses:保存響應(yīng)。允許記錄請(qǐng)求的響應(yīng)頭和正文,方便您查看。
這可能會(huì)收集較多的數(shù)據(jù),從而影響測(cè)試集運(yùn)行的性能。
Keep variable values:是否保留測(cè)試集執(zhí)行過程中對(duì)環(huán)境變量的修改。(夠不勾選都可以)Run collection without using stored cookies:在不使用存儲(chǔ)的cookie的情況下運(yùn)行測(cè)試集。-
Save cookies after collection run:測(cè)試集運(yùn)行后保存cookie。更新此會(huì)話中存儲(chǔ)的cookie,并將其保存到您的cookie管理器中。
(以上四項(xiàng)默認(rèn)即可)
Run ***:運(yùn)行已選擇collection測(cè)試集中的接口。
配置完如下圖:

重點(diǎn)提示:
Preview能夠查看數(shù)據(jù)文件中內(nèi)容預(yù)覽,可以查看文件讀取內(nèi)容是否有誤。
步驟4:
執(zhí)行并查看結(jié)果。

說明:
(1)頂部欄:

Collection Runner:返回Collection Runner界面。Run Results:當(dāng)前Run運(yùn)行的結(jié)果界面。My Workspace:切換工作空間。Run In Command Line:在命令行中運(yùn)行。(好像是需要安裝一個(gè)Newman的命令行工具來執(zhí)行命令,這個(gè)暫時(shí)不重要)Docs:進(jìn)入Postman官方文檔https://learning.postman.com/docs/running-collections/intro-to-collection-runs/
(2)測(cè)試結(jié)果部分:

測(cè)試集Run完成后,
- 成功多少個(gè)斷言。
- 失敗多少歌斷言。
- 測(cè)試集的名稱。
- 測(cè)試集選擇的環(huán)境變量。
執(zhí)行完成PASSED和FAILED的總和,等于每個(gè)接口斷言個(gè)數(shù)×執(zhí)行次數(shù)。
(3)工具欄:

-
Run Summary:查看運(yùn)行摘要(概況)。
如下圖:
-
Export Results:導(dǎo)出測(cè)試集執(zhí)行結(jié)果,.json文件的形式。 -
Retry:重新執(zhí)行一次測(cè)試集。 -
New:新建一個(gè)Collection Runner界面,其實(shí)也就是返回了Collection Runner界面。
(4)請(qǐng)求列表部分

說明:
- 我們可以看到每一個(gè)請(qǐng)求名稱、URL、執(zhí)行的響應(yīng)碼、使用時(shí)間、所用數(shù)據(jù),還有該請(qǐng)求所執(zhí)行的斷言。
- 左側(cè)欄可以點(diǎn)擊切換,只查看成功的斷言、只查看失敗的斷言和全部顯示。
- 右側(cè)欄我們可以直接選擇查看第幾次發(fā)送的請(qǐng)求。
-
點(diǎn)擊請(qǐng)求的名稱,我們也可以看到該請(qǐng)求的詳細(xì)數(shù)據(jù),如下圖:
(5)底部欄:
Console:控制臺(tái),可以查看每個(gè)請(qǐng)求的運(yùn)行日志和數(shù)據(jù)信息。
可以查看請(qǐng)求頭、請(qǐng)求體、響應(yīng)頭、相應(yīng)體等數(shù)據(jù)。
如果請(qǐng)求報(bào)錯(cuò),也可以查看到錯(cuò)誤信息。

以上就是在Postman中數(shù)據(jù)驅(qū)動(dòng)的使用過程。(json格式的數(shù)據(jù)文件使用同理)
實(shí)際上面是講了兩部分內(nèi)容,
- 一部分是Collection測(cè)試集的執(zhí)行,也就是
Collection Runner。- 還有一個(gè)就是Postman中數(shù)據(jù)驅(qū)動(dòng)的使用。
5、補(bǔ)充: json格式數(shù)據(jù)文件說明
[
{
"userName":"張三",
"passWord":"123456",
"sex":"男",
"age":66
},
{
"userName":"李四",
"passWord":"123456",
"sex":"男",
"age":88
},
{
"userName":"王五",
"passWord":"123456",
"sex":"女",
"age":99
}
]
提示:外面必須是[],每一組數(shù)據(jù)使用 {}進(jìn)行封裝,中間使用逗號(hào)進(jìn)行分隔。
6、補(bǔ)充:數(shù)據(jù)文件在預(yù)置腳本中的使用
(1).csv文件
Pre-request Script編寫如下代碼:
// 在Pre-request Script和tests中用data代表訪問參數(shù)
// 獲取參數(shù)化文件中的dep_name字段的值
var dep_name = data.dep_name
// 將獲取到的 dep_name 設(shè)置為環(huán)境變量
pm.environment.set("dep_name", dep_name);
// 調(diào)試
console.log(pm.environment.get("dep_name"));
(2).json文件
Pre-request Script編寫如下代碼:
// 在Pre-request Script和tests中用data代表訪問參數(shù)
// 獲取參數(shù)化文件中的userName字段的值
var userName = data.userName
// 將獲取到的 userName 設(shè)置為環(huán)境變量
pm.environment.set("userName", userName);
// 調(diào)試
console.log(pm.environment.get("userName"));

