如何使用Postman生成不同格式测试的报告

Postman还可以生成测试报告,还是多种格式报告?

Postman团队开源Newman作为Postman运营工具,该开源库使用命令行方式执行Postman 脚本,并且生成多种格式报告,还支持Postman SDK 纯代码脚本化Postman。

最近汇总所有支持Postman生成的报告,就是这个demo工程Postman-super-run它能帮助你执行Postman脚本(collection.json)并生成测试结果报告。

生成报告格式,如下图所示:

如何使用Postman生成不同格式测试的报告

命令行输入mocha并回车,如此简单,就可执行Postman脚本并自动生成不同格式测试报告。

一、工具地址

https://github.com/liyinchigithub/Postman-super-run

二、环境要求

Nodejs 

如果你的电脑已安装配置Nodejs,此步骤可跳过。

如果还没有,请先安装配置Nodejs,具体步骤参考:

https://www.runoob.com/nodejs/nodejs-tutorial.html

三、使用

打开命令行终端窗口

如何使用Postman生成不同格式测试的报告

1、安装

npm install

2、将Postman脚本放入postmanCollection文件夹下

如何使用Postman生成不同格式测试的报告

3、修改./test/test.js

修改引入Postman脚本的文件名称

如何使用Postman生成不同格式测试的报告

脚本示例,以JavaScript单元测试Mocha来编写,如果你对Mocha还不了解,可参考下面链接:

https://mochajs.org/

Mocha犹如Java Junit或TestNG

4、运行

mocha 

如何使用Postman生成不同格式测试的报告

如何使用Postman生成不同格式测试的报告

5、自动生成报告文件

文件位置在./report文件夹下

如何使用Postman生成不同格式测试的报告

如何使用Postman生成不同格式测试的报告

报告示例:

html
如何使用Postman生成不同格式测试的报告

html
如何使用Postman生成不同格式测试的报告

CSV

如何使用Postman生成不同格式测试的报告

json
如何使用Postman生成不同格式测试的报告

其他报告示例详见:

https://github.com/liyinchigithub/Postman-super-run/blob/master/README.md

四、配合持续集成

运用场景1:

公司所在其他业务线测试、产品、业务同事,需要在我负责业务线测试环境,构造一些订单数据,用于他们后续环节流程测试,但又不想投入太多时间成本在我的业务线上,因此在jenkins配置一个job专门用来构造测试数据。

如下图所示:

如何使用Postman生成不同格式测试的报告

如何使用Postman生成不同格式测试的报告构建触发执行shell 参数的配置

我对Postman-supper-run脚本进行调整,不在以mocha触发脚本,而是使用nodejs命令行入参形式接收动态化参数,如下图所示:

如何使用Postman生成不同格式测试的报告

如何使用Postman生成不同格式测试的报告
脚本内容,process.argv[index]用于接收命令行入参

const newman = require('newman');
 var Sandbox = require('postman-sandbox'), context;
 var CreateOrder = require("../environment/CreateOrder");//引入环境变量对象
 var accessToken = process.argv[2];// token
 var departureTimeDelay = process.argv[3];// 往后延几个小时
 var serviceId = process.argv[4];// 订单服务类型
 var carGroupId = process.argv[5];// 车组ID
 var cityId = process.argv[6];// 城市ID
 var passengerMobile = process.argv[7];// 乘车人手机号
 var airCode = process.argv[8];// 三字码
 var isCoupons = process.argv[9];// 是否优惠券
 var isEnterpriseAuthentication = process.argv[10];// 鉴权类型

我将Postman环境变量json脚本文件路径,替换为JSON对象文件形式CreateOrder.js,方便接收jenkins传过来的入参。

newman.run({
  // Postman collection 脚本文件路径,也可以是一个url地址
  collection: require('../postmanCollection/OpenAPICreateData.postman_collection.json'), 
// Postman collection 环境变量
  environment: {
                    "id": "2fe5997e-dcda-4b4d-8b77-77256c5e1cd5",
                    "name": "OpenApi",
                    "values": CreateOrder
                },

如下图所示:
如何使用Postman生成不同格式测试的报告

Jenskin构建结果

如何使用Postman生成不同格式测试的报告

如何使用Postman生成不同格式测试的报告
还可以利用jenkins各种报告插件,可以把Postman-super-run运行生成报告文件展出来。

例如:Junit xml、json、allure html等格式报告jenkins都有到相对应报告插件。

运用场景2:

业务主流程,自动化测试回归用例脚本,定期自动执行,将生成的测试报告邮件发送给相关人员。

如下图所示:

如何使用Postman生成不同格式测试的报告

如何使用Postman生成不同格式测试的报告
测试报告作为附件,邮件为报告内容。

如何使用Postman生成不同格式测试的报告

Postman-supper-run后续拓展计划想解析报告内容,写入到数据库中存储执行记录,用于排查测试环境开发前后端代码分支的Bug,后续有时间会更新到github分享下实现中采坑过程。

上一篇:2,postman的tests的断言写法


下一篇:DB2开发系列之一——基本语法