手把手教你appium_android第一个示例

  

 

由于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的;

5.      下载示例代码:
https://github.com/appium/appium/tree/master/sample-code/examples/java/junit/src/test/java/com/saucelabs/appium/appiumAndroidContactsTest.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

 手把手教你appium_android第一个示例

02.png

 手把手教你appium_android第一个示例

 

2.      被测程序需要修改和查看的文件位置:

03.png

 手把手教你appium_android第一个示例

 

3.      被测程序的包名和activity,当然也可以使用traceview.bat 和hierarchyviewer.bat查看;

 

04.png

 手把手教你appium_android第一个示例

 

 

4.      被测程序控件引用相关属性

05.png

 

手把手教你appium_android第一个示例

 

 

5.      测试程序需要注意修改的地方:

06.png

 手把手教你appium_android第一个示例

 

好了,就写到这里吧,吃饭先。

 

 

 

 

手把手教你appium_android第一个示例,布布扣,bubuko.com

手把手教你appium_android第一个示例

上一篇:android:descendantFocusability用法简析


下一篇:2X ApplicationServer XG从菜鸟到高手系列1-安装篇