【建议收藏】Jenkins+postman+newman之API全自动化测试


1 背景
本文要介绍的环境在我司已经投入使用,举个简单的真实使用场景,开发提供了300多个API,每个API都有各种参数,所以我们会先在postman中为这300多个API编写300*n个testcase,然后在jenkins上跑;到此有人可能会问,都在postman中写好testcase了,怎么还要去jenkins中跑,岂不是多此一举?答案是否定的,试想,当开发一直在不停的维护这300多个接口时,难道需要开发每次都告诉我们测试人员该进行测试了吗?显然不是的,这就是jenkins+postman的自动化之处了,开发可以实现一个jenkins的上游job脚本(当接口代码有修改时触发我们这个testcase的下游job),当他们每次修改维护接口时不需要进行任何操作与交流,代码一旦提交jenkins就能自动化个性化地开始执行我们预定于的那些testcase了,然后我们只用关注最终的测试结果邮件即可,这样大大的提高了开发测试效率。
鉴于国内很少测试工程师用postman来测试API,于是写本篇文章分享下。前一个月用postman写了API自动化测试脚本,并用newman命令行运行所有测试案例,觉得没有达到全自动化测试,于是配置jenkins job来运行API自动化测试脚本,使API达到完全自动化测试!
2 环境配置与运行
这部分依次展示了如何安装设置及运行一个基于Postman的自动化工具,具体如下。
2.1 postman 安装
在谷歌浏览器下载postman插件,并安装,下载路径(Chrome应用商店需要翻墙):chrome.google.com/webstore/se… 。这个比较小儿科,一句话带过就行了。(不过要注意,建议最好下载应用,而不是插件,因为功能强大一些)。
2.2 newman 的安装
第一步,安装nodejs。
第二步,在nodejs命令行安装newman,即命令行输入如下命令:
npm install -g newman复制代码

2.3 jenkins 安装
去官网(jenkins.io/index.html)下载jenkins,各种下一步点击安即可(官网wiki等目录下一般都有不同平台的安装文档,依据文档安装即可)。
2.4 postman 使用与导出
第一步,创建一个放置testCase的文件夹Test,如下:

第二步,创建第一个testcase,点击下图1处的加号新增一个case,在2处选择你的API请求方式,在3处写上api请求的url,在4处填写该请求的相关参数,具体如下图:

下面展示了一个依据上图步骤配置后的邮箱地址请求示例,如图:

第三步,对一个testCase的判断可以写在如下所示位置(判断的意思是指譬如返回的状态码、内容等是不是你期望的值):

第四步,点击send按钮即可发送一个请求,同时可以看到请求的结果,如图:

当然,一般Test目录可能有很多的testCase,这种情况下我们可以选中文件夹,然后点击start Test按钮,这样就会自动执行文件夹内的所有testcase并显示测试结果,如图:

第五步,导出上面在postman中写的testCase文件和设置的环境变量文件(点击下图1处导出testCase文件,点击下图2处导出环境变量文件)。这是最重要最核心的一步,自动化的源头依赖于此步,请务必注意。

至此postman的基本使用和导出就完事了,关于postman的其他主题设置、登录等等其他功能请自行摸索,其实很多开发也非常喜欢用postman,譬如移动端开发喜欢用postman去请求服务端提供的API,以此来简单快捷验证接口的正确性和Json、xml等数据格式。
2.5 jenkins 配置
在jenkins上配置如下图,这个路径就是上面通过postman导出文件的路径。

