Postman接口自动化测试实战

文章目录

  • 一、准备
    • 1.1、软件版本
    • 1.2、涉及链接
  • 二、环境搭建
    • 2.1 postman
    • 2.2 nodejs
    • 2.3 newman
  • 三、准备接口
    • 3.1 创建测试集
    • 3.2 填入接口
    • 3.3 调试接口
    • 3.4 断言
    • 3.5 环境变量
    • 3.6 参数化
    • 3.7 运行测试集
  • 四、自动化准备
    • 4.1 下载测试集脚本文件
    • 4.2 下载环境变量脚本文件
    • 4.3 上传脚本文件至服务器
    • 4.4 使用newman运行脚本文件
  • 五、拓展
    • 5.1 Nginx
    • 5.2 钉钉脚本

一、准备

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版本,(浏览器下载较慢,建议使用迅雷下载)
Postman接口自动化测试实战_第1张图片

2.2 nodejs

下载Linux 二进制文件(x64),右键复制下载链接,然后进Linux下载
Postman接口自动化测试实战_第2张图片

# 安装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的测试集
Postman接口自动化测试实战_第3张图片
Postman接口自动化测试实战_第4张图片

3.2 填入接口

将聚合的两个接口添加进测试集
Postman接口自动化测试实战_第5张图片
Postman接口自动化测试实战_第6张图片
Postman接口自动化测试实战_第7张图片

3.3 调试接口

填入接口信息,调试接口

  • 1、手机号码归属地

Postman接口自动化测试实战_第8张图片

  • 2、简/繁/火星字体转换

Postman接口自动化测试实战_第9张图片

3.4 断言

如何确定接口返回值正确性,这时候就需要添加断言,点击右边的快捷输入即可。

  • 1、手机号码归属地

Postman接口自动化测试实战_第10张图片

  • 2、简/繁/火星字体转换

Postman接口自动化测试实战_第11张图片

3.5 环境变量

将调用接口用到的key值设为环境变量,每次调用的时候引用即可。点击右边小齿轮
Postman接口自动化测试实战_第12张图片
添加一个名为JuHe_ENV的环境变量,填入变量初始值,然后保存。

Postman接口自动化测试实战_第13张图片
引用环境变量

  • 1、手机号码归属地

将环境变量切换为JuHe_ENV,然后key的值使用{ {mobile_key}}方式引用环境变量。
Postman接口自动化测试实战_第14张图片

  • 2、简/繁/火星字体转换

Postman接口自动化测试实战_第15张图片

3.6 参数化

简/繁/火星字体转换text入参为手机号归属地的返回值,我们自动化过程中不可能手动输入该值,所以要使用参数化,取出上个接口的返回值,设置成环境变量,提供给下一个接口使用。

  • 1、手机号码归属地

设置返回值为环境变量。

// 设置归属地的返回值为province环境变量
var Body = JSON.parse(responseBody);
pm.environment.set("province", Body.result.province);

Postman接口自动化测试实战_第16张图片
运行后查看当前环境变量,发现已经设置成功。
Postman接口自动化测试实战_第17张图片

  • 2、简/繁/火星字体转换

引用上一个接口设置的环境变量
Postman接口自动化测试实战_第18张图片

3.7 运行测试集

运行之前记得保存接口请求。
Postman接口自动化测试实战_第19张图片
环境变量确保为JuHe_ENV,然后运行。
Postman接口自动化测试实战_第20张图片
查看运行结果
Postman接口自动化测试实战_第21张图片

四、自动化准备

4.1 下载测试集脚本文件

Postman接口自动化测试实战_第22张图片
Postman接口自动化测试实战_第23张图片

4.2 下载环境变量脚本文件

Postman接口自动化测试实战_第24张图片
Postman接口自动化测试实战_第25张图片

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 : 运行测试集的环境变量脚本文件

查看结果

Postman接口自动化测试实战_第26张图片
生成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 : 报告另存为

查看报告
Postman接口自动化测试实战_第27张图片

五、拓展

5.1 Nginx

HTMLNginx搭配极佳,使用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,安全设置添加一个报告的关键词。
Postman接口自动化测试实战_第28张图片
效果
Postman接口自动化测试实战_第29张图片

你可能感兴趣的:(Linux运维,接口测试,接口自动化测试,newman,postman,测试,API测试)