没有合适的资源?快使用搜索试试~ 我知道了~
资源推荐
资源详情
资源评论
集成 Jenkins 和 TestNG 实现自助式自动
化测试平台
背景介绍
在软件业十分成熟的今天,敏捷(Agile)开发在业界日益流行,而面临的挑战
也日益增多,不断变化的用户需求、缩短的开发周期、频繁的部署上线、复杂
的产品架构和团队组织,如何继续保证软件的质量是一个不能回避的课题。
许多企业级规模的项目常常按照功能模块将庞大的团队分为多个独立的 Scrum
团队。在这种情况下,每个 Scrum 团队各自负责其所属功能模块的开发和测试。
在 Scrum 团队中各种角色在不同的时间点有针对性不同的测试需求。其次,
Build 部署以及测试频率大幅增加。测试类型和阶段也更加细化。
而现有的自动化测试,常常由独立的自动化测试团队来执行和维护。其他的
Scrum 团队成员除非十分了解自动化测试包的细节,否则无法按照自身多类型
的测试需求来执行自动化脚本。并且有些项目自动化测试包涵盖了成百上千的
测试用例,仅仅因为需要验证某个模块或某几个功能点是否成功而执行整个测
试包不仅费时且没有必要。
本文针对以上涉及的问题,提出以下的解决方案:利用 Jenkins 和 TestNG 搭
建“自助式”自动化测试平台,充分利用了 Jenkins 成熟的平台及其插件, 以及
TestNG 对选择测试用例的内在支持。
该平台具有以下优点:
基于成熟的测试工具。Jenkins 是目前业内最流行的快速持续集成工具之一, 其
稳定的性能和丰富的扩展性, 使得很多的团队都优先选择它作为项目的主要支持
工具。TestNG 作为一款强大的 Java 测试框架,其在 Junit,NUnit 的基础上做
了广泛的增强,从单元测试、功能测试到集成测试,都能提供良好的支持。这
两个工具一方面功能稳定,有大量的实际使用案例和文档支持,另一方面由于
其属于主流工具,很多团队已经有过相应的经验,可以大大缩短学习曲线和成
本。
灵活地定制自动化测试。团队成员通过登陆平台 Web 界面,按照需求任意选
择部署在平台上的自动化测试包,目标测试环境,测试集和测试用例。提交定
制化的自动化执行请求,执行结束系统自动发邮件通知。不同人员的请求可以
实现并行执行。
所有的自动化执行历史记录都可以保存在平台上。可以通过 Web 的方式随时
查阅。
Jenkins 支持丰富的插件,用户可以按照需求进行选择安装和配置,以实现生
成执行状态表格,自动部署/更新自动化测试包等高级功能。
方案设计概述
本文将使用一个简化后的“自助式”自动化测试应用场景以介绍本方案的核心设
计思想。首先列举出该平台需要满足的各项需求:
用户权限管理,用户可以使用自己的帐号进行登陆访问,提交请求。
用户根据自身的具体需求,灵活的选择已经部署在平台上的自动化测试包,并
且可以对测试环境,测试集和测试用例进行定制化选择。
多用户并发请求的执行,彼此之间相互独立,互不干扰
请求执行完毕后的 email 通知
执行状态和历史纪录的查询
用户体验良好的 Web 页面访问模式
针对以上的需求,我们可以用图 1 来简要说明该方案的主要功能组件以及彼此
之间的联系。
图 1. 平台主要功能组件
Web 前端:Jenkins 平台自身提供一套统一标准的 web 界面,用户可以根据需
求通过其完成各种系统配置,任务提交,查询等工作。
用户登录与权限控制:Jenkins 平台默认支持若干种用户验证机制,比如
LDAP, Jenkins own database, servlet container authenticate 等等,也可以通
过其它插件实现更加复杂的验证。本文将采用最简单的 Jenkins own database
来管理帐户的权限。
任务请求定制化模块:一般来说,Jenkins 大部分情况下只需要完成预定义执
行内容的任务。所以在参数定制化请求方面只具备最基本的支持。为了满足更
好的“自助式”的用户体验和需求,实现预定义任务对不同用户需求的灵活响应,
我们在还需要借助一款 Jenkins 插件“Extended Choice Parameter plugin”的辅
助。利用该插件,用户可以在提交请求时在页面上输入多选式参数,这些动态
输入将以环境变量的形式传递给执行模块影响最终请求的行为。
任务提交与执行模块:Jenkins 支持稳定的任务管理机制,管理员可以通过配
置使同一个任务支持并发响应多个请求,彼此之间独立且互不干扰。
任务状态与历史纪录查询:对于任务请求的状态信息跟踪,Jenkins 默认只支
持控制台输出的监控,而且每一次请求记录,Jenkins 只提供一个数字 ID 和时
间戳进行标识。对于一个多用户的自助式平台这是远远不够的。我们利用插件
“HTML Publisher Plugin”,保存请求生成的 html 格式的运行报告。这样可以在
页面上对任意历史请求的执行纪录和报告进行查询和检索;同时利用“EnvInject
Plugin”,“Build User Vars Plugin”和“Build Name Setter Plugin”为每一次请求
动态生成包含用户姓名等多方面信息的 ID 以区分,大大方便信息的管理和测试
结果数据的追溯。
Email 提醒:Jenkins 默认只支持最基本的 email 通知机制。我们使用插件
“Email-ext plugin”进行扩展,以支持更加强大的通知机制,灵活定制 email 标
题和内容, 添加附件,定制收件人名单等。
TestNG 自动化测试框架:TestNG 是一款强大的自动化测试框架,适用于
Unit 测试,功能测试,集成测试等多类型的自动化测试。其拥有一整套成熟的
API 和 Annotation, 支持数据驱动,测试周期和依赖控制,多线程执行等一系列
特性。本方案采用 TestNG 还因为其具有对测试脚本集进行灵活选择的特性。
TestNG 利用 xml 文件来组织测试脚本集,在运行的时候,我们可以通过参数
剩余18页未读,继续阅读
资源评论
cds322
- 粉丝: 0
- 资源: 7
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
最新资源
- Sora AI-关于文生视频的使用场景说明
- suno AI文生视频的相关教程和介绍使用
- 什么是后端开发-关于后端开发的一些小介绍分享
- Jurassic Pack Vol. II Dinosaurs 侏罗纪包卷恐龙二号Unity游戏模型资源unitypackage
- Jurassic Pack Vol. III Dinosaurs 侏罗纪包卷恐龙三号Unity游戏模型资源unitypackag
- Ultimate Seating Controller 终极座椅控制器Unity游戏开发插件资源unitypackage
- 什么是人工智能-关于人工智能的相关介绍说明
- Figma Converter for Unity适用Unity的Figma转换器Unity游戏开发插件unitypackage
- Creepy Animatronic Anims 令人毛骨悚然的电子动画Unity游戏动画插件资源unitypackage
- Rankings & Leaderboards 排名和排行榜Unity游戏开发插件资源unitypackage
资源上传下载、课程学习等过程中有任何疑问或建议,欢迎提出宝贵意见哦~我们会及时处理!
点击此处反馈
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功