SVN+Jenkins+Maven+Appium+TestNG+ReportNG 实战 Android 自动化测试
来源:互联网 发布:服装尺码对照表软件 编辑:程序博客网 时间:2024/05/22 01:04
好吧,标题写得好长.
言归正传,本文主要是讲述如何使用这些工具来整合流程,实现Android平台的自动化测试.
首先说下背景,因为我测试的东西面向多个国家,对于不同的地域可能有不同的功能,对应不一样的发行渠道,需要测试工具有便捷的case管理功能,能方便地面对不同的发行渠道选择不同的case.而TestNG可以很方便地配置这些,所以选择这个框架.
这里直接使用Appium源码中自带的testng项目示例.位置在源码目录中的
/sample-code/examples/java/testng
1.改造Report的呈现方式
示例Project用Maven来组织项目,所以这里就不改项目架构了,喜欢ant的同学自己去实践吧.
因为示例中用的是TestNG自己生成的测试报告,比较难看,这里用ReportNG来美化一下.
编辑pom.xml,在依赖中添加ReportNG的依赖:
<dependency> <groupId>org.uncommons</groupId> <artifactId>reportng</artifactId> <version>1.1.4</version> <scope>test</scope> <exclusions> <exclusion> <groupId>org.testng</groupId> <artifactId>testng</artifactId> </exclusion> </exclusions> </dependency> <dependency> <groupId>com.google.inject</groupId> <artifactId>guice</artifactId> <version>3.0</version> <scope>test</scope> </dependency>
ReportNG还得注册一下监听器,这个放在testng.xml中去注册,就不写在POM里了.maven-surefire-plugin插件里配置一个参数,用于接收不同的testng.xml
<plugin> <groupId>org.apache.maven.plugins</groupId> <artifactId>maven-surefire-plugin</artifactId> <version>2.17</version> <configuration> <suiteXmlFiles> <suiteXmlFile>res/${xmlFileName}</suiteXmlFile> </suiteXmlFiles> </configuration> </plugin>
pom里面的值留空:
<properties> <xmlFileName></xmlFileName> </properties>
2.使用不同的testng.xml配置文件来配置不同的渠道测试case
在项目根目录建个res文件夹,把testng.xml放进去,testng.xml文件内容如下
<?xml version="1.0" encoding="UTF-8"?><!DOCTYPE suite SYSTEM "http://testng.org/testng-1.0.dtd" ><suite name="Suite" verbose="1" > <test name="Project_V3023" > <packages> <package name="com.saucelabs.appium" /> </packages> </test> <listeners> <listener class-name="org.uncommons.reportng.HTMLReporter" /> <listener class-name="org.uncommons.reportng.JUnitXMLReporter" /> </listeners> <usedefaultlisteners name="false" /></suite>
这个文件用来配置选择不同的渠道需要选择的case,res文件夹下可以扔很多testng.xml文件用于不同的渠道.比如A渠道可以用testng1.xml,B渠道可以用testng2.xml,另外在这里面注册一下ReportNG的监听器.
最后修改一下Project的项目文件结构,最后变成这个样子(为了演示方便,只保留了一个测试类):
3.配置Jenkins
勾选参数化构建,创建2个参数
第1个参数是创建一个文件夹,并且返回文件夹路径,这个在后面发邮件要用到.
第2个参数是返回testng.xml的名字,这里因为我只有一个,所以直接返回了,后面这里面可以自己加条件判断是返回哪个testng.xml的名字.比如1\3\5跑testng1.xml,2\4\6跑testng2.xml
用SVN来管理测试代码
构建触发器使用定时触发方式,不截图了.
使用Maven构建项目,并且接收一个参数
构建后运行一下Python的脚本,用途是拷贝文件,将生成的ReportNG报告拷贝到上面由参数1创建的目录下.而这个目录同时也是Apache的网站目录,这样就可以直接通过URL看到测试报告了.
最后用邮件插件发一下邮件,我这里都是引用的系统配置里的内容
收到的邮件是这个样子
点开链接,看到测试报告
最后,总结一下
用SVN管理管理代码,Jenkins做持续集成,项目组织用Maven,测试框架用Appium+TestNG,报告呈现用ReportNG.
好吧,撇去Appium不谈,其他都是大家用来用去的东西了.
现在的问题:
1.Jenkins的触发方式现在是每天晚上定时触发,因为我拿不到源码,开发的编译系统用的也不是Jenkins,我不知道要如何才能更好地使用持续集成.各位小伙伴的持续集成又是怎么做的呢?
2.选择testng.xml不够灵活,不能根据项目特征自动选择对应的testng.xml,比如我想拿渠道号来区分,可Jenkins怎么拿到渠道号?
3.Appium支持多个设备同时运行吗?之前用Robotium时使用Spoon就可以同时在多个设备上运行.
扩展一下:
网易上个月出了一个TestNG的小插件,实现了失败用例重跑,失败自动截图,展示用例运行次数等等功能,很好很实用,就只有一个缺点,生成的报告是改造了TestNG自带的emailable-report.html,实在是太-丑-了~~这个看能不能把功能移植到ReportNG上去.有兴趣的小伙伴可以关注.
项目地址:https://github.com/NetEase/arrow
- SVN+Jenkins+Maven+Appium+TestNG+ReportNG 实战 Android 自动化测试
- SVN+Jenkins+Maven+Appium+TestNG+ReportNG 实战 Android 自动化测试
- SVN+Jenkins+Maven+Appium+TestNG+ReportNG 实战 Android 自动化测试
- SVN+Jenkins+Maven+Appium+TestNG+ReportNG 实战 Android 自动化测试
- SVN+Jenkins+Maven+Appium+TestNG+ReportNG 实战 Android 自动化测试
- Saucelabs+Java+TestNG+Appium+Maven+Git+Jenkins+ReportNG for Android 自动化测试
- 接口自动化测试(使用testng,reportng,maven,jenkins)
- 搭建自动化测试平台(selenium+testng+maven+svn+Jenkins)
- 使用ReportNg生成测试报告(Maven+Appium+TestNg+ReportNg)
- Appium+TestNG+Jenkins +Ant 持续集成手机自动化测试
- Java+maven+selenium+testng+reportNG+jenkins自动化环境搭建【全网最详细的搭建过程指导】
- 我的自动化测试历程(Selenium+TestNG+Java+ReportNG+Jenkins)
- 我的自动化测试历程(Selenium+TestNG+Java+ReportNG+Jenkins)
- Jenkins + Ant + Java + TestNg + ReportNg + Appium 进行持续集成
- 搭建基于Selenium+TestNG+Maven+Jenkins+SVN的Web端UI自动化测试环境
- 搭建基于Selenium+TestNG+Maven+Jenkins+SVN的Web端UI自动化测试环境
- 搭建自动化测试平台(selenium+testng+maven+svn+Jenkins)【转自galen2016】
- 基于 Appium + testNG + Java + maven 适用于Android、iOS自动化测试框架
- WP8--程序内启动其他程序
- 浙大计算机研究生复试上机考试-2010年 zoj问题
- 二逼程序员与苦逼程序员
- 如何快速正确的安装 Ruby, Rails 运行环境
- 要你命三千:老代码中的那些坑
- SVN+Jenkins+Maven+Appium+TestNG+ReportNG 实战 Android 自动化测试
- 2015-1-22【erlang】Cowboy学习记录-关于Routing章节
- 初学51单片机指令快速记忆法
- ubuntu使用中出现的问题及解决方法
- 寒假项目1-动态链表体验(改造)(4)
- quick 3.3final 新建工程打包build_native报错
- Camera 使用记录
- 第一代程序猿王小波
- Hello, World!