Appium基础学习之 | Appium-Desktop日志分析

本文详细解析了Appium-Desktop的执行流程,从启动Server到安装测试所需包,再到设备端的设置与应用启动,直至测试结束的全过程。包括端口转发、设备状态检查及测试代码执行等关键步骤。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

在《Appium基础学习之 | Appium-Desktop使用》这篇文章介绍了Appium-Desktop的基本流程使用,也就是把运行环境都调试通过了,下面开始分析分析Appium-Desktop的执行过程中发生了些什么事情。

1.启动Appium-Desktop Server,默认端口的4723

2.根据DesiredCapabilities设置的所有参数值,并根据这个设置创建一个Appium Session,这个Session是唯一的,它用于接下来与客户端保持通信使用

3.得到测试应用包的包名、主活动Activity名

4.检查指定的设备中有没有安装io.appium.uiautomator2.server这个包,得到的结果是not

5.然后开始安装io.appium.uiautomator2.server、io.appium.uiautomator2.server.test两个包对应的APK

6.安装完io.appium.uiautomator2.server、io.appium.uiautomator2.server.test两个包对应的APK后,通过adb shell pm list instrumentation命令检查一下使用instrumentation执行测试的列表中有没有该包,结果为存在并待命等待运行。

7.安装io.appium.setting包

8.运行io.appium.setting这个包并进行一些设置(在Appium-Desktop的执行过程中设备在安装完setting包有一个打开setting应用的步骤就是完成了这些设置)

9.完成appium服务的8200端口与设备6790端口转发,简单的说就是把Appium服务机器上的8200端口与设备端6790端口完成对接,接下来需要通过这个端口来通信。这个在后面说Appium-UiAutomator2-Server这个Apk分析的时候会继续说。

10.安装被测应用

11.先关闭io.appium.uiautomator2.server这个包的应用,然后运行

adb shell am instrument -w io.appium.uiautomator2.server.test/androidx.test.runner.AndroidJunitRunner

12.向设备端的appium-server发送一个获取状态的请求,确认在设备端的Appium scoket server是正确的,注意这里的8200端口,发送的请求通过appium-server所在机器上的8200端口转发到设备端的6790端口(如果觉得很神奇,可以去了解下adb forward的介绍)

13.使用Appium写代码是不会有启动被测应用的,可以看到UiAutomator2打印了日志,然后通过adb shell am start来启动了被测应用

14.发送查找元素element的请求

15.然后发送点击的请求

16.遇到driver.quit或者driver.close方法,发送delete请求,会删除sessionid、停止被测应用程序、删除端口转发

画个简单流程图,如下

 

评论 12
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值