Postman接口自动化持续集成及报告结果通知

接口测试脚本一般的执行流程

   做接口测试的话,首先要考虑的是如何选择一个合适的工具?在忽略工具是否好用,是否能满足业务要求的前提下,需要考虑以下2点:

1、要考虑工具的学习成本

2、要考虑团队的协作

 接口测试脚本的执行流程:

团队成员协作编写接口用例->用例归档到git/svn->脚本集成jenkins,在环境更新后自动触发执行或定时执行。

Postman工具常见的接口测试流程是怎样的?

使用Postman+Newman+Git+Jenkins+钉钉/邮件提醒                                                                                                          

Windows系统Newman安装

1、下载Node.js进行安装,然后配置node的环境变量                                                

2、借助npm工具,安装Newman

npm install -g newman

3、运行Newman

通过Newman来运行某个postman脚本:

newman run  mycollection.json

用newman执行postman脚本的效果如下:

Centos系统Newman安装

1、先下载安装nodejs (必须安装10.0以上的版本)

从http://nodejs.cn/download/下载linux系统压缩包 ,,解压,配置环境变量    

tar xvJf ***.tar.xz
echo "export PATH=\"\$PATH:/root/tools/node-v14.8.0-linux-x64/bin\"" \ >> ~/.bash_profile &&
source ~/.bash_profile

                                                                                             

2、安装Newman

npm install -g newman

以上通过命令安装如果问题的话 ,可以百度解决。

命令行执行Postman脚本生成测试报告

1、命令行执行脚本的最基本的命令

newman run xxx.json 

2、生成html格式的报告

先安装插件:npm install -g newman-reporter-html

newman run demo.postman_collection.json -r html 

3、优化报告显示格式,生成美观一点的html格式报告

先安装插件:npm install -g newman-reporter-htmlextra

newman run demo.postman_collection.json -r htmlextra

注意事项:

1、-r参数是--reporters的缩写,可以在参数后面指定需要生成的报告格式 ,比如 -r html,junit,json,htmlextra  ,这个会在当前目录下生成一个newman的文件夹,报告都在newman的文件夹下面:

2、也可以加上下面的参数指定报告名称:(报告默认生成在当前执行命令的路径下 ,也可以自己在报告名称前加上指定路径生成)

--reporter-html-export htmlReport.html 

--reporter-htmlextra-export htmlExtraReport.html 

--reporter-junit-export junitReport.html 

--reporter-json-export jsonReport.html 

3、在使用npm命令安装newman以及其他的包时,建议都加上-g 参数 ,给所有用户都安装对应的包,避免在使用命令时报错。

使用npm安装如果比较慢,可以先执行下面的命令,切换下载源的地址:

npm config set registry https://registry.npm.taobao.org

4、通过newman-reporter-htmlextra插件生成的html报告,默认是不包含css样式文件的,如果是发给别人访问 ,在断网的情况下查看报告,样式是加载不了的。目前查了一下,好像没有类似allure里面的那种参数,可以把报告所需的样式和报告一起导出,不过这个插件支持自定义报告模板,可以自己手动将css样式文件导出到某个位置,然后修改报告模板汇总引用的文件去解决这个问题。

Postman脚本持续集成

通过上面的描述 ,现在已经可以将postman脚本生成报告了,离集成jenkins只差最后的配置工作了:

1、在gitee上新建一个仓库,将postman调试好的脚本导出成json文件,上传到gitee上 (上传到gitee仓库的话,可以方便团队不同成员之间可以更改和查看用例),后续有脚本变更的时候也可以直接更新到git上进行存储,git上也可以按版本按分支存放你的测试脚本

2、搭建好jenkins环境,并配置好npm的环境以及安装好newman执行环境

3、新建一个自由风格的job,配置从git上获取脚本:

勾选构建环境下的清除工作空间目录的配置,将之前的报告清除(如果执行命令生成报告时自己指定了报告名称的话 ,也可以不清除工作空间的文件)

添加执行batch命令 / shell命令,命令内容如下:

# batch命令
cd /d  %WORKSPACE%
newman run demo.postman_collection.json -r htmlextra --reporter-htmlextra-export ./report/htmlExtraReport.html 
或者
# shell 命令
cd $WORKSPACE
newman run demo.postman_collection.json -r htmlextra --reporter-htmlextra-export ./report/htmlExtraReport.html newman run demo.postman_collection.json -r htmlextra --reporter-htmlextra-export ./report/htmlExtraReport.html