剩下的就是jenkins的常规操作了,譬如设置好邮箱后点击立即构建或者设置多久构建一次,这样自动化就跑起来了,等待自动化测试结束后我们就可以收到测试成功或者失败的测试报告邮件(依赖于你的设置)了。
通过上面这些步骤即可完成基于postman和Jenkins的自动化接口测试。
3 总结
可以看见,其实postman就是一个GUI的工具,我们完全可以手动用它验证接口,但是当有海量接口且有序执行时就比较麻烦了,所以我们可以通过postman将所有接口的测试案例进行编写实现及导出;而由于postman导出的文件想在jenkins上通过命令行执行依赖于newman环境,所以我们安装配置了newman,以此就能解决jenkins只能执行命令行或者脚本的弊端;他们几个的结合就实现了一次测试案例的编写实现个性化自动化的接口测试。
如果文章对你有帮助,记得点赞,收藏,加关注。会不定期分享一些干货哦......
最后感谢每一个认真阅读我文章的人,看着粉丝一路的上涨和关注,礼尚往来总是要有的,虽然不是什么很值钱的东西,如果你用得到的话可以直接拿走:

这些资料,对于想做【软件测试】的朋友来说应该是最全面最完整的备战仓库,这个仓库也陪伴我走过了最艰难的路程,希望也能帮助到你!凡事要趁早,特别是技术行业,一定要提升技术功底。希望对大家有所帮助……加入我的学习交流群一起学习交流讨论把!!!!

