Appium 使用 appium 过程中遇到的问题

陈平安 · 2023年02月02日 · 最后由 Eason 回复于 2023年02月02日 · 6292 次阅读

python-appium,每次运行时都要重启 APP 每次运行命令时 APP 都要重启,这样每次都要跳转到登录页登录之后再进行真正得功能测试,有没有办法可以在已经启动得进程,然后打开 app 就直接进入我打开得页面中

共收到 9 条回复 时间 点赞

如果你是客户端去进行元素调试那么你可以获取到手机系统的包名和主页名,这样最多只是把 app 后台方便调试
如果你是执行用例想要这样的话那就设置 setupClass 共用一个 driver,想要重启 app 时再 close,start,前提你得保证用例稳定执行,不然全是 err

不能携带登录态吗

sir 回复

不可以呀,我们公司得 app 每次退出进程后都需要重新登录

Time 回复

啊?我可能和你说的不是一个意思啊,我指得是,我手机上先启动 app,然后再启动 appium 服务来启动 app,我想要它不是重新来一个进程,而是保持我打开得那个进程启动

可以不填写 appPackage 选项,或者将 noreset 改成 true

Time 回复

理解错了,那就是问开发这块谁处理的,开个后门,如果是某个接口判断的,应该是可以尝试使用 charles 抓包然后代理,让服务端认为是你是在线的

Eason 回复

noReset 只是可以读取用户使用过数据,不能用统一个进程,不填写 appPackage 选项会报错吧

陈平安 回复

看你的启动参数有哪些,我之前一直都不会报错,貌似是设置哪个东西就没有问题了,app 启动是自己用 adb 指令起的,你可以看他源码

陈平安 回复
desiredCapabilities.setCapability(AndroidMobileCapabilityType.PLATFORM_NAME, Platform.ANDROID);
desiredCapabilities.setCapability(MobileCapabilityType.AUTOMATION_NAME, AutomationName.ANDROID_UIAUTOMATOR2);
desiredCapabilities.setCapability("disableSuppressAccessibilityService", true);
desiredCapabilities.setCapability(AndroidMobileCapabilityType.ADB_EXEC_TIMEOUT, 60000);
desiredCapabilities.setCapability("uiautomator2ServerInstallTimeout", 30000);
desiredCapabilities.setCapability(MobileCapabilityType.NEW_COMMAND_TIMEOUT, 3600);
desiredCapabilities.setCapability(MobileCapabilityType.NO_RESET, true);
desiredCapabilities.setCapability(MobileCapabilityType.BROWSER_NAME, "");
desiredCapabilities.setCapability(MobileCapabilityType.UDID, udId);
desiredCapabilities.setCapability("skipLogcatCapture", true);

好像是 browserName 为空字符串就可以了,我 java 是没问题,你可以参考下,希望能帮到你

需要 登录 后方可回复, 如果你还没有账号请点击这里 注册