Web API 持续集成:PostMan+Newman+Jenkins

简介:

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

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

1. Web Api 测试工具选型

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

在进行了很多的尝试后,我们最终还是决定在Postman和Soap UI间做出抉择,在经过我们详细的对比后:https://www.cnblogs.com/powertoolsteam/p/9772211.html

最终我们选择了Postman。

2. 用Postman创建项目

选型做好了,第二步当然是Postman用起来了,创建自己的项目。参照Postman官网的文档。https://learning.getpostman.com/docs/postman/collections/intro_to_collections/

 ●  创建 LeyserkidsApi项目

da9b6dd634e288ff9cc85d9cdb05dfc066fd083c

3. 源码管理

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

 ●  把Postman中项目LeyserkidsApi的Collection和Envrionment导出为json文件。
 ●  TFS创建项目LeyserKids,追加Postman导出的JSON文件,进行资源版本管理。接下来展示的项目结构如下:

bf2287cbc412643c915e6fada388ec0df0807bb6

4. Jenkins服务搭建

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

5. Jenkins与TFS关联

创建FreeStyle Project :Test

97738120c5fadee84c46ca9d9df0783380a48c56

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

b56a2d48fc520c3cfed0d54497724f35aa30dfc2

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

29606067ccb8513602479b420e98035b3587eef6

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

3d7ef263c1561c9e6b5f250fa680ee4bdc667751

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

032a64f65b21db70a2dfe6e53f69e2727d91a051

7. 邮件配置

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

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

8da81955ce347a2cfca90516c28920da0d6a42ed

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

c7974922c7243614275c6b914e23327ecee06a6f

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

 ●  进入Test详细页面

e7d1acf6aea24662c5fe1a37e571bdefc3f5cddb

 ●  对Test进行配置

95fda7f45401dbe8fbfd3ec2b1a6a1e3feedba7b

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

a4ec73b6f99906ec8e06b666e65e292bf372f98b

 ●  配置Editable-Email Notification

0e9eecf5852e1c09641e20b7dc4b7175032940af

8. 项目构建

f60e77507c9c46c8437ce0fb6512c124cb9dc683

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

74afbe6de1a71d47c3c2eafafc1781014ee7be9d

9. 更优美的邮件模板

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

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

e86889fe6d8787031cf0bd709316020ac672e409

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

e6498e8e080bd4b5b8e5a25151eeff2b06a7a2cc

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

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

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

74bb0be895c5a36f917bcdec369b54d8a8e4340c

在机器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 这个小伙伴的模板,进行了些许改造。

e8406da67b9bd5fa97248a9a7d682f8bd22d78e2

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

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

7da3f76b425836bfb897ed3f98fcf48bbe83e88d

进入Test详细页面->Configure-> Post-build Actions->Add post-build action(Publish Html report)配置Html Report ,展示上一个步骤生成的Index.html文件。

6d5aa9be4521922b42623346a7e7fe7d1dc1b049

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

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

7969b111a13ddc8c0bf28f05da2e2ccd4286be4e

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

04a805b2486e3e8bdcd0d870498965a89ef4328f

 ●  Report详细

aab9e88b640980d23db32df0cbd19269ec5191a4

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

https://testerhome.com/topics/9476

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


原文发布时间为:2018-11-09

本文作者:葡萄城技术

本文来自云栖社区合作伙伴“前端大学”,了解相关信息可以关注“前端大学”。

