多语言展示
当前在线:1085今日阅读:27今日分享:41

如何简易了解Appium的工作原理

在APP自动化测试过程中,测试的小伙伴们经常是要和appium这个测试工具来打交道的。当然,相信有些小伙伴们知道如何去使用这个工具,至于工作原理应该不算了解吧。下面我就和大家分享下Appium的工作原理的经验吧。
工具/原料

安卓端和IOS端运行环境各一台

方法/步骤
1

首先说说Appium在Android端的工作原理吧,任何应用程序在运行时候都是要遵循一套协议或者规则,而我们提到的appium则是基于WebDriver协议,利用Bootstrap.jar的java文件集成包,最后通过调用输入UiAutomator的命令,从而实现App的自动化测试。

2

需要介绍的是,UiAutomator除了是条命令之外,其实也是一种测试框架。它是Android SDK自带的App UI自动化测试Java库。另外由于UiAutomator对H5的支持有限,appium引入了chromedriver以及safaridriver等来实现基于H5的自动化。

3

接下来详细介绍下appium 在android端的工作流程:client(客户端)端通常是指连接终端的机器或者设备,而在这里的客户端则是指的webdriver测试脚本。中间是起的Appium的服务,Appium在服务端起了一个Server(4723端口),跟selenium Webdriver测试框架类似, Appium持标准的WebDriver JSONWireProtocol。在这里提供它提供了一套REST的接口,Appium Server接收web driver client标准rest请求,解析请求内容,调用对应的框架响应操作。

4

appium server会把请求转发给中间件Bootstrap.jar ,它是用java写的,安装在手机上.Bootstrap监听4724端口并接收appium 的命令,最终通过调用UiAutomator的命令来实现。最后Bootstrap将执行的结果返回给appium server,appium server再将结果返回给 appium client。

5

在而IOS端,appium同样使用WebDriver的一套协议,与Android端不同的是,appium ios封装了apple的 Instruments框架,主要用了Instrument里的UI Automation(Apple的自动化测试框架),然后在设备中注入bootstrap.js进行监听。

7

最后Bootstrap.js将执行的结果返回给appium server,appium server再将结果返回给 appium client。所以我们可以看到android与ios区别在于appium 将请求转发到bootstrap.js或者bootstrap.jar.然后由bootstrap 驱动UIAutomation和UiAutomator去devices上完成具体的动作。

注意事项

在了解Appium的工作原理时不要死记硬背,需要理解记忆。最好在脑中形成个流程图

推荐信息