下面是我们的代码脚本:(环境准备工作就不在这里讲述,自行百度)
下图中,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-手机通信过程
最后:如果对软件测试、接口测试、自动化测试、技术同行、持续集成、面试经验交流。感兴趣可以进到 902061117,群内会有不定期的分享测试资料。
如果文章对你有帮助,麻烦伸出发财小手点个赞,感谢您的支持,你的点赞是我持续更新的动力。
好文推荐
2021软件测试工程师面试题汇总(内含答案)-看完BATJ面试官对你竖起大拇指!
什么样的人适合从事软件测试工作?
软件测试和软件开发哪个发展更好
那个准点下班的人,比我先升职了…