相关文章:
【建议收藏】Jenkins+postman+newman之API全自动化测试
1 背景 本文要介绍的环境在我司已经投入使用,举个简单的真实使用场景,开发提供了300多个API,每个API都有各种参数,所以我们会先在postman中为这300多个API编写300*n个testcase,然后在jenkins上跑;到此有人…...
MySQL数据库————MVCC
MySQL的脏读、幻读、不可重复读 脏读 现在有两个事务在操作table表,事务B修改了id2的name字段为李老四,但是没有提交,事务A查询id2的数据,得到name为李老四;事务B发生回滚,id2的数据的name又变回李四&…...
为啥Python多线程爬虫跑的慢?
单线程和多线程进行数据抓取结果还是大有不同的,但是要值得注意的事,如果多线程没调配好可能连单线程的效率都比不上。本次就和大家一起聊一聊单线程多线程的一些需要注意的事项。 知识点 线程(Thread)也叫轻量级进程࿰…...
万字长文解析!复现和使用GPT-3/ChatGPT,你所应该知道的
关于作者 英文原版作者:杨靖锋,现任亚马逊科学家,本科毕业于北大,硕士毕业于佐治亚理工学院,师从 Stanford 杨笛一教授。 杨昊桐 译,王骁 修订 感谢靳弘业对第一版稿件的建议,感谢陈三星&am…...
Kaldi语音识别技术(八) ----- 整合HCLG
Kaldi语音识别技术(八) ----- 整合HCLG 文章目录Kaldi语音识别技术(八) ----- 整合HCLGHCLG 概述组合LG.fst可视化 LG.fst组合CLG.fst可视化CLG.fst生成H.fst组合HCLG.fst生成HaCLG.fst生成HCLG.fstHCLG 概述 HCLG min(det(H o min(det(C o min(det(L o G))))) 将…...
day17_异常
今日内容 上课同步视频:CuteN饕餮的个人空间_哔哩哔哩_bilibili 同步笔记沐沐霸的博客_CSDN博客-Java2301 零、 复习昨日 一、作业 二、异常 三、自定义异常 零、 复习昨日 见晨考 一、作业 package com.qf.homework;import java.text.ParseException; import java.text.Simpl…...
vue中把node-sass换成dart-sass方式(解决办法)
目录 一、替换原因 二、art-sass和node-sass的区别 三、替换方法 一、替换原因 因为node-sass和node.js版本关联太紧了,如果这两个版本不匹配,就会起冲突,导致项目无法运行。 ps:值得一提的是node版本和要运行的项目使用的依…...
深入浅出深度学习Pytroch
本文将以通俗易懂的方式,深入浅出地为您揭开深度学习模型构建与训练的面纱: 深度学习数据data模型model损失函数loss优化optimizer可视化visualizer深度学习 数据data 模型model 损失函数loss 优化optimizer 可视化visualizer深度学习数据data模型m…...
CCNP350-401学习笔记(451-500题)
451、what is the function of the LISP map resolver? A. to send traffic to non-LISP sites when connected to a service provider that does not accept nonroutable EIDs as packet sources B. to connect a site to the LISP-capabie part of a core network, publish …...
3年功能测试经验,面试想拿到15k很难吗?
一直觉得经验多,无论在哪都能找到满意的工作,但是现实却是给我打了一个大巴掌!事后也不会给糖的那种... 个人情况 大概介绍一下个人情况,男,本科,三年多测试工作经验,一毕业因为不成熟的经验以…...
【7/101】101次面试之测试技术面试题
01、什么是兼容性测试?兼容性测试侧重哪些方面?答:兼容性测试是一种软件测试类型,它的主要目的是确保一个应用程序在不同的操作系统、不同的浏览器、不同的设备、不同的网络环境等各种环境下能够正常运行,并且不会产生…...
【蓝桥杯每日一题】前缀和算法
🍎 博客主页:🌙披星戴月的贾维斯 🍎 欢迎关注:👍点赞🍃收藏🔥留言 🍇系列专栏:🌙 蓝桥杯 🌙我与杀戮之中绽放,亦如黎明的花…...
【C#基础】C# 常用数据结构
序号系列文章4【C#基础】C# 变量和常量的使用5【C#基础】C# 运算符总结6【C#基础】C# 常用语句讲解文章目录前言数据结构的概念1,数组 (Array)1.1,声明并初始化赋值1.2,访问数组元素1.3,Array 类的使用2&am…...
MySql 及MyBatis数据的批量操作
1、Mybatis操作 1、批量更新 <update id"updateCtcc" parameterType"java.util.List">update ctcc set scan1 where id in<foreach collection"list" item"item" index"index" open"(" close")&qu…...
无代码表格数据库——一个企业数字化新物种
商业活动的“非标”地带在现实商业活动中存在大量未被明确界定、规范和标准化的灰色地带,它们不像电信、金融、财会、证券经纪、保险、建筑设计、工程造价等具有高度专业性的业务板块一样有强制的行业标准、规范甚至从业资格证书加持,下文统称其为非标业…...
第十三届蓝桥杯国赛 C++ C组 F 题、Python B组 E 题——近似GCD(AC)
目录1.近似GCD1.题目描述2.输入格式3.输出格式4.样例输入5.样例输出6.数据范围7.原题链接2.解题思路3.Ac_code1.C2.Python1.近似GCD 1.题目描述 小蓝有一个长度为 nnn 的数组 A(a1,a2,⋯,an)A\left(a_{1}, a_{2}, \cdots, a_{n}\right)A(a1,a2,⋯,an), 数组的子数组被定…...
分享5款小众良心软件,好用到让人惊艳
目前win7渐渐退出视野,大部分人都开始使用win10了,笔者在日常的工作和使用中,为了能够让效率的大提升,下载了不少软件,以下的软件都是个人认为装机必备,而且都是可以免费下载,且没有插件的。 1…...
WAF是什么?一篇文章带你全面了解WAF
WAF是什么?一篇文章带你全面了解WAF 文章目录WAF是什么?一篇文章带你全面了解WAFWAF是什么?一、WAF的工作原理二、WAF的分类三、WAF的特点四、如何选择和部署WAFWAF是什么? Web应用程序防火墙(Web Application Firewa…...
django项目实战八(django+bootstrap实现增删改查)进阶验证码
目录 一、安装第三方 1、pillow 2、第三方字体文件 二、实现生成验证码 1、创建code.py 2、url 3、修改auth.py 4、修改account.py 5、修改login.html 三、验证码校验 1、验证码写入到session 2、修改form下的LoginForm类新增code字段 3、修改login.html 4、修改acco…...
IP 协议
1.IP协议报头如下图:版本号 代表的是当前的IP协议的版本,此处的版本一共有两个取值:v4和v6.本文着重针对v4版本进行解析.首部长度 代表的是整个IP报头的长度,这个报头长度是可变长的,可变长的原因在于报头中的选项,这个属性是一个可有可无的属性,会改变报头长度,它的单位是32bi…...
从零开始学SCL:手把手教你实现天塔之光、数码管显示等工业控制案例(含避坑指南)
从零开始学SCL:手把手教你实现天塔之光、数码管显示等工业控制案例(含避坑指南) 工业自动化领域中,PLC编程是核心技能之一。而SCL(Structured Control Language)作为IEC 61131-3标准中的高级文本语言&#…...
OpenClaw人人养虾:密钥管理
Gateway 提供安全的密钥管理(Secrets Management)功能,用于加密存储 API Key、Token 等敏感凭证,避免在配置文件中暴露明文。为什么需要密钥管理明文风险将 API Key 直接写在配置文件中存在严重安全风险:配置文件可能被…...
EverythingPowerToys自定义程序集成:扩展外部应用打开方式的完整教程
EverythingPowerToys自定义程序集成:扩展外部应用打开方式的完整教程 【免费下载链接】EverythingPowerToys Everything search plugin for PowerToys Run 项目地址: https://gitcode.com/gh_mirrors/ev/EverythingPowerToys EverythingPowerToys是一款强大的…...
PasteMD助力程序员提效:代码片段/日志/报错信息一键转高亮Markdown
PasteMD助力程序员提效:代码片段/日志/报错信息一键转高亮Markdown 1. 引言:从杂乱文本到优雅文档的烦恼 你有没有过这样的经历?在技术讨论群里,同事发来一段报错日志,密密麻麻的堆栈信息挤在一起,看得人…...
3步快速设置Windows任务栏透明美化:TranslucentTB新手完整指南
3步快速设置Windows任务栏透明美化:TranslucentTB新手完整指南 【免费下载链接】TranslucentTB A lightweight utility that makes the Windows taskbar translucent/transparent. 项目地址: https://gitcode.com/gh_mirrors/tr/TranslucentTB 想要让Windows…...
LiuJuan Z-Image效果对比展示:BF16 vs FP16在人像细节与稳定性上的差异
1. 1. 1. 1. 1. 1. 1. 1. 1. 概述 1. 1. 1. 概述 1. 1. 概述 1. 概述 1. 概述 1. 概述 1. 概述 1. 概述 1. 1. 概述 1. 概述 1. 概述 1. 概述 1. 1. 概述 1. 概述 1. 概述 1. 概述 1. 概述 1. 概述 1. 概述 1. 概述 1. 概述 1. 概述 1. 概述 1. 概述 1. 概述 1. 概述 1. 概述 1…...
【进阶指南】VSCode + Clang-Format:从零定制你的专属代码风格(130+配置项实战解析)
1. 为什么需要定制代码风格? 当你第一次接触代码格式化工具时,可能会觉得默认配置已经足够好用。但当你参与过几个团队项目后,就会发现统一的代码风格有多重要。我曾经接手过一个遗留项目,里面混杂着五种不同的缩进风格——有用制…...
Qwen3-VL-4B-Instruct:多模态视觉语言模型的技术演进与实践指南
Qwen3-VL-4B-Instruct:多模态视觉语言模型的技术演进与实践指南 【免费下载链接】Qwen3-VL-4B-Instruct 项目地址: https://ai.gitcode.com/hf_mirrors/unsloth/Qwen3-VL-4B-Instruct 技术突破:重新定义多模态交互范式 Qwen3-VL-4B-Instruct作为…...
Blender多材质合并与Three.js统一渲染:从烘焙到GLB导出的完整指南
1. 多材质模型合并的核心痛点 在Blender中合并多个模型时,即使将它们合并为单一Mesh对象,导出为GLB格式后在Three.js中仍然会被拆分成多个Mesh。这个问题困扰过不少开发者,我自己在早期项目中也踩过这个坑。根本原因在于:Three.js…...