相关文章
|
3天前
|
XML JSON API
Understanding RESTful API and Web Services: Key Differences and Use Cases
在现代软件开发中,RESTful API和Web服务均用于实现系统间通信,但各有特点。RESTful API遵循REST原则,主要使用HTTP/HTTPS协议,数据格式多为JSON或XML,适用于无状态通信;而Web服务包括SOAP和REST,常用于基于网络的API,采用标准化方法如WSDL或OpenAPI。理解两者区别有助于选择适合应用需求的解决方案,构建高效、可扩展的应用程序。
|
4天前
|
人工智能 测试技术 API
Windows用户必备:Postman v11详细安装指南与API测试入门教程(附官网下载
Postman是全球领先的API开发与测试工具,支持REST、SOAP、GraphQL等协议调试。2025年最新版v11新增AI智能生成测试用例、多环境变量同步等功能,适用于前后端分离开发、自动化测试、接口文档自动生成及团队协作共享API资源。本文详细介绍Postman的软件定位、核心功能、安装步骤、首次配置、基础使用及常见问题解答,帮助用户快速上手并高效利用该工具进行API开发与测试。
|
6天前
|
数据可视化 JavaScript 前端开发
利用Postman和Apipost进行API测试的实践与优化-动态参数
在API测试中,Postman和Apipost是常用的工具。Postman内置变量功能有限,面对复杂场景时需编写JavaScript脚本,增加了维护成本。而Apipost提供丰富的内置变量、可视化动态值配置和低代码操作,支持生成真实随机数据,如邮箱、手机号等,显著提升测试效率和灵活性。对于复杂测试场景,Apipost是更好的选择,能有效降低开发与维护成本,提高测试工作的便捷性和可维护性。
|
7天前
|
机器学习/深度学习 开发框架 API
Python 高级编程与实战:深入理解 Web 开发与 API 设计
在前几篇文章中,我们探讨了 Python 的基础语法、面向对象编程、函数式编程、元编程、性能优化、调试技巧以及数据科学和机器学习。本文将深入探讨 Python 在 Web 开发和 API 设计中的应用,并通过实战项目帮助你掌握这些技术。
|
11天前
|
监控 jenkins Shell
jenkins结合gitlab实现CI(持续集成)
通过本文的介绍,我们详细了解了如何结合Jenkins和GitLab实现持续集成。从环境准备、插件配置到Pipeline任务创建和CI流程监控,每一步都提供了详细的操作步骤和示例代码。希望本文能帮助开发者快速搭建起高效的CI系统,提高项目开发效率和代码质量。
32 8
|
22天前
|
机器学习/深度学习 人工智能 自然语言处理
企业级API集成方案:基于阿里云函数计算调用DeepSeek全解析
DeepSeek R1 是一款先进的大规模深度学习模型,专为自然语言处理等复杂任务设计。它具备高效的架构、强大的泛化能力和优化的参数管理,适用于文本生成、智能问答、代码生成和数据分析等领域。阿里云平台提供了高性能计算资源、合规与数据安全、低延迟覆盖和成本效益等优势,支持用户便捷部署和调用 DeepSeek R1 模型,确保快速响应和稳定服务。通过阿里云百炼模型服务,用户可以轻松体验满血版 DeepSeek R1,并享受免费试用和灵活的API调用方式。
147 12
|
25天前
|
JSON 前端开发 API
以项目登录接口为例-大前端之开发postman请求接口带token的请求测试-前端开发必学之一-如果要学会联调接口而不是纯写静态前端页面-这个是必学-本文以优雅草蜻蜓Q系统API为实践来演示我们如何带token请求接口-优雅草卓伊凡
以项目登录接口为例-大前端之开发postman请求接口带token的请求测试-前端开发必学之一-如果要学会联调接口而不是纯写静态前端页面-这个是必学-本文以优雅草蜻蜓Q系统API为实践来演示我们如何带token请求接口-优雅草卓伊凡
58 5
以项目登录接口为例-大前端之开发postman请求接口带token的请求测试-前端开发必学之一-如果要学会联调接口而不是纯写静态前端页面-这个是必学-本文以优雅草蜻蜓Q系统API为实践来演示我们如何带token请求接口-优雅草卓伊凡
|
26天前
|
人工智能 JSON 自然语言处理
AI 程序员的4个分身 | 代码生成专家+注释精灵+API集成助手+智能调试伙伴
AI 程序员的4个分身 | 代码生成专家+注释精灵+API集成助手+智能调试伙伴
196 35
|
2月前
|
Java jenkins 持续交付
Jenkins集成Maven
通过以上步骤,可以在Jenkins中成功集成Maven,实现自动化构建和部署。通过定时构建、SCM轮询等方式,可以确保代码库中的最新变更能够及时构建和测试,提高开发效率和代码质量。这种集成方式在实际项目中具有广泛的应用前景,能够显著提升团队的协作效率。
56 8
|
2月前
|
人工智能 IDE API
AI驱动的开发者工具:打造沉浸式API集成体验
本文介绍了阿里云在过去十年中为开发者提供的API服务演变。内容分为两大部分:一是从零开始使用API的用户旅程,涵盖API的发现、调试与集成;二是回顾阿里云过去十年为开发者提供的服务及发展历程。文中详细描述了API从最初的手写SDK到自动化生成SDK的变化,以及通过API Explorer、IDE插件和AI助手等工具提升开发者体验的过程。这些工具和服务旨在帮助开发者更高效地使用API,减少配置和调试的复杂性,提供一站式的解决方案。

热门文章

最新文章