Web API 持续集成:PostMan+Newman+Jenkins(图文讲解)

2018 年 11 月 6 日 开源中国


作者:葡萄城技术团队

链接:

https://my.oschina.net/powertoolsteam/blog/2354154


这篇文章会讲到一系列周期性的开发测试过程:接口开发、检出代码、运行测试、记录结果、发送报告。为了快速发现问题,并减少重复过程以节省时间、费用和工作量,我们需要一套完整的持续集成解决方案,除接口开发之外其他环节全部自动完成,无需太多的人工干预。

 

这篇文章将对持续集成解决方案进行一步一步的讲解,希望对大家能有帮助。

 

1. Web Api 测试工具选型


目前市场有很多的用于API 测试的工具,如Postman, SoapUI, YApi, HttpRunner等等。


在进行了很多的尝试后,我们最终还是决定在Postman和Soap UI间做出抉择,在经过我们详细的对比后:https://my.oschina.net/powertoolsteam/blog/2243550 

最终我们选择了Postman。

 

2. 用Postman创建项目


选型做好了,第二步当然是Postman用起来了,创建自己的项目。参照Postman官网的文档。


https://learning.getpostman.com/docs/postman/collections/intro_to_collections/


  • 创建 LeyserkidsApi项目

 

3. 源码管理


因为我们项目使用TFS做源码管理,这里就以TFS为例。


  • 把Postman中项目LeyserkidsApi的Collection和Envrionment导出为json文件。

  • TFS创建项目LeyserKids,追加Postman导出的JSON文件,进行资源版本管理。接下来展示的项目结构如下:

 

4. Jenkins服务搭建


我们称搭建Jenkins Server的机器为:机器A,后续步骤需要对这台机器安装一些Services。

 

5. Jenkins与TFS关联


  • 创建FreeStyle Project :Test



  • Jenkins主页->Manage Jenkins->Manage Plugins->找到Team Foundation Server插件并安装。

  • 进入Project Test详细页面->Configure->Source Code Management


  • Build Triggers 设置当源码发生变化时,重新构建。可以每天定时构建。

 

6. Jenkins构建(Build)


Newman是用命令行来执行Postman的Collection。可以很容易的和Jenkins集成。Newman是基于Nodejs的,所以首先得安装Nodejs。


  • 在机器A(Jenkins Server)上安装nodejs和newman。参照:https://learning.getpostman.com/docs/postman/collection_runs/command_line_integration_with_newman

  • 进入Test详细页面->Configure ->Build->Add Build Step->Execute Windows batch command->command


 

7. 邮件配置


Jenkins构建之后,发送邮件,通知构建结果。邮件配置步骤如下:


  • Jenkins主页->ManageJenkins->Manage Plugins->找到Email Extension Plugin插件并安装->插件安装之后需要重启jenkins 服务


  • Jenkins主页->Manage Jenkins->Configure System-> Extended E-mail Notification, 配置邮件Server


  • 进入Test详细页面->Configure-> Post-build Actions->Add post-build action(Editable-Email Notification)

    • 进入Test详细页面


    • 对Test进行配置


    • Post-build Actions追加动作:Editable-Email Notification


    • 配置Editable-Email Notification


8. 项目构建



经过以上步骤的配置,构建完成之后,会收到邮件,根据链接在console output查看构建结果,不是很直观。下一步中将进行改善。


 

9. 更优美的邮件模板


默认的邮件内容过于简单,用Email Extension Plugin 提供的Groovy标准HTML模板:groovy-html.template


  • 进入Test详细页面->Configure-> Editable-Email Notification-> Default Content配置模板


  • 重新Build,查看邮件,邮件内容变的易读行,发送错误红色显示很是醒目。成功则显示为绿色,一目了然。


10. 更简洁精炼,美观的构建报告:Html Report


查看Console Output 中的构建结果,易读性差,而且也不美观,所以我们要改进。用newman生成HTML Report,再通过HTML Publisher插件展示到Jenkins。


  • Jenkins主页->ManageJenkins->Manage Plugins->找到HTML Publisher插件并安装。


  • 在机器A(Jenkins Server)上通过Nodejs安装reporter-html-template

    $ npm install -g newman-reporter-html

    newman-reporter-html使用参见:https://github.com/postmanlabs/newman-reporter-html#readme

  • 环境准备好了,把准备好的模板:htmlreqres.hbs上传到TFS项目的templates下。

    我用了https://github.com/MarcosEllys/awesome-newman-html-template 这个小伙伴的模板,进行了些许改造。


  • 进入Test详细页面->Configure-> Execute Windows batch command->command

    把导出的index.html放在了当前Job对于的newman文件夹(文件夹会自动创建)下。此路径将在下一步配置中使用。


  • 进入Test详细页面->Configure-> Post-build Actions->Add post-build action(Publish Html report)

    配置Html Report ,展示上一个步骤生成的Index.html文件。


  • 重新构建,查看生成的HTML Report,结果如下,是不是好很多

    • 进入Test详细,查看最新Html Report


    • 查看某次构建的Report,选中一个build history,查看HTML Report。


    • Report详细


    • 如果你的Report样式或JS脚本加载不正确,解决方案如下:

      https://testerhome.com/topics/9476 


    以上,内容比较多,写的比较粗,欢迎交流。