然后再构建后操作那里 ,添加报告的展示:

需安装HTML Publisher plugin插件

构建后 ,即可在jenkins上看到HTML报告:

发送钉钉通知

由于现在很多企业办公通讯都是用钉钉 ,那么接口自动化的脚本执行完之后,是可以讲结果发送到指定的钉钉群里面的。

准备工作:钉钉帐号,在钉钉上创建指定机器人 ,jenkins上安装DingTalk插件。

钉钉PC端机器人创建操作:

钉钉左上角用户头像处->机器人管理->创建自定义机器人

设置机器人名称、指定消息通知的群、安全设置下可以设置自定义关键字,然后点击完成,然后页面会生成一个webhook的地址

安装Jenkins上的DingTalk插件,进入系统配置页面,找到钉钉的配置:

然后进入postman脚本执行的job配置页面,勾选需要通知的机器人名称即可。

构建开始和结束后就会收到钉钉通知:

解决jenkins上无法展示HTML样式的问题

由于安全考虑,jenkins默认是禁止了外部的css和js的加载的,因此html报告显示会出现异常,常见的解决方案有以下几种:

1、在jenkins系统管理->脚本命令行 输入以下脚本运行:(此方案重启jenkins失效)

System.setProperty("hudson.model.DirectoryBrowserSupport.CSP", "")

2、利用jenkins的插件,在启动节点的时候自动触发某个job去执行groovy脚本。搜索安装Startup Trigger和Groovy插件即可。

配置一个job,然后在job中执行groovy脚本:

System.setProperty("hudson.model.DirectoryBrowserSupport.CSP", "")

3、以windows服务或者java -jar的方式启动的jenkins,可以修改jenkin.xml文件中的启动命令,加入参数

-Dhudson.model.DirectoryBrowserSupport.CSP=

4、用tomcat部署的jenkins,可以直接改catalina.bat文件,找到tomcat/bin下的catalina.bat文件,用Notepad++打开,加上一行代码

set JAVA_OPTS="-Dhudson.model.DirectoryBrowserSupport.CSP"

 

扩展学习

1、newman的其他用法(比如执行命令的时候加载环境变配置、设置执行次数等):

https://www.npmjs.com/package/newman

                                                                                                                               

2、newman-reporter-htmlextra插件的其他用法(比如报告过滤数据,设置标题等):

https://www.npmjs.com/package/newman-reporter-htmlextra

3、钉钉通知在jenkins上的配置,还可以指定具体通知的人等高级用法,可以自己查资料扩展一下.觉得钉钉插件提醒不好用的话,也可以自己写脚本调用钉钉的接口发送消息提醒。

原文地址:https://blog.51cto.com/u_7739395/2736323

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐


基础环境、流程图1)流程图jenkinspipeline发布应用2)、jenkins上安装kubectl#主节点上查看kubectl位置[root@k8s01~]#whichkubectl/usr/bin/kubectl#将k8s节点的kubectl文件cp至jenkinsscp10.0.0.101:/usr/bin/kubectl.cp./kubectl/usr/local/bin/kubectl
本节是建立在流水线入门内容的基础上,而且,应当被当作一个参考。对于在实际示例中如何使用流水线语法的更多信息,请参阅本章在流水线插件的2.5版本中的使用Jenkinsfile部分,流水线支持两种离散的语法,具体如下对于每种的优缺点,参见语法比较。正如本章开始讨论的,流水线最
Linuxcentos7安装Jenkins(jenkins-2.227-1.1.noarch.rpm)时遇到问题:1.出现问题1:安装jenkins一直失败,提示Nosuchfileordirectory[helen@linuxprobeJenkins]$sudorpm-ivhjenkins-2.227-1.1.noarch.rpmPreparing...####################
作为一个拥有很多账号的当代美少女,忘记用户名密码什么的是再正常不过的事了。“忘记密码”这一功能给我真的带来了很大的福音啊。但是最近重新使用Jenkins时,看到需要输入用户名密码,顿时脑子一片空白。经过一系列的查找,终于解决了问题,害,只有把方法记下来才是王道,以后妈妈再
Jenkins、GitLab和Maven(Nexus)完成自动构建迈向持续集成持续集成,毋庸置疑的是这是两部分要求,一个是持续一个是集成,那么持续和集成到底表示了什么要求和含义呢?其中的集成比较容易理解就是指开发人员将自己开发的代码不断地交付给全部系统的代码,在Git仓的概念之下也就是不断地
 下载文档https://www.jenkins.io/zh/download/  Debian下载1.下载安装keyhttps://pkg.jenkins.io/debian-stable/jenkins.io.key  
