由于appium同时使用了instrument和uiautomator,我想不出更好的解决方案,于是决定啃啃骨头。
参考了以下两篇文章:
http://www.cnblogs.com/oscarxie/p/3488262.html
http://testerhome.com/topics/645
两篇文章给我方向,同时让我迷茫,先写怎么做吧。
基本步骤:
1. Android开发环境;
2. 建立了一个模拟器4.2.2;
3. 下载Appium for windows,我使用的0.12.3版本,解压就行了;
https://bitbucket.org/appium/appium.app/downloads/
4. 下载selenium类库,http://docs.seleniumhq.org/download/,我用的java的;
6. 创建java project,引入junit库和selenium库,建目录放入apk,建立测试类,贴入代码并作修改;
7. 启动appium服务器;
8. 启动模拟器;
9. 在java project项目上运行:junit test,打完收工。
需要准备的清单我准备了一份,appium就自己下载吧:
1. Aimsi: 这是被测试程序,自己写的,用来读取imsi和imei的,就一个button和一个textview,简洁大方;
2. Appdemo:测试程序;
3. selenium-2.41.0: selenium库;
4. AimsiEnglish.apk:Aimsi编译的,button的text和contentdescription都是英文的;
5. AimsiHanzi.apk: Aimsi编译的,button的text和contentdescription都是汉字的;
6. AndroidContactsTest.java:官网上下载的,这里仅供参考了,因为我没有使用那个contactmanager.apk做为被测程序,因为我下载后无法成功安装,听群友说也有同样问题,后来另外找人要了一个才能正常安装,算了吧,我还要测试汉字行不行呢,就放弃了这个官方提供的例子。
http://download.csdn.net/detail/testingba/7176581
要是觉得太贵,也可以直接找我要。
只说要点吧:
1. 没有仔细测试过的:以前我是直接把sdk的tools 和platform-tools 目录放进path的环境变量,因为老是失败,于是就新建了环境变量ANDROID_HOME ,然后把%ANDROID_HOME%\tools;%ANDROID_HOME%\platform-tools放进PATH里面,最后发现是之前的环境变量多写了一个字符,也就没有改回来再测试;
2. 还记得上一篇文章的UiSelector:description(String desc) 吗?我反复测试了几种对象引用方法:
WebElement el = driver.findElement(By.id("btnImsi")); //error WebElement el = driver.findElement(By.id("com.example.aimsi:id/btnImsi")); //error
WebElement el = driver.findElement(By.name("汉字一")); //ok WebElement el = driver.findElement(By.name("汉字二")); //ok
WebElement el = driver.findElement(By.name("IMSI_IMEI")); //ok WebElement el = driver.findElement(By.name("imsicontentdescription")); //ok |
看来猜测是对的,虽然都是By.name,实际上是对应于text和contentdescription两个属性的,个人建议最好优先使用contentdescription。
好了,就这样吧,大家先试试能不能搞定吧。
九十九道弯:
1. 第一篇文章中使用了maven,而且提供了离线包,然后我就想管他呢,装一个也不错,结果就先下载maven,配环境变量,插件怎么着都不对,离线包弄不好,在线安装了半天,发现url不对,用新的也老是安装不好,后来听说marketplace更简单,又去在线安装这东西;
2. 第二篇文章中又照着弄node.js,git,ant我倒是有现成的;
3. 最悲惨的是被测程序contactmanager把apk改成zip无法解压,说是已经损坏,直接安装也不行,只好自己写一个例子。
个人理解:
Maven是为了项目管理方便的,我就一个项目,无所谓,可以不用安装;
Node.js其实下载的appium里面都有,当时没注意,我不用npm安装,也可以不用;
Git是版本控制的,我大不了手工粘贴一下,也可以不用;
不过我写测试程序,引入selenium库的时候太暴力了,直接全部加入的,应该跟第二篇文章学习,建立一个userlib先。
相关参考:
1. 启动appium,直接运行appium,点击lauch就行了
01.png
02.png
2. 被测程序需要修改和查看的文件位置:
03.png
3. 被测程序的包名和activity,当然也可以使用traceview.bat 和hierarchyviewer.bat查看;
04.png
4. 被测程序控件引用相关属性
05.png
5. 测试程序需要注意修改的地方:
06.png
好了,就写到这里吧,吃饭先。