postman前置后置条件
时间: 2025-07-09 21:30:56 浏览: 15
### Postman 中前置和后置脚本的设置与使用
#### 前置脚本 (Pre-request Script)
前置脚本是在发送 HTTP 请求前执行的一段 JavaScript 代码。它主要用于动态生成请求参数、修改请求头或其他属性,以及基于环境变量或全局变量调整请求行为。
以下是前置脚本的一些常见用途及其配置方式:
1. **动态生成请求参数**
可以通过 `Math.random()` 或其他库函数生成随机数作为请求参数的一部分。例如:
```javascript
const randomValue = Math.floor(Math.random() * 100);
pm.variables.set("randomParam", randomValue); // 将随机值存储到局部变量中
```
2. **读取并操作环境变量**
使用 `pm.environment.get` 和 `pm.environment.set` 方法获取或更新环境变量。例如:
```javascript
let baseUrl = pm.environment.get("base_url"); // 获取名为 base_url 的环境变量
if (!baseUrl) {
baseUrl = "https://example.com";
pm.environment.set("base_url", baseUrl); // 如果不存在,则创建该变量
}
```
3. **时间戳生成**
利用内置的时间戳功能生成当前时间戳,并将其赋值给变量以便后续使用:
```javascript
const timestamp = new Date().toISOString(); // 当前 ISO 时间字符串
pm.variables.set("currentTimestamp", timestamp);
console.log(pm.variables.replaceIn("{{currentTimestamp}}")); // 替换 {{}} 占位符
```
4. **加密处理**
对某些敏感字段进行加密后再传递至服务器端验证。假设我们有一个简单的 MD5 加密需求:
```javascript
function md5(inputString) {
return CryptoJS.MD5(inputString).toString(); // 需要引入 crypto-js 库支持
}
const secretKey = "mySecretKey"; // 秘钥
const encryptedData = md5(secretKey + pm.variables.get("username"));
pm.variables.set("encryptedUsername", encryptedData);
```
---
#### 后置脚本 (Tests/Post-request Script)
后置脚本通常位于 Tests 栏目下,在接收到响应之后立即运行。它的主要作用是对返回的数据进行断言测试,提取有用的信息保存下来供以后调用,或者记录日志辅助调试过程。
下面列举几个典型场景及其实现方法:
1. **基本断言**
确认状态码是否符合预期范围;检查特定 JSON 键是否存在且满足一定条件等。
```javascript
pm.test("Status code is 200", () => {
pm.response.to.have.status(200);
});
pm.test("Response time is less than 200ms", () => {
pm.expect(pm.response.responseTime).to.be.below(200);
});
pm.test("Body contains expected property", () => {
const jsonData = pm.response.json();
pm.expect(jsonData.id).to.eql(12345);
});
```
2. **解析并存储响应数据**
提取出 API 返回的结果存入集合型变量当中方便跨多个请求之间共享这些信息。
```javascript
const responseBody = pm.response.json();
pm.globals.set("userId", responseBody.user_id);
// 或者将整个对象序列化成字符串形式储存起来
pm.collectionVariables.set("lastResult", JSON.stringify(responseBody));
```
3. **错误捕获机制**
添加额外逻辑判断当遇到异常情况时采取适当措施而不是让程序崩溃退出。
```javascript
try {
const parsedJson = pm.response.json();
if(!parsedJson.success){
throw new Error(`Operation failed with message ${parsedJson.message}`);
}else{
pm.environment.set("token", parsedJson.token);
}
} catch(err) {
console.error("Failed to parse response:", err.message);
pm.reject(err);
}
```
综上所述,无论是前置还是后置脚本都极大地增强了 Postman 工具的功能灵活性,使得开发者能够更加高效便捷地完成复杂的接口自动化任务[^1][^2][^3].
```python
print("Example Python Code Block")
```
阅读全文
相关推荐

















