湖南网站开发公司电话,上海公司注册流程及费用标准,百度首页优化,做网站不给钱摘 要
目前基于Jmeter的接口自动化测试框架#xff0c;大多只实现脚本维护和自动调度#xff0c;无法与Testlink进行互通#xff0c;实现测试方案与自动化实施流程连接#xff0c;本文基于Testlink、Jmeter、Jenkins实现#xff1a;通过Testlink统一维护接口自动化测试用…摘 要
目前基于Jmeter的接口自动化测试框架大多只实现脚本维护和自动调度无法与Testlink进行互通实现测试方案与自动化实施流程连接本文基于Testlink、Jmeter、Jenkins实现通过Testlink统一维护接口自动化测试用例Jmeter编写和运行测试脚本Jenkins实现统一调度并返回执行结果和测试报告到Testlink。从而实现整个接口自动化测试框架提高测试效率降低后续维护成本。
1、引言
为了实现项目快速开发-测试-交付测试需要在项目开发过程介入进行接口级别测试并输出自动化测试脚本便于后续集成测试使用自动化测试保证每次BUG修复没有引发新的问题故需要研究一种自动化测试框架满足目前项目测试的需求
2、目标
需求梳理如下
1、 TestLink统一管理测试用例因功能测试用例一直在Testlink上维护。
2、 接口测试工具满足需求的同时易上手掌握
3、 测试脚本统一维护如SVN
4、 脚本运行时需要结合Testlink测试计划分配用例将自动化运行结果返回到Testlink。
5、 运行失败的接口要自动提交到BUG系统
6、 测试结束后生成测试报告统计自动化测试总体情况并邮件发送给项目相关人员。
7、 测试服务器的IP和端口变化后在调度测试时统一指定测试IP和端口避免测试脚本的重复修改
8、 测试框架可扩展到其他项目。
基于以上需求梳理大致的目标图如下 期望框架达到的效果
若测试用例已经导入TestLink且脚本已经设计完成并上传到SVN则在web管理平台构建项目后即可自动完成所有测试并且项目可支持定时循环测试。
测试结束后可自动提交BUG到BUG系统测试人员只需对最后的结果进行确认即可。
图中中间部分云计算管理平台接口自动化测试平台则是本文应该要实现并达到的效果。
3、整体框架 以上是整体框架的思路介绍
TestLink负责接口自动化用例维护Jmeter则负责脚本编写和运行统一通过SVN进行维护另外邮件收发服务器则根据内部情况灵活选择整个过程统一由Jenkins 进行调度管理BUG系统负责BUG管理Jmeter脚本执行时若失败自动提交BUG到Build下。
4、技术关键
1、Testlink仅支持三种格式的结果返回Junit、TestNG、TAP ,Jmeter生成报告无法直接通过Jenkins传递给Testlink并正确识别。
2、TAP格式文件与Testlink中对应用例关联是通过.tap文件关联的即一个用例就需要一个TAP文件但是测试结束后需要输出整体测试结果必须要求Jmeter测试结束后输出一个测试结果文档如何将测试结果转化为TAP文件且实现与用例一一对应。
5、实现思路
本章给出第4章提到键技术点的解决在说明前需要以下前提准备
1、 规范化Jmeter脚本中的规范要求
1 HTTP Sample命名规范为 2 如果1条用例对应有多个HTTP Sample需要使用事务处理器这时事务处理器名称必须符合1的命名规范事务控制器内的HTTP Sample可以任意命名但建议按照【用例名称可修改内容】形式进行命名
3如果1条用例对应1个HTTP Sample不强制使用事务处理器
4 每一个HTTP Sample最好都要有断言判断是否执行成功若没有断言无法判断是否符合预期则转换脚本默认为成功。
5事务控制器内最好不要再套用事务控制器若需要建议使用简单控制器或者一次性控制器等
2、 TestLink上增加自定义字段用于标记用例与脚本的对应关系如AutoTestAutoTest字段内容则为上述中的用例编号用以将Testlink测试用例与脚本测试结果关联对应
3、 TestLink上自动化的用例执行方式设置为自动的
4、上述括号和冒号为英文字符且命名中不要出现空格否则会出现异常 5.1、脚本批量调用实现思路
Jmeter作为测试工具仅输出测试脚本若要形成框架持续集成需要进行批量调用并且可以统一配置脚本的全局参数如接口服务器地址、端口、默认登录用户名和密码等
Ant是Apache软件基金会JAKARTA目录中的一个子项目操作简单。Ant是由一个内置任务和可选任务组成的。Ant运行时需要一个XML文件(构建文件)。Ant通过调用target树就可以执行各种task。每个task实现了特定接口对象。由于Ant构建文件时XML格式的文件所以和容易维护和书写而且结构很清晰。
故直接使用AntJmeter来实现接口测试脚本的批量调用目前需要解决的问题就是Jmeter脚本运行时从Ant获取HTTP请求默认值中的服务器IP、端口信息以便后续服务器地址变更后不会影响接口测试脚本减少维护的工作量。
主要实现见下图
按照图中的流程配置每次需要自动运行时在Jenkins上配置TEST_URL的参数后接口测试则使用该访问地址进行测试若后续服务器的IP修改后只需要在Jenkins上配置即可快速完成测试环境的切换。 5.2、测试结果回传思路
以下则是XML2TAP.sh的设计思路根据以下思路输出sh脚本 5.2、具体实施过程
具体的实施过程如下述图所示 1. Jenkins每次执行时首先从SVN指定目录检查是否有用例更新若有则下载所有更新测试脚本到工程目录
2. 通过API key与Testlink建立关联并获取工程配置的测试项目对应测试计划下的自动化测试用例信息。
3. 调用Ant Plugin插件通过build.xml配置执行所有的Jmeter脚本文件并生成XML格式测试报告1份。
4、Jmeter脚本执行期间若有失败的接口用例自动提交BUG到BUG系统
5. 对XML测试报告进行二次处理调用XML2HTML.xsl样式表生成HTML格式测试报告用于邮件发送完整的测试报告和jenkins上发布测试结果。
6. 对XML测试报告进行转换调用XML2TAP.sh脚本对XML中每一个Sample结果进行处理生成Testlink可识别的TAP文件以用例为单位生成多个tap文件。
7. 将tap文件与第二步中获取的自动化用例信息对应返回测试结果及测试报告到Testlink。
8. 将第五步生成的测试报告邮件发送给相关人员。
最后感谢每一个认真阅读我文章的人礼尚往来总是要有的虽然不是什么很值钱的东西如果你用得到的话可以直接拿走 这些资料对于【软件测试】的朋友来说应该是最全面最完整的备战仓库这个仓库也陪伴上万个测试工程师们走过最艰难的路程希望也能帮助到你