浅谈Postman生命周期及一些基本操作

PostMan

生命周期

Postman的生命周期分为3部分

  • 请求前

这个阶段PostMan主要是执行请求前的请求,或者参数数据的准备及执行工作。

例如:Pre-request Script

  • 请求并完成请求

这个阶段要执行请求的参数填充并执行完请求,拿到请求返回值

例如:Get post…

  • 请求完成后

这个阶段可以检查请求返回的数据。

也可以执行其他请求.

例如:Tests

发送请求

URL参数

填写目标接口的URl 例如

www.baidu.com

http://www.baidu.com

params参数

顾名思义

填写Key:value格式的数据

例如key=Name,vaule=小明

支持引用变量

例如:在Pre-request Script中写

pm.environment.set("Name", "小明");

那么可以在params参数中这样表示

key: Name;

vaule:{{Name}}

Headers参数

与params一致,只不过填写的信息会放入Http请求头信息中

Body参数

针对Post请求方法可以填写

常见的是发送Json字符串

例如:

{

name:“小明”,

age:18

}

Pre-request Script参数

这个参数填写的是发送请求之前的脚本设置

目前支持多种设置参数的方式

例如:

全局变量:pm.globals.set("variable_key", "variable_value");

环境变量:pm.environment.set("variable_key", "variable_value");

文件数据变量设置;pm.environment.set("variable_key", data.datakey);

Tests参数

这个参数填写执行在收到请求返回后需要执行的代码

检查响应主体是否包含字符串

pm.test("Body matches string", function () {
    pm.expect(pm.response.text()).to.include("string_you_want_to_search");
});

检查响应主体是否等于字符串

pm.test("Body is correct", function () {
    pm.response.to.have.body("response_body_string");
});

检查JSON值

pm.test("Your test name", function () {
    var jsonData = pm.response.json();
    pm.expect(jsonData.value).to.eql(100);
});

内容类型存在

pm.test("Content-Type is present", function () {
    pm.response.to.have.header("Content-Type");
});

响应时间小于200毫秒

pm.test("Response time is less than 200ms", function () {
    pm.expect(pm.response.responseTime).to.be.below(200);
});

状态代码是200

pm.test("Status code is 200", function () {
    pm.response.to.have.status(200);
});

代码名称包含一个字符串

pm.test("Status code name has string", function () {
    pm.response.to.have.status("Created");
});

成功的POST请求状态代码

pm.test("Successful POST request", function () {
    pm.expect(pm.response.code).to.be.oneOf([201,202]);
});

集合测试

集合测试就是说的比较官方,更通俗易懂的是参数化测试。

也就是说我通过txt.cvs.json文件的数据驱动我需要的get post请求参数化运行,这样可以达到一个请求高度复用的效果。

具体可以参照官网文档

创建参数化测试

测试脚本变量

PostMan内置很多有用的函数变量

可以直接使用相关的资料可以查阅官方文档

变量的介绍

但是值得注意的是

  1. 全局
  2. 集合参数
  3. 环境
  4. 数据
  5. 本地

果当前活动环境中的变量与全局变量共享其名称,则环境变量将优先。

换句话说,全局变量被环境变量覆盖,环境变量被数据变量覆盖 (仅在集合运行器中可用 )。

快速接入Swagger

1、打开可访问api的Swagger网址

2、F12打开 找到