流水线建设从Jenkins部署开始Jenkins是一个独立的开源自动化服务器,可以用来自动化,例如构建、测试和部署软件等各种任务,是一个实现CI(持续集成)的很好的工具。Jenkins可以通过本地系统包、Docker安装,甚至可以在安装Java运行时环境的机器上独立运行。JenkCI/CD的概念谈到持
原因:这种情况是SSHServer中的RemoteDirectory路径不存在。解决方法:重新输入目标服务器中存在的路径。      
什么是持续集成持续集成(Continuousintegration,简称CI)指的是,频繁地(一天多次)将代码集成到主干。持续集成的目的,就是让产品可以快速迭代,同时还能保持高质量。它的核心措施是,代码集成到主干之前,必须通过自动化测试。只要有一个测试用例失败,就不能集成。通过持续集成,团
Tomcat安装:1.下载Tomcat包:http:/omcat.apache.org/并解压2.启动:双击bin\startup.bat文件浏览器访问:http://localhost:8080/3.Tomcat配置登录:打开confomcat-users.xml文件添加如下代码:<rolerolename="manager-gui"/><userusername="admin"password=&q
文章目录jenkinscron笔记简介H符号(hash的简写)别名例子jenkinscron笔记简介jenkinscron遵循普通cron的语法,略有不同,每行包含五个字段可以使用Tab和空行分割分钟小时日月周0-590-231-311-120-7(0和7都表示周日)可以使用以下操作符为一个字段指定多个值(按照
1.nginx的配置location/jenkinsno{indexindex.htmlindex.htm;proxy_passhttp://127.0.0.1:8081;proxy_connect_timeout3000s;proxy_send_timeout3000s;proxy_read_timeout3000s;prox
1、下载安装插件下载地址:http://files.jetbrains.org.cn/aliyun-oss.hpi在Jenkins中安装插件,请到ManageJenkins->Advanced->Upload,上传插件(.hpi文件)安装完毕后请重新启动Jenkins2、搜索安装jenkins插件安装3、安装完成以后配置阿里云oss账号oss这边设置:(账号的权限也要
首先将构建历史清除Jenkins构建历史删除与重置然后进入Jenkins服务器工作目录oot/.jenkinstar-czvfjobs.tarjobs 将jobs打包将job.tar文件复制到新Jenkins服务器相同目录下解压tar包 tar-zxvfjob.tar登录新JenkinsJenkins-系统管理-读取配置,只有点击了读取配置,原
一、动态生成Slave1.1、简介之前我们都是在物理机或者虚拟机上部署jenkins,但是这种部署方式会有一些难点,如下:主Master发生单点故障时,整个流程都不可用了每个Slave的配置环境不一样,来完成不同语言的编译打包等操作,但是这些差异化的配置导致管理起来非常不方便,维护起来也是
from jenkins import Jenkins# 判断job是否运行结束def build():    job = 'branch-deploy-wap'    params = {        'server_ip': '10.160.30.XXX',        'server_username': 'root',        'server_userpass&#
背景client端执行webUI自动化测试时依赖操作系统上安装了对应的浏览器,并且浏览器与驱动要进行版本的对应——而selenium是可以部署集群,通过远程的方式执行对应的自动化用例,方便高效。原理1、通过代码可知,自动化运行的主类接收了任务id,获取到任务信息后根据任务类型判断进行接口
背景工具选择架构设计及技术实现参数设计断言持续集成测试集编写总结  一、背景1.目前公司发展比较迅速,还处于不停堆业务阶段,所以迭代比较频繁,导致人工回归的成本越来越大2.在有限的测试资源情况下,开发自测的需求占比不低,后端频繁发布容易心里没底
本地pycharm打开项目,运行自动化项目下载项目代码,并用pycharm打开项目gitclonehttps://gitee.com/iread9527/iInterface_python.git进入iInterface_python目录下,cdiInterface_python使用pip3install-rrequirements.txt命令,安装python项目依赖的第三方库使
Jenkins邮件设置一、简介最近有朋友问Jenkins邮件设置的问题,想起来当时也是碰到不少坑,网上看了很多博客说的解决办法根本没有用。最后我解决了这个问题,在此记录一下,希望能够帮助到在网上搜了半天仍然徒劳无功的朋友们,我懂那种失败了一次又一次的感觉,希望能帮到大家。二、配置步