1、环境搭建好后,在cmd中运行ride.py或者创建ride的快捷方式启动ride
2、打开appium server,记得要点右上角的三角形符号才是开启了服务器,否则只是打开了软件而已
2、在ride中新建测试用例,使用Open Application关键字(关键字查找F5)打开手机指定APP,需要添加AppiumLibrary库
3、Open Application需要的Desired Capabilities分别如下:
platformName和platformVersion查看如下:
最后的测试用例效果如图:
4、点击运行,可成功开启指定app
1、在cmd命令行中输入命令:adb logcat>D:/log.txt(此处的D:/log.txt为你想要存放log日志信息的路径,可自定义)
2、手机上打开想要被测的app进行一些操作(操作任意,但一定要包含打开app这个操作,因为我们现在要进行的是Open Application即打开APP的测试,所以我们要获取该操作的activity)
3、在cmd命令行中按ctrl+c退出adb logcat命令
4、接下来我们开始找appPackage,方法为:查看log.txt文件,搜索PackageName,会查找出来很多appPackage,这是因为在第2步打开被测app之前就已经输入了第1步的命令,已经开始记录手机内容了,所以这里我们要进行判断,本文筛选标准为app名称,如本文中打开一个彩票软件,得到的log.txt效果如下:
可以得到appPackage=com.iwincaipiao
5、找到appPackage后,我们要开始找这个appPackage中的activity了,方法为:在log.txt中搜索com.iwincaipiao(即找到的appPackage名字),也会搜索到很多activity,我们也需要进行筛选,筛选标准为launch启动,如下图所示:
可以得到appActivity=com.joylottery.modules.launch.LaunchActivity
6、done
墙裂吐槽:网上有一种获取appPackage和appActivity的方法为:
1、手机打开待测app
2、电脑cmd中输入命令:adb shell
3、再输入:dumpsys window windows | grep -E 'mCurrentFocus|FocusedApp'
4、说获取的内容即为appPackage和appActivity,如下图:
5、该种方法确实能获取到appPackage和appActivity,但却不是我们需要的,原因在于我们需要的是开启的activity,而该种方法获得的却是开启后的activity!!!
1、SessionNotCreatedException: Message: A new session could not be created. (Original error: Command failed: C:\windows\system32\cmd.exe /s /c "D:\android-sdk-windows\tools\adb.exe -s 8BN0217922002675 shell "am start -S -a android.intent.action.MAIN -c android.intent.category.LAUNCHER -f 0x10200000 -n com.iwincaipiao/com.joylottery.modules.main.MainActivity""
Security exception: Permission Denial: starting Intent { act=android.intent.action.MAIN cat=[android.intent.category.LAUNCHER] flg=0x10200000 cmp=com.iwincaipiao/com.joylottery.modules.main.MainActivity } from null (pid=6028, uid=2000) not exported from uid 10182
原因:activity错误
解决方法:将appActivity由com.joylottery.modules.main.MainActivity改为com.joylottery.modules.launch.LaunchActivity即可。
2、SessionNotCreatedException: Message: A new session could not be created. (Original error: Command failed: C:\windows\system32\cmd.exe /s /c "D:\android-sdk-windows\tools\adb.exe -s 8BN0217922002675 install "C:\Program Files (x86)\Appium\node_modules\appium\build\settings_apk\settings_apk-debug.apk""
adb: failed to install C:\Program Files (x86)\Appium\node_modules\appium\build\settings_apk\settings_apk-debug.apk: Failure [INSTALL_FAILED_ALREADY_EXISTS: Attempt to re-install io.appium.settings without first uninstalling.]
原因:手机上已经安装了appium setting和unlock两个app
解决方法:
方法一:卸载手机上的appium setting和unlock两个app
方法二:修改源码文件android.js-->注释安装appiumSettings和unlock的两行代码(如下图),注释后需重启appium和ride:
文件路径:C:\Program Files (x86)\Appium\node_modules\appium\lib\devices\android\android.js
3、出现command failed shell:............ps:'uiautomator"错误:
参考https://www.cnblogs.com/syw20170419/p/7994482.html
4、error: Unhandled error: Error: ENOENT, no such file or directory 'C:\AndroidSDK\sdk\tools;C:\AndroidSDK\sdk\platform-tools;C:\AndroidSDK\sdk\build-tools;\build-tools'
原因:环境变量ANDROID_HOME设置出错
解决方法:
1、查看环境变量ANDROID_HOME,注意环境变量最后一个值不能带分号“;” 重试,不能解决进行下一步
2、如果环境变量ANDROID_HOME为用户变量,则在系统变量Path中不能用%ANDROID_HOME%替代,只有ANDROID_HOME为系统变量时才可,重试,不能解决进行下一步
3、查看ANDROID_HOME的值是否正确,楼主由于事先安装了带SDK的android studio,后来又安装了独立的android sdk,导致环境变量中ANDROID_HOME包含了两个SDK的路径,导致出错,卸载android studio及附带的sdk后,将ANDROID_HOME中与之相关路径删掉即可,或者直接将ANDROID_HOME中与之相关路径删掉,重试,不能解决检查上两步是否正确。
5、出现error::[INSTALL_FAILED_ALREADY_EXISTS: Attempt to re-install io.appium.android.ime without first uninstalling.]
解决方法:在cmd 中输入命令 adb uninstall io.appium.android.ime