51Testing软件测试论坛

标题: Jenkins + TestNG 实现自助式自动化测试平台 [打印本页]

作者: 做自己的女王ヽ    时间: 2019-1-23 16:43
标题: Jenkins + TestNG 实现自助式自动化测试平台

摘要:

本文介绍了如何使用 Jenkins 和 TestNG 实现满足复杂测试需求的”自助式”自动化测试平台。该方案以 Jenkins 作为平台的基础,结合功能强大的插件及系统配置,部署基于 TestNG 的自动化测试包,并提供了友好的 Web 访问界面。项目成员可以在任何时间和地点,通过浏览器访问该平台,而且可以按照不同需求选择测试环境、测试集、测试用例,并提交自动化测试请求,达到真正的“自助式”自动化测试。该平台它可以极大地提高开发和测试团队自动化脚本的使用效率和便捷性。


一. 提出需求

测试部开发一套自己的质量中心,主要用于缺陷统计、接口自动化测试、APP自动化测试、在线监控等,在接口自动化测试和APP自动化测试过程中,我们需要实现,用户选择不同的测试集合,集合中包含哪些测试用例,TestNG会自己去执行不同的测试用例,做到根据用户不同的输入做出不同的响应。


二. 方案设计


三. 编码

3.1 质量中心->APP自动化测试 数据库设计


[attach]121216[/attach]


app_elements:存储app页面控件,如Android的resource id,iOS的xpath

app_execute: 存储支持执行结果,测试报告、测试结果等

app_mobile: 存储测试机型的相关信息

app_modules: 存储测试APP中包含的模块,分层的思想,方便管理

app_platform: 存储测试APP,支持多个APP

app_suitecase: 存储测试集合与测试用例的关系,一个测试用例对应多个测试集合

app_testcase:存储测试用例

app_testjob:存储测试任务,关联相应的Jenkins路径,直接多地执行

app_testsuite:存储测试集合


3.2 Jenkins参数配置


[attach]121217[/attach]


TestPlatform: 测试平台,是Android还是iOS

TestDevice: 测试设备,Android需要传入udid,iOS不需要

TestEnv: 测试环境,qa还是live

TestJobId: 测试任务编号,通过这个任务编号可以MySQL查询到关联的测试集合以及测试集合中的测试用例

TestExecuteId: 执行任务编号,传入Python脚本,讲生成的测试报告emailable-report.html存放相应的位置


3.3 Python文件生成TestNG XML


3.4 Jenkins配置与执行Maven TestNG


[attach]121218[/attach]


3.5 生成的TestNG XML文件,例如:


[attach]121219[/attach]


3.6 生成的emailable-report.html存储在MySQL中


四. 测试

4.1 质量平台


[attach]121220[/attach]


[attach]121221[/attach]



总结:

为了实习根据用户不同的输入做出不同的相应,期间尝试方案如下:







欢迎光临 51Testing软件测试论坛 (http://bbs.51testing.com/) Powered by Discuz! X3.2