一、准备
1.1、软件版本
软件 | 版本 | 系统 |
---|---|---|
postman | v7.30.1 | Windows 7 |
newman | 5.1.2 | Linux CentOS 7.6 |
nodejs | 12.18.3 | Linux CentOS 7.6 |
1.2、涉及链接
Postman
下载链接:https://www.postman.com/downloads
newman
官网:https://www.npmjs.com/package/newman
nodejs
下载链接:https://nodejs.org/zh-cn/download
聚合免费API官网:https://www.juhe.cn
二、环境搭建
2.1 postman
进入官网,下载Windows 64-bit
版本,(浏览器下载较慢,建议使用迅雷下载)
2.2 nodejs
下载Linux 二进制文件(x64)
,右键复制下载链接,然后进Linux
下载
# 安装wget工具
yum install -y wget
# 下载二进制包
wget https://nodejs.org/dist/v12.18.3/node-v12.18.3-linux-x64.tar.xz
# 解压至opt目录下
tar -xvf node-v12.18.3-linux-x64.tar.xz -C /opt/
配置环境变量
vi ~/.bashrc
追加以下内容
# node
export NODE_HOME=/opt/node-v12.18.3-linux-x64
export PATH=$NODE_HOME/bin:$PATH
刷新环境变量
source ~/.bashrc
查看版本
[root@localhost ~]# node -v
v12.18.3
[root@localhost ~]# npm -v
6.14.6
2.3 newman
使用npm
直接安装newman
npm install -g newman --registry=https://registry.npm.taobao.org
--registry=https://registry.npm.taobao.org
的意思临时指定npm仓库的下载源为国内淘宝源,提升安装速度。
查看版本
[root@localhost ~]# newman -v
5.1.2
由于后续需要生成测试报告,还需要安装html
报告插件
# 基础版
npm install -g newman-reporter-html --registry=https://registry.npm.taobao.org
# 增强版
npm install -g newman-reporter-htmlextra --registry=https://registry.npm.taobao.org
三、准备接口
登陆聚合的网站,找几个免费调用的接口。
- 1、手机号码归属地
- 2、简/繁/火星字体转换
要求:将手机号码归属地
返回的归属地名称通过字体转换
接口转换成繁体字。
3.1 创建测试集
创建一个JuHe_API
的测试集
3.2 填入接口
将聚合的两个接口添加进测试集
3.3 调试接口
填入接口信息,调试接口
- 1、手机号码归属地
- 2、简/繁/火星字体转换
3.4 断言
如何确定接口返回值正确性,这时候就需要添加断言,点击右边的快捷输入即可。
- 1、手机号码归属地
- 2、简/繁/火星字体转换
3.5 环境变量
将调用接口用到的key
值设为环境变量,每次调用的时候引用即可。点击右边小齿轮
添加一个名为JuHe_ENV
的环境变量,填入变量
、初始值
,然后保存。
引用环境变量
- 1、手机号码归属地
将环境变量切换为JuHe_ENV
,然后key
的值使用{{mobile_key}}
方式引用环境变量。
- 2、简/繁/火星字体转换
3.6 参数化
简/繁/火星字体转换
的text
入参为手机号归属地
的返回值,我们自动化过程中不可能手动输入该值,所以要使用参数化
,取出上个接口的返回值,设置成环境变量,提供给下一个接口使用。
- 1、手机号码归属地
设置返回值为环境变量。
// 设置归属地的返回值为province环境变量
var Body = JSON.parse(responseBody);
pm.environment.set("province", Body.result.province);
运行后查看当前环境变量,发现已经设置成功。
- 2、简/繁/火星字体转换
引用上一个接口设置的环境变量
3.7 运行测试集
运行之前记得保存接口请求。
环境变量确保为JuHe_ENV
,然后运行。
查看运行结果
四、自动化准备
4.1 下载测试集脚本文件
4.2 下载环境变量脚本文件
4.3 上传脚本文件至服务器
服务器安装lrzsz
工具,可直接通过xshell
将文件传入服务器。
yum install -y lrzsz
4.4 使用newman运行脚本文件
newman run JuHe_API.postman_collection.json -e JuHe_ENV.postman_environment.json
run : 运行测试集脚本文件
-e : 运行测试集的环境变量脚本文件
查看结果
生成html
格式的报告
newman run JuHe_API.postman_collection.json -e JuHe_ENV.postman_environment.json -r htmlextra --reporter-htmlextra-export /root/JuHe_API.html
-r htmlextra : 使用 htmlextra 插件
--reporter-htmlextra-export : 报告另存为
查看报告
五、拓展
5.1 Nginx
HTML
与Nginx
搭配极佳,使用Nginx
服务器直接做报告的服务器,生成报告链接。
安装Nginx
rpm -Uvh http://nginx.org/packages/centos/7/noarch/RPMS/nginx-release-centos-7-0.el7.ngx.noarch.rpm \
&& yum install -y nginx \
&& systemctl start nginx.service \
&& systemctl enable nginx.service \
&& systemctl stop firewalld \
&& systemctl disable firewalld
将newman
生成的报告直接另存到Nginx
的主目录即可。
newman run JuHe_API.postman_collection.json -e JuHe_ENV.postman_environment.json -r htmlextra --reporter-htmlextra-export /usr/share/nginx/html/JuHe_API.html
浏览器访问Nginx服务器IP/JuHe_API.html
,即可看到报告。
5.2 钉钉脚本
将每日执行的测试报告链接,通过钉钉机器人发送到群组里,简单方便,参考脚本:
#!/usr/bin/env bash
# Auth: liuli
# Version: v1.0, 2020/8/25
# Sys: CentOS 7.6
# Features: 使用newman执行postman脚本,生成测试报告。
time=`date "+%Y-%m-%d-%H:%M"`
API_FILE="/opt/newman/JuHe_API.postman_collection.json"
ENV_FILE="/opt/newman/JuHe_ENV.postman_environment.json"
# newman生成报告
newman run ${API_FILE} -e ${ENV_FILE} -r htmlextra --reporter-htmlextra-export /usr/share/nginx/html/${time}.html
# 钉钉机器人提醒
function alarmdingding(){
apiurl="https://oapi.dingtalk.com/robot/send?access_token=b03f8a3f(换成自己的钉钉机器人token)"
/bin/curl ${apiurl} \
-X POST -H "Content-Type: application/json" \
-d '{"msgtype": "link","link": {"text": "报告链接","title": "业务接口测试报告","picUrl": "http://www.baidu.com/pic/postman.jpg","messageUrl": "http://Nginx服务器地址/'${time}'.html"}}'
}
alarmdingding
钉钉机器人配置
Webhook
中有机器人的token
,安全设置添加一个报告
的关键词。
效果
转载:https://blog.csdn.net/qq_39680564/article/details/108116659