接口自动化测试-Postman+Newman+Git+Jenkins实战集成(详细)

目录:导读

    • 前言
    • 一、Python编程入门到精通
    • 二、接口自动化项目实战
    • 三、Web自动化项目实战
    • 四、App自动化项目实战
    • 五、一线大厂简历
    • 六、测试开发DevOps体系
    • 七、常用自动化测试工具
    • 八、JMeter性能测试
    • 九、总结(尾部小惊喜)


前言

1、Postman

创建Collection,在Collection中创建接口请求,如下图所示。

A1

编写接口对应的断言Test和Pre-request Script,如下图所示。

A2

配置接口对应的环境变量或全局变量。

A3

导出接口集合Collection和导出对应接口的环境变量,导出生成的是JSON文件。

A4

之前有写过postman接口测试文章,可以查阅:https://blog.csdn.net/shuang_waiwai/article/details/122215241

2、Newman

newman是Postman的命令集合运行器,可以通过它直接从命令行运行和测试Postman,以便后续在持续集成服务器构建。

Newman 是 Postman 推出的一个 nodejs 库,直接来说就是 Postman 的json文件可以在命令行执行的插件。

淘宝镜像全局安装newman的命令:

npm install -g newman --registry=https://registry.npm.taobao.org

安装成功,如下图所示,显示newman成功安装好的版本号。

A5

验证newman是否安装成功,查看newman版本号命令:newman -version

A6

常用Newman语法:

运行命令 newman run URL连接 或 newman run 集合文件名
-e,- environment <path>:指定Postman环境的URL或路径。
-g,–globals:指定全局变量的文件地址或url
-d,—-iteration-data:指定用于迭代的数据源文件路径
-n,–iteration-count:指定迭代次数
–export-globals:导出全局环境变量
–timeout (ms):设置整个集合运行完成执行的时间
–export-collection:导出集合文件
–timeport-request (ms):指定等待请求返回响应的时间
–timeout-script (ms):指定等待脚本执行完成的时间

我们可通过cmd终端查看newman run运行时可以所带的相关参数。newman run -h查看所有相关参数语法,如下图所示。

A7

Newman实例:

该newman run命令允许您指定要运行的集合。您可以轻松地从Postman App中将Postman Collection导出为json文件,并使用Newman运行它。

newman run examples/sample-collection.json

例:运行Postman导出的接口集合及环境变量,打开cmd,定位至Json文件目录,输入newman运行命令。

newman run Test.postman_collection.json -e mukeOnline.postman_environment.json

run运行接口集合的命令,-e 带入接口集合的环境变量

我们在cmd终端定位至接口集合和环境变量的JSON文件目录,运行命令行结果如下图:

A8

由上面的运行可看出在cmd终端运行的结果不太方便测试人员的查看与测试报告的形成。那么我们如何利用newman命令来生成输出测试报告文件?

指定测试报告的导出格式:
目前支持四种格式:cli,json,html,junit

--reporter-{{reporter-name}}-{{reporter-option}}

支持同时导出多种测试报告格式

JSON --reporter-json-export <path>

HTML --reporter-html-export <path>

JUNIT/XML --reporter-junit-export <path>

我们还拿上面的集合和环境变量来举例,生成HTML报告时需要安装html套件,命令行中执行:

npm install -g newman-reporter-html --registry=https://registry.npm.taobao.org

安装newman-reporter-html,如下图

A9

运行命令,即可在文件目录下查看生成的HTML文件形式的测试报告。

newman run Test.postman_collection.json -e mukeOnline.postman_environment.json -r html --reporter-html-export report.html

生成的HTML测试报告文件,如下图所示。

A10

我们可以看出用上面HTML生成的报告样式比较简单,怎么让我们的报告显得高大上呢?那么我们就得使用Htmlextra套件。

首先安装使用htmlextra套件生成比较高级的html报告,使用方法和html的相同,需要安装htmlextra,命令行中输入:

npm install -g newman-reporter-htmlextra

安装成功,如下图所示。

A11

我们把上面的接口集合用例再执行一下,看看这个测试报告的效果如何。newman运行命令如下。

newman run Test.postman_collection.json -e mukeOnline.postman_environment.json -r htmlextra --reporter-html-export htmlReport.html

测试报告结果如下图,可看出报告的样式比之前好多了。

A12

3、Git

下载GitExtensions和Git,将Postman导出的json文件上传至github上,拉取下来可进行迭代。这里不过多说明,可自行查找资料。

A13

4、Jenkins

Jenkins是一个开源的、可扩展的持续集成、交付、部署(软件/代码的编译、打包、部署)的基于web界面的平台。允许持续集成和持续交付项目,无论用的是什么平台,可以处理任何类型的构建或持续集成。

下载Jenkins地址:https://www.jenkins.io/download/,下载后并安装。

之前写过文章:https://blog.csdn.net/shuang_waiwai/article/details/120707562

