在Ubuntu中使用Postman腳本主要涉及到**前置腳本(Pre-request Script)和測試腳本(Tests Script)**的使用。這些腳本可以幫助你在發送請求之前動態生成測試數據,以及在請求完成后進行驗證。以下是詳細步驟和示例:
前置腳本在發送請求之前執行,通常用于生成動態數據。例如,你可以使用JavaScript生成隨機字符串、隨機整數或時間戳,并將它們設置為環境變量或全局變量。
// 生成10位隨機字符串(字母+數字)
pm.environment.set("randomStr", Math.random().toString(36).substr(2, 10));
// 生成10位隨機整數
pm.environment.set("randomNum", Math.floor(Math.random() * 1e10));
// 生成32位純數字隨機數
function generate32BitRandom() {
let randomStr = '';
for (let i = 0; i < 32; i++) {
randomStr += Math.floor(Math.random() * 10);
}
return randomStr;
}
pm.environment.set("randomNum32", generate32BitRandom());
// 生成10位時間戳(秒級)
pm.globals.set("timestamp", Math.floor(Date.now() / 1000).toString());
測試腳本在請求完成后執行,通常用于驗證響應數據。你可以使用console.log()
輸出變量值,并進行斷言驗證。
// 打印變量值用于調試
console.log("\nTests 變量驗證:");
console.log("randomStr =", pm.environment.get("randomStr"));
console.log("randomNum =", pm.environment.get("randomNum"));
console.log("timestamp =", pm.globals.get("timestamp"));
// 基礎斷言
pm.test("randomStr格式驗證", () => {
const str = pm.environment.get("randomStr");
pm.expect(str).to.have.length(10);
pm.expect(str).to.match(/^[a-z0-9]+$/i);
});
pm.test("時間戳有效性驗證", () => {
const ts = pm.globals.get("timestamp");
pm.expect(ts).to.have.length(10);
pm.expect(Number(ts)).to.be.a("number");
});
// 響應驗證示例(假設接口返回請求參數)
pm.test("響應包含隨機參數", () => {
const response = pm.response.json();
pm.expect(response.request_id).to.equal(pm.environment.get("randomStr"));
pm.expect(response.timestamp).to.equal(pm.globals.get("timestamp"));
});
通過合理使用Postman的前置腳本和測試腳本,可以顯著提升接口測試的自動化水平和測試質量。在實際應用中,建議結合具體業務場景進行擴展,形成標準化的測試數據生成體系。