說明
流程:批量創(chuàng)建用戶虑瀑,并進行登錄驗證湿滓,最后刪除創(chuàng)建的用戶。使用CSV文件進行測試的批量導入舌狗。
批量接口操作
當每個接口請求參數(shù)中有相同的情況以及對接口返回結果的統(tǒng)一驗證的情況叽奥,可以通過配置Collection的Pre-request Scripts和Tests。
在本案例中痛侍,我們每個接口需要在Headers中設置 Request-DateTime朝氓。通過在Collection的Pre-request Scripts中進行配置。獲取當前時間,并進行格式化赵哲。
方法一:
var moment = require('moment');
var data = moment().format(" YYYY-MM-DD HH:mm:ss");
pm.environment.set("Request-DateTime",data);
方法二:
vvar nowDate = new Date();
pm.environment.set("Request-DateTime", nowDate.getFullYear() + "-" + nowDate.getMonth() + "-" + nowDate.getDate() + " " + nowDate.getHours() + ":" + nowDate.getMinutes() + ":" + nowDate.getSeconds());
在本案例中待德,我們對每個接口的請求狀態(tài)碼進行200驗證。
通過在Collection的Tests中進行配置枫夺。
pm.test("Status test", function () {
pm.response.to.have.status(200);
});
獲取access_token
除了登錄接口将宪,其余接口都需要Access-Token這個參數(shù),因此我們需要先配置登錄接口筷屡,在Collection中新增一個接口配置涧偷。
解析接口返回結果,獲取Access-Token毙死,并添加到環(huán)境變量燎潮。
代碼如下:
var jsonData = pm.response.json();
pm.test("操作成功,msgCoded為0", function () {
pm.expect(jsonData.msgCode).to.eql(0);
});
pm.environment.set("Access-Token", jsonData.item.token.access_token);
創(chuàng)建用戶
在Collection中新增一個創(chuàng)建用戶接口配置扼倘。上面配置Request-DateTime和Access-Token确封,可以通過{{參數(shù)名}}
進行配置。
接口接收的json格式參數(shù)再菊,通過接口的Tab欄Body中進行配置爪喘,選擇raw。
其中的變量纠拔,在后面會進行說明秉剑。
{
"companyId": "{{companyId}}",
"email": "{{email}}",
"loginFlag": "{{loginFlag}}",
"loginName": "{{loginName}}",
"name": "{{name}}",
"no": "{{no}}",
"officeId": "{{officeId}}",
"password": "{{password}}",
"roles": {{roles}},
"userType": "{{userType}}"
}
在接口的Tests進行反饋結果的驗證,并轉發(fā)到“登錄”接口稠诲。
var jsonData = pm.response.json();
pm.test("操作成功侦鹏,msgCoded為0", function () {
pm.expect(jsonData.msgCode).to.eql(0);
});
pm.test("登錄名已經(jīng)存在", function () {
pm.expect(jsonData.msgCode).to.eql(-10022);
});
postman.setNextRequest("登錄");
登錄
在Collection中新增一個創(chuàng)建登錄接口配置。
在接口的Tests進行反饋結果的驗證臀叙,并設置環(huán)境變量userId用于對創(chuàng)建的新用戶進行刪除操作略水,轉發(fā)到“刪除用戶”接口。
var jsonData = pm.response.json();
pm.test("操作成功劝萤,msgCoded為0", function () {
pm.expect(jsonData.msgCode).to.eql(0);
});
pm.environment.set("userId", jsonData.item.user.id);
接口返回的數(shù)據(jù)為json格式渊涝,可以通過“xxx.xxx.xxx.xxx”進行數(shù)據(jù)獲取。
刪除用戶
在Collection中新增一個刪除用戶接口配置床嫌。上面配置Request-DateTime和Access-Token跨释,同時在url欄上配置參數(shù)“userId”,可以通過{{參數(shù)名}}
進行配置厌处。
對方返回的結果進行判斷煤傍,并清理環(huán)境變量“userId”。
var jsonData = pm.response.json();
pm.test("操作成功嘱蛋,msgCoded為0", function () {
pm.expect(jsonData.msgCode).to.eql(0);
});
pm.environment.unset("userId");
運行實例
此時Collection中有四個接口蚯姆,點擊三角號五续。
彈出操作面板,點擊“Run”龄恋。
創(chuàng)建一個CSV文件疙驾,內(nèi)容如下:
第一行為參數(shù)名稱,第二行起為數(shù)據(jù)郭毕。參數(shù)名稱的獲取它碎,見“創(chuàng)建用戶”接口以及“登錄接口”。
創(chuàng)建文件后显押,點擊面板的“Select File”扳肛,選擇創(chuàng)建好的文件。
"iterations"迭代次數(shù)會根據(jù)CSV文件有多少行數(shù)據(jù)進行配置乘碑。
如果迭代次數(shù)較多的情況下挖息,建議配置下“Delay”,延遲1000ms進行下一次請求兽肤。
可以通過“Preview”查看批量的文件內(nèi)容套腹。
還有一步操作,打開控制臺资铡,“view->Show Postman Console”电禀。
最后一步,點擊 “Run Collection名稱”笤休。
紅框的內(nèi)容可以點擊試下尖飞,可以通過“Retry”重復運行〉暄牛可以在剛才打開的控制臺看到接口請求的詳細內(nèi)容政基。
完結,以上即是一個完成的測試實例底洗。