5、Jenkins配置Git与Newman

新建Item,选择Freestyle project

A14

任务的Git地址、证书与分支的相关配置

A15

设置构建newman运行命令

newman run Test.postman_collection.json -e mukeOnline.postman_environment.json

A16

设置好后保存,点击Build Now

A17

生成构建结果

A18

构建后生成Junit报告,Git上新建空xml文件,nweman运行命令指向该xml文件。构建前运行命令修改为

newman run Test.postman_collection.json -e mukeOnline.postman_environment.json -r junit --reporter-junit-export newman\xmlReport.xml

A19

运行结果测试报告可在Test Result中可查看。

A20

设置定时任务
Build periodically 每天上午10点构建一次  H 10 * * *,如下图所示。

A21

下面是我整理的2023年最全的软件测试工程师学习知识架构体系图

一、Python编程入门到精通

请添加图片描述

二、接口自动化项目实战

请添加图片描述

三、Web自动化项目实战

请添加图片描述

四、App自动化项目实战

请添加图片描述

五、一线大厂简历

请添加图片描述

六、测试开发DevOps体系

请添加图片描述

七、常用自动化测试工具

请添加图片描述

八、JMeter性能测试

请添加图片描述

九、总结(尾部小惊喜)

努力奋斗,不断超越,每一次努力都是向成功迈进的脚步;热爱生活,积极向上,用心去感受世界的美妙。相信自己的能力,勇攀高峰,创造属于自己的华丽篇章,绽放人生的绚丽花朵。

在追逐梦想的路上,时间是我们最宝贵的资本,坚持是驱动成就的动力,奋斗是创造辉煌的密码。相信自己,不畏困难,用汗水和智慧塑造出璀璨人生的华章。

梦想是指引前行的明灯,奋斗是实现梦想的行动;勇敢冲破束缚,超越自我限制,释放内心的热情与才能。相信自己的力量,坚持不懈,创造出追求卓越的辉煌人生。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/55716.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

[语义分割] LR-ASPP(MobileNet v3、轻量化、16倍下采样、膨胀卷积、ASPP、SE)

Searching for MobileNetV3 论文地址&#xff1a;Searching for MobileNetV3Pytorch 实现代码&#xff1a; https://github.com/WZMIAOMIAO/deep-learning-for-image-processing/tree/master/pytorch_segmentation/lrasppMobileNet v3 LR-ASPP 这篇论文就是 MobileNet v3 的论…

golang interface类型的nil

golang中interface变量&#xff0c;底层两个对象来存&#xff0c;一个是type、一个是value&#xff0c;只有type、value都为nil时&#xff0c;interface变量才是nil package mainimport ("fmt""reflect" )type People interface {Show() }type Student str…

【数据结构】带头+双向+循环链表(DList)(增、删、查、改)详解

一、带头双向循环链表的定义和结构 1、定义 带头双向循环链表&#xff0c;有一个数据域和两个指针域。一个是前驱指针&#xff0c;指向其前一个节点&#xff1b;一个是后继指针&#xff0c;指向其后一个节点。 // 定义双向链表的节点 typedef struct ListNode {LTDataType dat…

LeetCode[面试题04.08]首个共同祖先

难度&#xff1a;Medium 题目&#xff1a; 设计并实现一个算法&#xff0c;找出二叉树中某两个节点的第一个共同祖先。不得将其他的节点存储在另外的数据结构中。注意&#xff1a;这不一定是二叉搜索树。 例如&#xff0c;给定如下二叉树: root [3,5,1,6,2,0,8,null,null,7,…

Shiro框架基本使用

一、创建maven项目&#xff0c;引入依赖 <dependencies><dependency><groupId>org.apache.directory.studio</groupId><artifactId>org.apache.commons.codec</artifactId><version>1.8</version></dependency><!-- …

【Redis深度专题】「核心技术提升」探究Redis服务启动的过程机制的技术原理和流程分析的指南(集群指令分析—上篇)

探究Redis服务启动的过程机制的技术原理和流程分析的指南&#xff08;Redis集群管理&#xff09; Redis集群管理查看集群中各个节点状态集群(cluster)cluster info的执行效果指令结果分析 cluster nodes的执行效果指令结果分析 节点(node)CLUSTER MEETCLUSTER FORGETCLUSTER RE…

Excel透视表与python实现

目录 一、Excel透视表 1、源数据 2、数据总分析 3、数据top分析 二、python实现 1、第一张表演示 2、第二张表演示 一、Excel透视表 1、源数据 1&#xff09;四个类目&#xff0c;每类50条数据 2&#xff09;数据内容 2、数据总分析 1&#xff09;选择要分析的字段&…

TCP的三次握手以及四次断开

TCP的三次握手和四次断开&#xff0c;就是TCP通信建立连接以及断开的过程 目录 【1】TCP的三次握手过程 ---- TCP建立连接的过程 【2】TCP的四次挥手 ---- TCP会话的断开 注意&#xff1a; 【1】TCP的三次握手过程 ---- TCP建立连接的过程 三次握手的过程&#xff1a…