开源中国征稿开始啦!


开源中国 www.oschina.net 是目前备受关注、具有强大影响力的开源技术社区,拥有超过 200 万的开源技术精英。我们传播开源的理念,推广开源项目,为 IT 开发者提供一个发现、使用、并交流开源技术的平台。


现在我们开始对外征稿啦!如果你有优秀的技术文章想要分享,热点的行业资讯需要报道等等,欢迎联系开源中国进行投稿。投稿详情及联系方式请参见:我要投稿





推荐阅读

我该用 Java12 还是坚持 Java11?

运维主管离职后倒卖代码,非法获利 800 万被抓

国内 Golang 开发有没有 qian 途?爬了些数据告诉你

IBM 收购 RedHat:蓝巨人为什么要戴这顶红帽?

机器人在 GitHub 上“卧底”数月,伪装成人类贡献修复补丁

更多详情请查看阅读原文↓↓↓↓↓

登录查看更多
0

相关内容

IEEE模糊系统会刊TFS(IEEE Transactions on Fuzzy Systems)是由IEEE所属神经网络联合会发起和创办的一种新出版物。刊登有关模糊系统的理论、设计和应用方面的高质量技术论文,特别重视工程系统和科学应用,同时刊登信息以及有关其所载文章的评论和反驳。 官网地址:http://dblp.uni-trier.de/db/journals/tfs/
【2020新书】实战R语言4,323页pdf
专知会员服务
98+阅读 · 2020年7月1日
模型优化基础,Sayak Paul,67页ppt
专知会员服务
74+阅读 · 2020年6月8日
商业数据分析,39页ppt
专知会员服务
157+阅读 · 2020年6月2日
【实用书】Python爬虫Web抓取数据,第二版,306页pdf
专知会员服务
115+阅读 · 2020年5月10日
TensorFlow Lite指南实战《TensorFlow Lite A primer》,附48页PPT
专知会员服务
68+阅读 · 2020年1月17日
【干货】大数据入门指南:Hadoop、Hive、Spark、 Storm等
专知会员服务
94+阅读 · 2019年12月4日
TensorFlow 2.0 学习资源汇总
专知会员服务
66+阅读 · 2019年10月9日
知识图谱本体结构构建论文合集
专知会员服务
102+阅读 · 2019年10月9日
用Now轻松部署无服务器Node应用程序
前端之巅
16+阅读 · 2019年6月19日
支持多标签页的Windows终端:Fluent 终端
Python程序员
7+阅读 · 2019年4月15日
R工程化—Rest API 之plumber包
R语言中文社区
11+阅读 · 2018年12月25日
占坑!利用 JenKins 持续集成 iOS 项目时遇到的问题
教程帖:用TensorFlow自制Taylor Swift识别器
论智
13+阅读 · 2018年1月17日
深度学习入门篇--手把手教你用 TensorFlow 训练模型
全球人工智能
4+阅读 · 2017年10月21日
Arxiv
99+阅读 · 2020年3月4日
Semantics of Data Mining Services in Cloud Computing
Arxiv
4+阅读 · 2018年10月5日
Rapid Customization for Event Extraction
Arxiv
7+阅读 · 2018年9月20日
VIP会员
相关VIP内容
【2020新书】实战R语言4,323页pdf
专知会员服务
98+阅读 · 2020年7月1日
模型优化基础,Sayak Paul,67页ppt
专知会员服务
74+阅读 · 2020年6月8日
商业数据分析,39页ppt
专知会员服务
157+阅读 · 2020年6月2日
【实用书】Python爬虫Web抓取数据,第二版,306页pdf
专知会员服务
115+阅读 · 2020年5月10日
TensorFlow Lite指南实战《TensorFlow Lite A primer》,附48页PPT
专知会员服务
68+阅读 · 2020年1月17日
【干货】大数据入门指南:Hadoop、Hive、Spark、 Storm等
专知会员服务
94+阅读 · 2019年12月4日
TensorFlow 2.0 学习资源汇总
专知会员服务
66+阅读 · 2019年10月9日
知识图谱本体结构构建论文合集
专知会员服务
102+阅读 · 2019年10月9日
相关资讯
用Now轻松部署无服务器Node应用程序
前端之巅
16+阅读 · 2019年6月19日
支持多标签页的Windows终端:Fluent 终端
Python程序员
7+阅读 · 2019年4月15日
R工程化—Rest API 之plumber包
R语言中文社区
11+阅读 · 2018年12月25日
占坑!利用 JenKins 持续集成 iOS 项目时遇到的问题
教程帖:用TensorFlow自制Taylor Swift识别器
论智
13+阅读 · 2018年1月17日
深度学习入门篇--手把手教你用 TensorFlow 训练模型
全球人工智能
4+阅读 · 2017年10月21日
Top
微信扫码咨询专知VIP会员