postman

一、 断言响应状态码:Status code: Code is 200

  1. 在 Tests 标签中,选中 Status Code:code is 200, 生成对应代码

  2. 修改 test() 方法参数1,和 匿名函数中的 预期结果。

  3. 点击 send 按钮,发送请求,执行断言代码。

  4. 查看断言结果。

// 断言响应状态码 是否为 200
pm.test("Status code is 200", function () {
    pm.response.to.have.status(200);
});

pm:代表 postman 的一个实例
test():是 pm实例的一个方法。有两个参数
    参数1:在断言成功后,给出的文字提示。可以修改。"Status code is 200"
    参数2:匿名函数。
pm.response.to.have.status(200);
   意思:postman 的响应结果中应该包含状态码 200
 

二、断言响应体是否包含某个字符串: Response body: Contains string

// 断言响应体包含指定字符串
pm.test("Body matches string", function () {
    pm.expect(pm.response.text()).to.include("string_you_want_to_search");
});


pm.expect(pm.response.text()).to.include("string_you_want_to_search");
   意思:pm 期望 响应文本 中,包含 xxxx 字符串。
    "string_you_want_to_search":预期结果

三、 断言响应体是否等于某个字符串:Response body: Is equal to a string

// 断言 响应体 等于某个字符串(对象)
pm.test("Body is correct", function () {
    pm.response.to.have.body("response_body_string");
});

pm.response.to.have.body("response_body_string");

 意思是,pm 的 响应中应该有 响应体 xxx
"response_body_string": 预期结果。

四、断言JSON数据:Response body: JSON value check

// 断言json的响应结果
pm.test("Your test name", function () {
    var jsonData = pm.response.json();
    pm.expect(jsonData.value).to.eql(100);
});


//断言success的值为true
pm.test("Your test name", function () {
    var jsonData = pm.response.json();
    pm.expect(jsonData.success).to.eql(true);
});

var jsonData = pm.response.json();
         var jsonData: 用js语法定义一个变量,jsonData 就是变量名
         pm.response.json();  代表响应的json结果


pm.expect(jsonData.value).to.eql(100);
        意思:pm 预期 json结果 key对应的值 等于 xxx
         to.eql(100); 中的 100 代表预期结果。

五、断言响应头:Response headers: Content-Type header check

// 断言响应头
pm.test("Content-Type is present", function () {
    pm.response.to.have.header("Content-Type");
});


pm.response.to.have.header("Content-Type");
         pm 的响应 头中包含 Content-Type

//在 header 中,添加 响应头中的 key 对应的 value 判定。
pm.test("Content-Type is present", function () {
    pm.response.to.have.header("Content-Type", "application/json");
});

六、全局变量和环境变量

全局变量

设置pm.globals.set(“全局变量名”,全局变量的值)

获取var 接收值的变量 = pm.globals.get(“全局变量名”)

请求参数获取(postman界面获取):{{全局变量名}}

环境变量

设置:代码设置:pm.environment.set("环境变量名", 环境变量值)

获取:代码获取:var 接收值的变量 = pm.environment.get("环境变量名")

请求参数获取(postman界面获取):{{环境变量名}}

七、Postman 请求前置脚本:在 send 按钮点击后,请求前置脚本代码,第一时间被执行。在 postman 内部实际 http请求之前。

1.调用百度首页接口,传时间戳给服务器

// 拿到时间戳
var time=new Date().getTime()
// 将时间戳设置到 全局变量
 pm.globals.set("gl_time",time)

2.查看写入的变量

 

3.在 请求参数中,使用全局变量  

 八、Postman 关联:应用于 多个 http请求之间,有数据关联、或依赖关系时。

A接口 依赖 B接口 的数据

  1. 向B接口发送http请求,获取数据

  2. 将数据 设置 至 全局变量(环境变量)中

  3. A 接口 获取 全局变量(环境变量)中 数据值,进行使用。

请求 获取天气接口, 提取响应结果中的 城市, 将城市名,给百度搜索接口使用。

1.获取 城市名,写入全局变量

 2.修改 百度搜索请求,使用全局变量,按 城市名进行搜索。

九、使用newman生成测试报告

