文章目录

  • 一、准备
    • 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版本,(浏览器下载较慢,建议使用迅雷下载)

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

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接口自动化测试实战相关推荐

  1. python接口自动化测试面试题_Python 接口自动化测试实战

    Python接口自动化测试实战 简介 本课程主要围绕Python相关库再服务端接口自动化测试中的应用展开介绍,重点讲解接口自动化基础.编写接口自动化脚本.框架原理.项目实战,此外还扩展介绍多用例管理与 ...

  2. 【Python自动化测试26】接口自动化测试实战六_pytest框架+allure讲解

    文章目录 一.前言 二.pytest讲解 2.1 什么是pytest? 2.2 为什么使用pytest? 2.3 使用pytest 2.4 pytest的运行方式 2.5 pytest高级特性 2.5 ...

  3. 面面俱到的Java接口自动化测试实战

    第1章 接口自动化测试整体认知 了解什么是接口和为什么要做接口测试.并且知道接口自动化测试应该学习哪些技术以及接口自动化测试的落地过程. 1-1 导学章节 1-2 什么是接口 1-3 为什么要做接口测 ...

  4. 全网最全的Postman接口自动化测试

    该篇文章针对已经掌握 Postman 基本用法的读者,即对接口相关概念有一定了解.已经会使用 Postman 进行模拟请求的操作. 当前环境: Window 7 - 64 Postman 版本(免费版 ...

  5. Python接口自动化测试实战详解,你想要的全都有

    目录 前言 一.接口自动化测试概述 二.搭建Python接口自动化测试框架 三.常用接口自动化测试库示例 四.总结 前言 接口自动化测试是当前软件开发中最重要的环节之一,可以提高代码质量.加速开发周期 ...

  6. 说太多都是话痨,上才艺——PostMan接口自动化测试(一)

    目录 一.接口测试灵魂拷问 二.接口以及接口测试本质 三.接口返回的数据格式 四.市面上接口架构 五.真实企业接口测试流程 六.接口测试工具Postman的使用 七.Postman界面功能 一.接口测 ...

  7. 基于python+unittest简单实现接口自动化测试实战教程

    目录 1.前言 为什么要做接口自动化测试? 为什么要自己写框架呢? 2.一个现有的简单接口例子 接口信息如下 3.测试思路 原始脚本实现 未优化 优化 第一版 优化 第二版 优化 第三版 最终输出日志 ...

  8. jemeter python接口自动化测试平台_ant+jmeter+Jenkins接口自动化测试实战(1)

    项目中需要做接口自动化测试,于是就去做实验,做实验要从搭建测试环境开始.在学习的过程中肯定会遇到不同的问题,于是就用了两天的时间做了一个简单的接口自动化环境,中间也遇到一些问题,现在把路上踩到的坑记录 ...

  9. python实现接口自动化的视频_python实现头条项目接口自动化测试实战

    配套资料添加qq2212232413 讲解方式 课程内容条理清晰,目标明确,由浅入深,环环相扣.重点部分进行额外梳理和总结,更易理解和吸收. 课程亮点 1.接口测试框架搭建 2.黑马头条项目 3.数据 ...

最新文章

  1. VSCODE安装必要的插件实现浏览器中打开,以及显示网址
  2. 国外计算机音乐专业,音乐留学干货 | 国外电子音乐专业留学如何?
  3. Zabbix监控Nginx性能状态
  4. plsql窗口文件怎么找回_电脑文件丢失怎么找回?知道原因和方法很关键
  5. Index of open source
  6. Entity Framework 简单增删改操作
  7. (set)计算集合的并
  8. 项目功能大全,让你的项目一天搞定
  9. mysql的网址是什么意思_Mysql数据库地址是什么怎么填写
  10. iOS:选择器控件UIPickerView的详解和演示
  11. Floyd算法(matlab实现)
  12. 快速回复信息神器免费的有哪些,哪些工具可以快捷回复
  13. eos源码赏析(七):EOS智能合约入门之共识机制初探
  14. 【Python】 matplotlib 以pdf形式保存图片
  15. 【多多情报通】看完让人焕然大悟的6种拼多多店铺玩法
  16. Staking来袭,10亿级市场打开! | 火星总编时刻NO.31
  17. 快速入门:Slurm资源管理与作业调度系统
  18. 解决nvcc --version显示command not found问题
  19. 计算机控制键功能,电脑ctrl键的功能
  20. 美国国家气候数据中心(NCDC)数据下载与处理

热门文章

  1. c++编译 [Error] ‘revise‘ was not declared in this scope
  2. linux-netdata监控配置
  3. The Sandbox 与 TOWER 团队共同发起塔防游戏创作大赛
  4. 分布式事务原理及解决方案
  5. android音乐播放器(改进版)
  6. Vue_框架入门级别
  7. vim中let与set的区别
  8. 移动端组件cube-ui使用
  9. python实现即时通讯后端思路整理
  10. 年货请收下:一份数据分析学习清单.xls