【测试】Appium原理


前言

Appium是一块主流的移动自动化测试框架,支持跨语言(如Java,Python等)

Appium的实现原理

被测设备为安卓

对于安卓被测设备,目前可以选择UIAutomatorUIAutomator2作为底层的测试框架

一、使用UIAutomator作为底层测试框架,原理图如下:
在这里插入图片描述
执行流程:
(1)Appium Client(我们编写的脚本)发送基于Json Wire Protocol,发送HTTP请求给Appium Sever,Appium Sever监听4723端口。若发送JSON内容为配置信息,被测设备收到命令后安装应用并启动;若为查找JSON,UI Automator会查找对应控件
(2)Appium Sever利用appium-android-driver,使用adb push 命令将Bootstrap.jar发给安卓被测设备。Bootstrap.jar有两个角色:一个是UI Automator的测试脚本,另一个是监听4724端口的socket服务器
(3)接下来Bootstrap.jar会接收Appium Sever发过来的命令,并将命令转发给UiAutomator对被测app执行相关操作
(4)Bootstrap.jar将结果发给Appium Server再传给Appium Client

注:使用UIAutomator测试框架,Appium Client和Appium Server可不在同一PC上(通过HTTP),但Appium Server和安卓被测设备必须通过数据线连接。

二、使用UIAutomator2作为底层测试框架,原理图如下:
在这里插入图片描述
执行流程:
(1)Appium Client(我们编写的脚本)发送基于Json Wire Protocol,发送HTTP请求给Appium Sever。
(2)Appium Sever利用UIAutomator2 Driver,将UIAutomator2 server的两个apk发给安卓被测设备。这两个apk分别为io.appium.uiautomator2.server.apk(执行handlers)以及io.appium.uiautomator2.server.test.apk(只有一个test,用于启动server)
(3)接下来UIAutomator2 server APK 里面的Netty Server会接收Appium Server(相当于Netty Client)发来的HTTP请求,并通过AppiumServlet管理请求的路由,将driver发过来的请求转发给对应Request Handler。接着Request Handler 调用UiAutomator V2让被测APK执行指定操作,操作的结果经AppiumResponse统一封装
(4)操作结果返回给appium-uiautomator2-driver(Appium Sever),再将结果返回给Appium Client

注:使用UIAutomator2测试框架,Appium Client和Appium Server可不在同一PC上(通过HTTP),Appium Server和安卓被测设备可通过数据线或同一wifi连接。

被测设备为苹果

在这里插入图片描述
执行流程:
(1)PC端用命令行或Xcode在被测苹果设备上启动testRunner,安装一个WebDriverAgentRunner
(2)WebDriverAgentRunner(WebDriverAgent Api支持W3C WebDriver Spec设计风格),接收Appium Server发送过来的HTTP请求,转义为XCTest的命令,在被测苹果设备对被测app执行操作,并且操作结果再以Json的形式反馈给Appium Client进行汇总

注:Accessibility 是 Apple 很早之前构建的一个框架,它能帮助一些行动不便的用户来更好地使用应用。XCTest利用Accessibility进行UI控件的识别和定位

参考链接:
https://blog.csdn.net/jffhy2017/article/details/69220719
https://blog.csdn.net/appke846/article/details/82461100
https://blog.csdn.net/qq_46158060/article/details/110181488
https://blog.nowcoder.net/n/ff5f3906472742e4a7116523203b5fd1
https://www.jianshu.com/p/71ab7fe2988c
https://my.oschina.net/u/4379065/blog/3220256

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Bug 挖掘机

支持洋子

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值