安装

1.安装node

2.npm install -g newman

3.npm install -g newman-reporter-html

步骤:

  1. 批量执行测试用例集。

  2. 导出 Export 用例集。

  3. 在 终端 中 执行命令,生成测试报告

# 在终端中测试
newman run xxxx.json

# 完整的命令
newman run xxxx.json -e 环境变量文件 -d 外部数据文件 -r html --reporter-html-export 测试报告名.html

# 示例:
newman run 批量执行测试用例.postman_collection.json -r html --reporter-html-export 我的第一个测试报告.html

# 如果添加 -r html 就报错!说明: newman-reporter-html 安装失败!

 

 十、Postman读取外部数据文件(参数化):当 http请求,使用的 数据有较高相似度,相同的请求时,考虑使用参数化(将数据组织到数据文件中)。

CSV:

优点:数据组织形式简单,适用于大量数据的场合。

缺点:

不支持 bool类型数据。(数据被 postman读入后,自动添加 “” 包裹bool值。)

不支持 多参、少参、无参、错误参数 的接口测试。

不支持复杂数据类型。(如 嵌套字典、列表等)

file_mobile,file_sp
13012345678,联通
13800001111,移动
18966778899,电信

CSV文件

  1. 创建 xxx.csv 文件。

  2. 将数据写入到 csv文件中。

    • 第一行 写入 的是 数据对应的 “字段名”。

    • 从第二行向后依次是对应的数值,数据间用 英文逗号隔分。

     3.在 Postman 中,选中使用数据文件的 用例集,导入数据文件。

         1.点击用例集名称,使用 Run 按钮,进入 “Runner” 页面。

        2.使用 “Select File” 按钮选择 xxx.csv 文件。

        3.点击 预览按钮,校验数据文件是否正确。

JSON:

优点:支持 bool 类型;

        支持 多参、少参、无参、错误参数;

        支持复杂数据类型。

缺点:对于相同数据量,json数据文件大小远大于 CSV文件。

[
{"file_mobile":"13012345678", "file_sp":"联通"},
{"file_mobile":"13800001111", "file_sp":"移动"},
{"file_mobile":"18966778899", "file_sp":"电信"},
{"file_mobile":"13012345678", "file_sp":"联通"},
{"file_mobile":"13800001111", "file_sp":"移动"},
{"file_mobile":"18966778899", "file_sp":"电信"},
{"file_mobile":"13012345678", "file_sp":"联通"},
{"file_mobile":"13800001111", "file_sp":"移动"},
{"file_mobile":"18966778899", "file_sp":"电信"},
{"file_mobile":"13012345678", "file_sp":"联通"},
{"file_mobile":"13800001111", "file_sp":"移动"},
{"file_mobile":"18966778899", "file_sp":"电信"}
]

JSON文件

  1. 创建 xxx.json 数据文件

  2. 在 数据文件中,按json 语法写入json数据。格式 [{} ,{},{} ] 。

  3. 在 Postman 中,选中使用数据文件的 用例集,导入数据文件。

    1. 点击用例集名称,使用 Run 按钮,进入 “Runner” 页面。

    2. 使用 “Select File” 按钮选择 xxx.json 文件。

    3. 点击 预览按钮,校验数据文件是否正确。


读取数据文件数据

第一种:请求参数(请求行、请求头、请求体)中,使用 数据文件中 的数据

使用 {{}} 包裹 csv 文件 字段名 或 json 文件中的 key

如: {{username}} 或 {{password}}

第二种:代码(断言、请求前置脚本)中,使用 数据文件中 的数据

需要借助 postman 提供的 关键字data 点 csv 文件的字段名 或 json文件的 key

如: data.username 或 data.password

需求:批量查询手机号归属地、所属运营商,校验运营商数据正确性

接口: http://cx.shouji.360.cn/phonearea.php?number=13012345678

 

 

生成测试报告

步骤:

  1. 批量执行测试用例

  2. 导出 测试用例集

  3. 执行生成测试报告的命令

    newman run 用例集名称.json -d 数据文件名.csv/.json -r html --reporter-html-export  报告名称.html

 

  • 1
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值