一 appium环境搭建
1.安装Android studio,安装sdk,并设置Android sdk环境变量(环境变量添加ANDROID_SDK_HOME,值为SDK安装路径,path里添加%ANDROID_SDK_HOME%\platform-tools,%ANDROID_SDK_HOME%\tools ,系统变量添加ANDROID_HOME,值为SDK安装路径)
2.安装python(我安装的是2.7.12),并把pythond 安装路径添加到环境变量PATH
3.安装Node.js
4.安装jdk(1.8版本),默认安装,并设置环境变量(环境变量添加Java_Home,值为SDK安装路径,path里添加%Java_Home%\jdk\bin,%Java_Home%\jre\bin ,添加ClassPath,值为%Java_Home%\bin;%Java_Home%\lib\dt.jar;%Java_Home%\lib\tools.jar)
5.安装appium服务器(我安装的是AppiumForWindows_1_4_16_1版本)
6.安装pip工具
7.安装appium客户端,连网,cmd窗口下,通过命令 pip install robotframework-appiumlibrary
二 测试数据采集
1.设备:通过adb 命令获取设备信息传参给appium服务器(adb devices 和adb shell getprop ro.build.version.release)
1)真机
2)模拟器:使用Android studio 创建avd模拟器(环境变量添加,系统变量ANDROID_AVD_HOME,值为avd目录)
2.获取应用启动的包名,activity名的方法:logcat搜索关键字或aapt工具
3.界面控件信息查看工具:uiautomatorviewer.bat(系统自带,一般在sdk\tools\bin目录下)
4.webdriver:提供多种查看控件的方法,测试客户端界面时发现用的较多的是控件ID/文本/类型,发现比较容易的是通过控件ID,然后当控件没有id时,通过文本,当没有id也没有文本,同一个类型的控件有多个时,则通过python的list保存,然后遍历,最终找到指定的控件。比如定位手机号栏目时,竟然没有id,通过文本定位报错,而该界面同类型的编辑输入框有4个(android.widget.EditText),最后通过list= driver.findelementsbyclassname("android.widget.EditText")
telephoneControls = list[1]定位到了电话栏目输入框
三 测试场景和脚本
appium启动了,控件可以找到了,接下来就可以根据不同的场景可以编写对应的测试脚本了,比如操作事件clik,断言判断测试结果等,试了几个例子,调试一下就能够成功跑起来了