一个典型的持续集成周期包括以下几个步骤:
1. 持续集成服务器不断从版本控制服务器上检查代码状态,看代码是否有更新。
2. 如果发现代码有最新的提交,那么就从版本控制服务器下载最新的代码。
3. 等代码完全更新以后,调用自动化编译脚本,进行代码编译。
4. 运行所有的自动化测试。
5. 进行代码分析。
6. 产生可执行的软件,能够提供给测试人员进行测试。
持续集成服务器,比如CruiseControl或者VSTS CruiseControl, Anthill, Bamboo, TeamCity, Continuum,hudson,Jenkins
本次分享的总体脚本流程分为3部分,第一部分主要为构建APK;第二部分主要完成测试案例的执行(包括java和python代码的测试案例);第三部分是构建完成后结果展示。
目前结果展示设计主旨是:以邮件发送指定下载地址,用户访问指定下载地址获得测试结果的方式进行展示。
附:APK构建过程步骤:http://blog.csdn.net/jason0539/article/details/44917745
第一步:打包资源文件,生成R.java文件
【输入】Resource文件(就是工程中res中的文件)、Assets文件(相当于另外一种资源,这种资源Android系统并不像对res中的文件
那样优化它)、AndroidManifest.xml文件(包名就是从这里读取的,因为生成R.java文件需要包名)、Android基础类库
(Android.jar文件)
【输出】打包好的资源(一般在Android工程的bin目录可以看到一个叫resources.ap_的文件就是它了)、R.java文件(在gen目录中,大家应该很熟悉了)
【工具】aapt工具,它的路径在${ANDROID_SDK_HOME}/platform-tools/aapt(如果你使用的是Windows系
统,按惯例路径应该这样写:%ANDROID_SDK_HOME%platform-toolsaapt.exe,下同)。
第二步:处理AIDL文件,生成对应的.java文件(当然,有很多工程没有用到AIDL,那这个过程就可以省了)
【输入】源码文件、aidl文件、framework.aidl文件
【输出】对应的.java文件
【工具】aidl工具
第三步:编译Java文件,生成对应的.class文件
【输入】源码文件(包括R.java和AIDL生成的.java文件)、库文件(.jar文件)
【输出】.class文件
【工具】javac工具
第四步:把.class文件转化成Davik VM支持的.dex文件
【输入】 .class文件(包括Aidl生成.class文件,R生成的.class文件,源文件生成的.class文件),库文件(.jar文件)
【输出】.dex文件
【工具】javac工具
第五步:打包生成未签名的.apk文件
【输入】打包后的资源文件、打包后类文件(.dex文件)、libs文件(包括.so文件,当然很多工程都没有这样的文件,如果你不使用C/C++开发的话)
【输出】未签名的.apk文件
【工具】apkbuilder工具
第六步:对未签名.apk文件进行签名
【输入】未签名的.apk文件
【输出】签名的.apk文件
【工具】jarsigner
第七步:对签名后的.apk文件进行对齐处理(不进行对齐处理是不能发布到Google Market的)
【输入】签名后的.apk文件
【输出】对齐后的.apk文件
【工具】zipalign工具