利用Hudson持续集成来执行Android自动化测试
当你套用Athrun、Robotium等框架,针对自己的项目写完了一堆自动化测试脚本后,在Eclipse之外怎么让它们可以持续性地跑起来并展现报告呢?
据我了解,方便的方法大致有两个:其一,利用Hudson(或Jenkins)持续集成系统;其二、利用Testin或东软易测云等第三方云测试平台达成。
本文以Hudson在Windows系统的环境搭建为例。
一、安装篇
1、安装JDK,推荐1.6版本
这个一般做Android的开发、测试都会装了,但要注意配好环境变量,即将jdk的bin目录加到Path里,将jdk目录加入JAVA_HOME
2、安装ant
http://ant.apache.org/bindownload.cgi,解压到本地合适目录,如D:apache-ant-1.8.4
3、安装tomcat
http://tomcat.apache.org/download-70.cgi,解压到本地适当目录,如D:apache-tomcat-7.0.30
4、安装hudson
http://java.net/projects/hudson/downloads/directory/war,将下载到的war包更名为hudson.war(这个名字关系到访问的URL地址,也可以是别的),拷贝到tomcat的webapps目录下,如D:apache-tomcat-7.0.30webapps
至此,只要启动tomcat/bin/startup.bat,可以在浏览器里用http://127.0.0.1:8080/hudson对hudson服务进行访问了。
二、配置篇
打开hudson配置界面(主页 - 系统管理 - 系统设置)
1、配置好JDK,名称任意,JAVA_HOME填准确。
2、配置好ANT,名称任意,ANT_HOME填准确。
3、拉到下面,邮件通知部分,SMTP、用户默认邮件后缀、系统管理员邮件都按照公司实际情况配好,Hudson URL填成http://本机IP:8080/hudson/,这样同局域网内的其他用户可以访问你配置的Hudson服务了。
同时点开Advanced,勾选"使用SMTP",使用你在公司域内的邮箱地址和密码,SMTP端口一般选择默认的25,Charset填写"UTF-8",这样测试结果才会以你的邮箱发出给相关人。
打开hudson插件界面(主页 - 系统管理 - 管理插件 - 可选插件)
搜索以下几个插件并安装:
1、Hudson Subversion Plug-in,顾名思义,SVN插件。
2、JUnit Attachments Plugin,junit测试报告附件插件。
3、Android Emulator Plugin,如果要用Android模拟器来测试的话,这个是要装上的。
4、Hudson GIT plugin,如果团队是用Git来同步代码的话,那这个也装上。
5、Email-ext plugin,邮件发送定制插件。Hudson默认只在构建失败(或从失败转向成功)后发送提醒邮件;使用这个插件可以定制发送邮件的不同情景。
其它都按需安装喽。
新建任务 - 主项目(被测项目)打包任务
1、构建一个自由风格的项目,名称合适取。
2、Source Code Management部分,选Subversion,Repository URL里面填写你主体项目的SVN地址,其它选默认行了。
3、Build trigger部分,勾选Build periodically可以使版本定时构建,语法和Unix的crontab一样。勾选Poll SCM则是定期去SVN或CVS的workspace去检查,如果有更新更构建。
4、Build Environment部分,如果是用模拟器来测试的话,勾选"Run an Android emulator during build"。
5、Build部分,关键的部分来了。
Ant version:选Default行;
Targets:要应用的ant target名称,也可以是名称列表(多个名称用空格分隔),如果什么都不写的话,是build脚本中的默认那个任务;
Build File:有时候我们未必用ant默认找的build.xml来编译,那用这个选项来自定义脚本路径和名称,如build4test.xml;
Properties:这里用来写build脚本运行时需要的一些参数。其效果等同于在项目的workspace下建一个ant.properties文件,然后在build脚本里加入<property file="ant.properties" />。其实说起来肯定是后一种方法更灵活,但有时为了安全起见(比如不把key.store.password泄漏出去),把这些属性写在Hudson服务端。(事实上这些属性都记录在该项目的config.xml里)
免责声明:
① 本站未注明“稿件来源”的信息均来自网络整理。其文字、图片和音视频稿件的所属权归原作者所有。本站收集整理出于非商业性的教育和科研之目的,并不意味着本站赞同其观点或证实其内容的真实性。仅作为临时的测试数据,供内部测试之用。本站并未授权任何人以任何方式主动获取本站任何信息。
② 本站未注明“稿件来源”的临时测试数据将在测试完成后最终做删除处理。有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341