基于Orange的安卓UI自动化学习笔记(六)

上一篇主要介绍了jenkins:真机换成模拟器,我们将真机换成模拟器,使得操作更简单,进一步完善安卓UI自动化持续集成的自动化。其实做到这里,基本的基于orange的安卓UI自动化工程已经建立完备了,完全可以实现线上监控APP的UI层面的稳定性情况。如果我们不想只是检测已发布的apk的稳定性,而是想在开发过程中实时编译、打包成apk进行UI层面的监控的话,就需要进行本章的进阶jenkins设置了。
关于安卓UI自动化学习,我的学习路线是这样安排的:
(一)本地:能够独立完成一个UI自动化工程的建立
(二)本地:命令行执行UI自动化测试用例
(三)本地:ant打包测试工程apk+执行UI自动化用例一体化
(四)jenkins:持续集成平台成功构建UI自动化工程
(五)jenkins:真机换成模拟器
(六)jenkins:持续集成平台实现被测apk自动打包编译+自动化一体化
(七)UI自动化用例编写语法和规范
本章内容就是第六部分,jenkins:持续集成平台实现被测apk自动打包编译+自动化一体化

一、设置环境变量

我们这里使用ant打包,在jenkins的job配置里,选择构建的选项为Execute Shell,命令框里首先输入对jenkins环境变量的设置。设置ant运行地址并加入path,设置android-sdk安装地址并将tools和platform-tools都加入path。

二、拉取被测APP代码并打包

设置好环境变量后,我们就需要从代码仓库(SVN或者Git)把开发的代码拉取下来并进行打包。

除了配置环境变量的几句指令,关键的指令及其分析如下:

(1)svn co的命令就是从svn地址上把被测试APP的开发代码拉取下来。
(2)接下来的cd命令主要是打开本job所在的本地目录。这里注意windows系统的目录表达方式是用\\分割。通常情况下job的默认存放目录是C:\Users\hzsuixiang.jenkins\workspace\YourJobName目录下,但是这里我设置job存放路径为E盘自己的路径下。如何设置job存放路径,可参考教程
(3)接下来看起来简单的ant指令其实执行了复杂的打包过程。只不过所有的任务都在build.xml中组织好了。在执行dx命令,将class文件转换成.dex文件时,产生了class.dex和classes2.dex两个文件,还要有一步将classes2.dex文件打到apk里。
(4)最后的aapt命令就是将classes2.dex文件打到apk里。

三、拉取测试工程代码并执行


关键的指令及其分析如下:

(1)svn co的命令就是从svn地址上把被测试工程的代码拉取下来。
(2)接下来的两个cp命令是用被测APP打包时产生的R.java文件和apk文件替换到我们UI工程里。
(3)最后在UI工程目录下执行ant命令执行UI自动化测试脚本。

好了,至此为止,我们就能够实时地将开发代码编译打包并执行UI自动化测试了。

四、打包时遇到的问题分析

因为之前被测APP在开发那边都是用gradle进行打包的,在对被测APP进行ant打包时遇到了包括编译、分包等的若干问题,总结一下:

1.编译时报错

编译时出现的问题首先考虑自己使用的jdk版本是否与开发环境相同,根据报错信息,我的jenkins上指定的jdk版本是1.8,而开发环境使用1.7。于是将Jenkins默认的jdk版本改为1.7,编译通过。

2.release时报错

release时报错apkbuild.bat文件找不到。首先在build.xml文件中找到release的target,确认使用到的执行参数是什么。


我们看到执行的是${apk-builder}这一参数。然后再在build.xml中找出apk-builder参数的设置,查看其真正执行的脚本文件位置。


1.png

而${android-tools}参数在之前设置为本地sdk\tools的路径,也就是D:\AppData\Local\Android\sdk\tools(注:这是我的本地sdk路径)。打开这一路径,发现其中真的没有apkbuilder.bat文件,也难怪打包时报错了。sdk更新3.0以后apkbuilder.bat已经被删除了,要想顺利地执行ant打包,可以自己重写一个apkbuilder.bat工具,我是从网上下载了apkbuilder.bat放在D:\AppData\Local\Android\sdk\tools路径下:


这下执行应该没有问题了~
DUANG~报错 “java找不到....”
问题查找了好久,终于确定问题是出在自己的java文件夹命名上了,我的java文件夹命名为java 1.7,就是这个空格成为了找不到java无法顺利进行release的关键原因。这应该也是个小小的坑了,建议以后建立文件夹少写空格中文等这类字符,出错的时候感觉整个世界都不好了~

2.
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 194,524评论 5 460
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 81,869评论 2 371
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 141,813评论 0 320
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 52,210评论 1 263
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 61,085评论 4 355
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 46,117评论 1 272
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 36,533评论 3 381
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 35,219评论 0 253
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 39,487评论 1 290
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 34,582评论 2 309
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 36,362评论 1 326
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 32,218评论 3 312
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 37,589评论 3 299
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 28,899评论 0 17
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 30,176评论 1 250
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 41,503评论 2 341
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 40,707评论 2 335

推荐阅读更多精彩内容