Postman+Newman+Git+Jenkins实现接口自动化测试持续集成

简介: 做接口测试的话,首先要考虑的是如何选择一个合适的工具?在忽略工具是否好用,是否能满足业务要求的前提下,需要考虑以下2点:1、要考虑工具的学习成本2、要考虑团队的协作

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

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

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

2、要考虑团队的协作

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

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




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



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

Windows系统Newman安装


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

2、借助npm工具,安装Newmannpm install -g newman

3、运行Newman

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

newman run  mycollection.json

用newman执行postman脚本的效果如下:微信图片_20220113180831.jpg


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、安装Newmannpm install -g newman以上通过命令安装如果问题的话 ,可以百度解决。


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


1、命令行执行脚本的最基本的命令newman run xxx.json


微信图片_20220113180839.png


2、生成html格式的报告先安装插件:npm install -g newman-reporter-htmlnewman run demo.postman_collection.json -r html



微信图片_20220113180841.png


3、优化报告显示格式,生成美观一点的html格式报告
先安装插件:npm install -g newman-reporter-htmlextranewman run demo.postman_collection.json -r htmlextra


微信图片_20220113180843.png


注意事项:

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


微信图片_20220113180846.png


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上获取脚本:


微信图片_20220113180848.png


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


微信图片_20220113180851.png



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


微信图片_20220113180853.png

# 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插件


微信图片_20220113180856.png


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

微信图片_20220113180858.png


发送钉钉通知


由于现在很多企业办公通讯都是用钉钉 ,那么接口自动化的脚本执行完之后,是可以讲结果发送到指定的钉钉群里面的准备工作:钉钉帐号,在钉钉上创建指定机器人 ,jenkins上安装DingTalk插件。
钉钉PC端机器人创建操作:
钉钉左上角用户头像处->机器人管理->创建自定义机器人


微信图片_20220113180901.png


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


微信图片_20220113180903.png



微信图片_20220113180905.png


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


微信图片_20220113180907.png


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


微信图片_20220113180910.png


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


微信图片_20220113180913.png


解决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上的配置,还可以指定具体通知的人等高级用法,可以自己查资料扩展一下.觉得钉钉插件提醒不好用的话,也可以自己写脚本调用钉钉的接口发送消息提醒。


相关文章
|
3月前
|
敏捷开发 测试技术 持续交付
探索软件测试中的自动化与持续集成
在快速迭代的软件开发环境中,自动化测试和持续集成(CI)已成为确保产品质量和加速交付的关键策略。本文将深入探讨自动化测试的基本原理、实施步骤以及它如何与持续集成流程相结合,以提高软件开发的效率和可靠性。我们将通过实际案例分析,展示自动化测试和CI的最佳实践,以及它们如何帮助企业实现更快的市场响应时间和更高的客户满意度。
79 16
|
3月前
|
机器学习/深度学习 人工智能 jenkins
软件测试中的自动化与持续集成实践
在快速迭代的软件开发过程中,自动化测试和持续集成(CI)是确保代码质量和加速产品上市的关键。本文探讨了自动化测试的重要性、常见的自动化测试工具以及如何将自动化测试整合到持续集成流程中,以提高软件测试的效率和可靠性。通过案例分析,展示了自动化测试和持续集成在实际项目中的应用效果,并提供了实施建议。
|
1月前
|
存储 测试技术 API
pytest接口自动化测试框架搭建
通过上述步骤,我们成功搭建了一个基于 `pytest`的接口自动化测试框架。这个框架具备良好的扩展性和可维护性,能够高效地管理和执行API测试。通过封装HTTP请求逻辑、使用 `conftest.py`定义共享资源和前置条件,并利用 `pytest.ini`进行配置管理,可以大幅提高测试的自动化程度和执行效率。希望本文能为您的测试工作提供实用的指导和帮助。
109 15
|
2月前
|
机器学习/深度学习 人工智能 jenkins
探索软件测试中的自动化与持续集成
【10月更文挑战第21天】 在软件开发的生命周期中,软件测试扮演着至关重要的角色。随着技术的进步和开发模式的转变,自动化测试和持续集成已经成为提高软件质量和效率的关键手段。本文将深入探讨自动化测试和持续集成的概念、实施策略以及它们如何相互配合以优化软件开发流程。我们将通过分析实际案例,展示这些技术如何在实际项目中发挥作用,以及面临的挑战和解决方案。此外,文章还将讨论未来趋势,包括人工智能在测试领域的应用前景。
97 17
|
2月前
|
监控 jenkins Linux
从 Jenkins 持续集成出发:探究如何监控员工电脑屏幕
Jenkins 在企业信息化管理中用于自动化构建、测试和部署,提高开发效率。本文讨论了其重要性,并从技术角度探讨了屏幕监控的可能性,但明确反对非法监控,强调应合法合规地管理企业和尊重员工隐私。
94 12
|
2月前
|
移动开发 jenkins 持续交付
jenkins配置git
通过上述步骤,您可以在 Jenkins 中成功配置 Git,从而实现自动拉取代码并进行构建和部署。这些配置不仅提高了开发效率,还保证了代码的连续集成和交付。确保每一步配置正确,以避免在实际使用中遇到问题。
116 1
|
3月前
|
jenkins 测试技术 持续交付
探索自动化测试在持续集成中的应用与挑战
本文深入探讨了自动化测试在现代软件开发流程,特别是持续集成(CI)环境中的关键作用。通过分析自动化测试的优势、实施策略以及面临的主要挑战,旨在为开发团队提供实用的指导和建议。文章不仅概述了自动化测试的基本原理和最佳实践,还详细讨论了如何克服实施过程中遇到的技术难题和管理障碍,以实现更高效、更可靠的软件交付。
|
2月前
|
jenkins 测试技术 持续交付
软件测试中的自动化与持续集成
在现代软件开发过程中,自动化测试和持续集成已成为不可或缺的组成部分。本文将深入探讨自动化测试和持续集成的重要性、优势以及如何有效实施它们以提升软件质量和开发效率。通过具体案例分析,我们将展示这些技术如何在实际项目中发挥作用,并讨论其面临的挑战及应对策略。
79 3
|
3月前
|
监控 jenkins 测试技术
探索软件测试中的自动化与持续集成####
本文旨在探讨软件测试中自动化测试与持续集成(CI)的融合实践,分析其对提升软件开发效率和质量的重要性。通过深入剖析自动化测试的优势、持续集成的核心概念以及两者结合的最佳实践案例,揭示这一技术趋势如何重塑现代软件开发流程。文章还将讨论实施过程中的挑战和应对策略,为读者提供一套实用的方法论指导。 ####
|
3月前
|
运维 jenkins Java
Jenkins在持续集成与持续部署中的价值
Jenkins在持续集成与持续部署中的价值