欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

Postman 之自动化测试

程序员文章站 2024-03-21 20:47:34
...

如何添加断言Tests

基础断言

Tests右侧postman提供了一些示例代码片段
Postman 之自动化测试

响应主体是否包含指定结果

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

响应时间是否小于200ms

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

响应header时候包含Content-Type

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

响应报文是json结构的数据,value字段值是否等于100(验证json结构值)

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

响应状态码是否是200

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

检查响应主题是否等于一个字符串

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

常用方法

获取返回值是json结构的报文方法,jsonData是json对象

var jsonData = pm.response.json();

获取json中的flightSelections对象,通过length属性获取数组长度

var fSelects = jsonData.flightSelections;
var rand = Math.floor(Math.random()*fSelects.length);

通过[index]获取数组的元素,index从0开始

var FlightNumber = fSelects[rand].Segments[0].FlightNumber;

设置全局变量

 pm.globals.set("price", price);

设置环境变量(用户接口之间数据依赖的关联数据)

 pm.environment.set("price", price);

调试工具,内容会在控制台打印出来(控制台打开方式:菜单->View->show postman console)

console.log(jsonData.priceCountInfo);

使用公共变量简化重复配置

使用方法:使用双花括号引用环境变量或者全局变量,示例:{{host}}
使用场景1:请求的URL中使用
使用场景2:请求的参数中使用

Collection Runner使用

简单使用

点击postman右上角的Runner启动
Postman 之自动化测试

  1. 选择运行的Collection(Runner的运行单位是Collection或者folder)
  2. 选择运行环境
  3. 选择迭代执行次数
  4. 设置请求之间的间隔时间(正常不设就好)
  5. 选择运行日志级别
  6. 选择参数文件(没有就不要设置)
  7. 点击Start Run 执行用例集
  8. 查看测试报告

Postman 之自动化测试

Postman 之自动化测试

参数化运行

新建一个文件名为data的csv文件,文件中保存了两个参数departCity 和 arriveCity,分别作了数据参数化
Postman 之自动化测试

在Pre-request Script模块通过“文件名称.参数名”获取文件中的数据,我的也就是data.departCity

var departCity = data.departCity;
var arriveCity = data.arriveCity;

Postman 之自动化测试
在请求参数(header和URL中也行)中通过{{departCity}}引用需要参数化数据
备注:迭代变量的优先级高于环境变量,环境变量的优先级高于全局变量

在Runner中选择参数文件,参数化文件可以是csv或者json文件,点击Preview,可以看到所有文件中参数化数据

Postman 之自动化测试
每次迭代执行取一组数据,当执行的迭代次数大于参数化的数据时最后一组数据执行完后,之后迭代会取值最后一组数据
Postman 之自动化测试

与Newman+Jenkins集成实现自动化测试

导出Collection数据和环境变量数据

导出Collection 数据进入到一个json文件中
Postman 之自动化测试
点击右上角管理环境变量按钮,弹出管理页面
Postman 之自动化测试
选择你要的环境,点击下载得到一个环境变量的json文件
Postman 之自动化测试

newman安装和使用

newman安装之前需要确保你的机器node版本在V4以上
安装命令:

npm install newman --global

执行测试,指定postman_collection.json,-e 指定运行环境 ,–reporters 指定报告输出格式(xml json html),最后的参数是输出html报告

newman run 接口自动化探索.postman_collection.json  -e pre-online.postman_environment.json --reporters cli,json,xml,html --reporter-html-export demo.html

具体参考:newman官网

集成jenkins

  1. 新建一个自动化执行job
  2. 安装Html Publisher 插件
  3. 配置job 添加newman执行脚本(批处理或者shell)
  4. 配置Publish HTML reports
  5. 查看报告
    Postman 之自动化测试
    Postman 之自动化测试