下面是我们的代码脚本:(环境准备工作就不在这里讲述,自行百度)
下图中,appium作为server端收到客户端发出的post请求,可以看到请求参数就是我们代码里面写的那些字段信息
appium收到请求
appium接收到请求后,开始创建会话,如下图:
接下来是一段提示信息
意思是:在创建的会话中没有"automationName(自动化测试引擎)"属性(在老版本里面用的是UiAutomator1–对应的Android版本是4.1以上UiAutomator2-对应的Android版本是4.3,所以这里我们要使用2)
如果没填写,Appium自动给按照默认值UiAutomator2来处理的,同时可以看到
这个属性值在后面2.x版本中将作为必传参数。同时Appium-1.13版本一下的automationName默认值为UIAutomator1,我这里使用的版本是1.21。为了后续代码兼容性,我们在这里把它加到我们的代码中,如下图:
创建会话成功之后,就开始使用adb命令查找已经连接的设备列表信息
图中日志可以看到,已经找到1台设备,并且已连接上(这里我用的是模拟器,所以看到的是IP地址+端口号)。这里大家会有一个疑问,假如我连了多台设备,那又该怎么处理呢?这个我们在后续的文章中来讲述。
注:如果本机的adb环境变量没有配置,这里就会报错。
接下来检查手机的Android版本信息,如下图:
下面开始Appium与手机进行通信,先在手机上安装appium相关的apk
依次为:io.appium.settings、
io.appium.uiautomator2.server、appium-uiautomator2-server-v4.21.1.apk
整个流程基本结束,现在把整个流程总结如下:
1、发送http请求到appium server
2、appium server收到之后创建session
3、获取已连接的设备,并找到对应的Android版本号信息
4、获取io.appium.settings的状态,获取它的版本信息,确保其为最新的版本
获取settings_apk-debug.apk的状态,获取它的版本信息,确保其为最新的版本
获取
io.appium.uiautomator2.server的状态,获取它的版本信息,确保其为最新的版本
5、启动手机上的uiautomator.server的服务,然后设置将本地appium server 收到的指令从本地的8200端口,转发到设备的6790端口
6、跟手机创建会话
7、打开app
8、如果60s内appium server没有收到客户端的http请求,则主动关闭与客户端、手机端的会话,然后关闭app
客户端-appium-手机通信过程
最后感谢每一个认真阅读我文章的人,礼尚往来总是要有的,虽然不是什么很值钱的东西,如果你用得到的话可以直接拿走:
这些资料,对于【软件测试】的朋友来说应该是最全面最完整的备战仓库,这个仓库也陪伴上万个测试工程师们走过最艰难的路程,希望也能帮助到你!