TPC-DS 标准介绍、工具下载地址

目录 一、TPC-DS标准介绍 1. DMS介绍 2. TCP-DS概念 二、数据库模型 1. 数据库模型介绍 2. 数据库模型包含内容 三、数据生成器 1. 数据生成器介绍 2. 数据生成器包含内容 四、查询集合 1. 查询集合介绍 2. 查询集合包含的88个标准化查询和17个基准统计函数 五、性…

easyui实用点

easyui实用点 1.下拉框&#xff08;input框只能选不能手动输入编辑&#xff09; data-options"editable:false"//不可编辑2.日期框&#xff0c;下拉框&#xff0c;文本框等class class"easyui-datebox"//不带时分秒 class"easyui-datetimebox"…

【C++】C++入门

1.C关键字 2.命名空间 变量、函数和后面学到的类都是大量存在的&#xff0c;这些变量、函数和名称都将存在于全局作用域中&#xff0c;可能会导致一些冲突&#xff0c;比如命名冲突。使用命名空间的目的是对标识符的名称进行本地化&#xff0c;以避免命名冲突和名字污染。 2.1…

Oracle设置某个表字段递增

当Oracle设置字段递增创建触发器 先建一个序列&#xff0c;打开PLSQL 找到Sequences&#xff0c;右击新建 根据自己的需要填写 然后添加触发器&#xff0c;点新建-程序窗口-空白 --TEST_ID为触发器的名字&#xff0c;TEST是添加触发器的表名 CREATE OR REPLACE TRIGGER &qu…

【Ubuntu 18.04 搭建 DHCP 服务】

参考Ubuntu官方文档&#xff1a;https://ubuntu.com/server/docs/how-to-install-and-configure-isc-dhcp-server dhcpd.conf 手册页 配置&#xff1a;https://maas.io/docs/about-dhcp 实验环境规划 Ubuntu 18.04&#xff08;172.16.65.128/24&#xff09;dhcp服务端Ubuntu…

记录--一个好用的轮子 turn.js 实现仿真翻书的效果

这里给大家分享我在网上总结出来的一些知识&#xff0c;希望对大家有所帮助 国际惯例&#xff0c;官网链接 官网传送门 Github地址 github上有几个demos例子&#xff0c;介绍了基础用法。 我参考官网的例子&#xff0c;写了一个demo示例 安装 turn.js 依赖 jquery 库&#xff0…

InnoDB引擎底层逻辑讲解——架构之磁盘架构

1. System Tablespaces区域 系统表空间是change buffer&#xff08;更改缓冲区&#xff09;的存放区域&#xff0c;这是在8.0之后重新规划的&#xff0c;在5.x版本的时候&#xff0c;系统表空间还会存放innodb的数据字典undolog日志等信息&#xff0c;在8.0之后主要主要存放更…

APP开发入门:了解主流的编程语言

在过去的几年里&#xff0c;有许多程序员开始学习和使用编程语言。这其中包括C、C、 Java和 Python。尽管有许多语言可供选择&#xff0c;但大多数程序员都会选择最容易学习的编程语言。 如今&#xff0c;有很多编程语言供选择。程序员们在学习这些语言时可以自由地选择他们喜…

原子操作的重要性

原子操作&#xff1a;要么不做&#xff0c;要么一次性做完 非原子操作 其实ABCD都是对的。 B选项&#xff1a;正常执行&#xff0c;I线程执行2条语句全部执行完毕,再执行II线程重新执行一遍foo函数。 C选项&#xff1a;先执行I线程foo函数第一行代码&#xff0c;然后跳转执行…

蓝牙、GPS定位学习

启动状态&#xff08;APP&#xff09; 冷启动 指在启动应用时&#xff0c;后台没有应用的进程或者进程被杀死的情况下&#xff0c;系统会重新创建一个新的进程&#xff0c;并按照一定的顺序创建和初始化Application类和MainActivity类&#xff0c;最后显示在界面上。这个过程需…

深度学习技巧应用24-深度学习手撕代码与训练流程的联系记忆方法

大家好,我是微学AI,今天给大家介绍一下深度学习技巧应用24-深度学习手撕代码与训练流程的联系记忆方法,大家都知道深度学习模型训练过程是个复杂的过程,这个过程包括数据的收集,数据的处理,模型的搭建,优化器的选择,损失函数的选择,模型训练,模型评估等步骤,其中缺少…

/bin/bash: Resource temporarily unavailable

有现场反馈plsql无法连接数据库了&#xff0c;登录环境查看时发现从root切换到grid时报错/bin/bash: Resource temporarily unavailable [rootdb1 ~]# su - grid Last login: Thu Jul 27 18:45:04 CST 2023 su: failed to execute /bin/bash: Resource temporarily unavailab…