使用 postman 製作 API 測試時,有些案例可能不應該在 production 的情況執行,例如新增或修改一些會影響正式主機使用者的資料,但 postman 本身並沒有可以設定那些 API 在指定的環境時不可執行或者是警告執行,我們可以透過 Pre-request Script 撰寫 function 在 Collection 的層級,在各個 request 內放入限制。
Collection Pre-request Script
avoidExecuteFrom = (environment) => {
const checkEnvironment = (value) => {
if (pm.environment.name.includes(value)) {
throw new Error(`forbidden in ${value}`)
}
};
if (typeof environment === 'string') {
checkEnvironment(environment);
}
if (Array.isArray(environment)) {
environment.forEach(checkEnvironment);
}
};
Request Pre-request Script
avoidExecuteFrom('staging');
avoidExecuteFrom(['production', 'staging'])
我的專案 environment 有三個配置,case-dev
、case-staging
、case-production
,pm.environment.name
可以拿到 environment name,送出前偵測是否我們要避免執行的環境文字有包含在內,有的話便禁止送出。