Python安卓手机自动化 - 获取运行应用信息 - Zanealancy博客

Python安卓手机自动化 - 获取运行应用信息

获取应用appPackage和appActivity

cmd里面指向到雷电模拟器的路径,并输入 adb -s emulator-5554 shell,里面的 emulator-* 就是之前adb devices里面的名称,这个意思是获取这个模拟器的shell,然后再输入 dumpsys activity | grep mFocusedActivity 即可获取当前打开的app的appPackage和appActivity。

华为鸿蒙系统为例真机调试

获取测试手机及被测app的信息(所需capability配置内容)

  1. platformName,声明被测手机系统是ios还是Android。
  2. platformVersion,即测试手机的Android版本号。可在手机设置里面查看,也可以通过命令 adb shell getprop ro.build.version.release 查看。
  3. deviceName,即测试手机的名称。可在手机设置里面查看,也可以通过命令 adb devices -l 查看,其中model即为连接的测试机的名称。
  4. appPackage,即被测app的包名。
  5. appActivity,即被测app的launcherActivity。手机上打开app,通过输入命令 adb shell dumpsys activity | findstr “mResume” 查看,如若获取不到需使用命令 adb shell dumpsys activity | findstr “mFocus” 查看。,以今日头条app为例。
  6. newCommandTimeout,newCommandTimeout是appium等待下一次命令发送过来的时长。如果在这个时间范围内,还未收到下一次的命令,就会报超时异常。默认是60秒,可以根据需求设置对应时间。比如,测试过程中存在上传apk文件的这种操作,该操作耗时可能会比较长,若果不从新设置超时时间,可能在60s内无法完成上传操作,导致测试流程中断。 e.g. 60
  7. udid,1. udid是满足Appium允许多设备同时运行的参数,当存在多设备的时候,appium只会读取设备列表中的第一个设备进行运行。如果只设置devicename,是不能指定设备的唯一标识的,必须通过udid来确定设备,uidi是确定设备的唯一标识。2. Android 系统中可以使用 adb devices -l 来获取设备列表,从而取得udid
  8. autoGrantPermissions,1. autoGrantPermissions是设置appium自动授予的权限的参数。比如,在设备首次安装app是会弹出需要授予系统权限的弹框,这种弹框的弹出可能会影响测试过程,但是如果所有的权限弹框操作都全部通过脚本去处理就会非常麻烦。因此可以使用autoGrantPermissions去自动授予权限,关闭权限弹框。2. 注意:当noReset参数是True的话,autoGrantPermissions则无法生效。 true or false
  9. noReset,Android: noReset的作用是停止APP、 不清除APP数据、 不卸载app。 true,false
  10. fullReset,Android:停止APP、 清除APP数据 或卸载app停止APP、 清除APP数据 或卸载app。 true,false
  11. dontStopAppOnReset,如果配置的APP是当前已经启动的APP的话,则不会kill掉当前页面,再重新启动的。(参数很有用,尤其在自动化测试过程中需要衔接上调case和下调case的使用), true,false。原理如下:
    • adb shell am start 包名/页面名 启动app,如果app已经启动,则不会再启动。
    • adb shell am start -S 包名/页面名 启动app,如果app已经启动,会先关掉app再启动。
    • relaxed-security设置为true的话,可以在代码中使用adb命令。
  12. skipDeviceInitialization,如果设置为true,则在会话创建时取消设备启动检查(主要检查设备是否准备好,设置应用程序是否已安装等)。默认为False 。 true,false
  13. skipServerInstallation,如果设置为true,则跳过在被测设备上的UiAutomator2 Server组件安装和所有相关检查。如果您确定设备上安装了正确的服务器版本,这将有助于加快会话启动。如果没有安装服务器或安装了不正确的版本,那么稍后可能会出现意外错误。默认为False。 true,false
  14. skipUnlock,当设置成true时会跳过检查锁屏是否存在的操作。默认情况下,UiAutomator2驱动程序尝试在开始测试之前检测设备的屏幕是否被锁定并解锁(有时可能不稳定)。注意,此操作需要一些时间,因此强烈建议将此功能设置为true,并在测试设备上禁用屏幕锁定。 true or false
  15. skipLogcatCapture,设置为true将禁止在测试运行期间自动收集logcat输出。默认为False。 true or false
  16. systemPort,UiAutomator2服务器监听的端口号。默认情况下,选择8200…8299范围内的第一个空闲端口。如果在同一台计算机上运行并行测试,建议设置此值。
  17. ignoreUnimportantViews,启用或禁用布局层次结构压缩。如果启用压缩,框架中将只包含对uiautomator测试比较重要的节点。其他不必要的节点会被删除,默认为True。 true or false
阿里云安全可靠、弹性可伸缩的云计算服务。百款产品直降,平均降幅20%,下方点击直达: