电子ic网站建设,多语言商城源码,wordpress后台教程,做网站打广告需要多少个服务器目录
1、Appium原理
1.1、Android Appium原理图文解析
1.1.2、原理详解
1.1.2.1、脚本端
1.1.2.2、appium-server
1.1.2.3、中间件bootstrap.jar
1.1.2.4、驱动引擎uiautomator
1.2、 IOS Appium原理 1、Appium原理
1.1、Android Appium原理图文解析 执行测试脚本全过…目录
1、Appium原理
1.1、Android Appium原理图文解析
1.1.2、原理详解
1.1.2.1、脚本端
1.1.2.2、appium-server
1.1.2.3、中间件bootstrap.jar
1.1.2.4、驱动引擎uiautomator
1.2、 IOS Appium原理 1、Appium原理
1.1、Android Appium原理图文解析 执行测试脚本全过程
1、测试脚本通过Json Wire Protocol协议以json格式将数据通过HTTP协议与appium-server之间进行通信将数据发送给appium-server2、appium-server接收请求解析请求参数然后将数据通过绑定的4724PC端口将数据发送给设备端的4724监听端口3、中间件bootstrap.jar监听4723端口接收appium-server发送过来的数据并将appium发送命令转换成uiautomator识别的命令然后再转发给UIautomator4、UIautomator接收bootstrap.jar转发过来的命令并执行命令然后返回执行的结果5、执行结果层层往后返回与数据请求方向相反脚本端接收执行返回的结果然后进行下一步操作。6、当测试脚本执行完成后需关闭webdriver执行driver.quit()会关闭所有关联窗口和结束对应session会话同时也会把对应进程关闭。
1.1.2、原理详解
1.1.2.1、脚本端 appium支持多语言,如Python、Java、JS、C、C#等语言Appium提供的Appium-client API是Appium通过扩展Selenium的Webdriver协议而来的在编写脚本代码的时只要实现Webdriver标准协议即可。因为是扩展Selenium的WebDriver协议所以脚本客户端与appium-server底层通信协议是基于HTTP协议。
1.1.2.2、appium-server appium-server需要脚本端告诉它应该做什么所以启动appium server时需要脚本端告诉它设备信息要启动的app要启动的页面等相关配置信息而这个配置信息是在脚本端通过desired Capabilities一个设备信息字典传递通过Json Wire Protocol协议将测试脚本以json格式发送测试设备信息给appium-server端然后根据设备信息启动一个该设备对应的session会话用于管理在整个测试执行期间该设备会话信息的保持。 appium-server默认绑定端口4723用于与脚本客户端的通信创建session成功之前就已将bootstrap.jar放入手机中并开启设备上的基于appium bootstrap的socket服务绑定本机和boostrap通信的端口号4724用于和终端设备通讯默认监听4724端口等待client的连接。 appium-server将脚本的请求解析后给到4724端口通过socket通信将数据发送到终端设备的4724端口对于socket服务来说appium-server就充当了client的角色appium-server通过4724端口主动去请求设备上的socket服务即向socket服务发送请求即bootstrap.jar。
1.1.2.3、中间件bootstrap.jar bootstrap是Appium在初始化的时推送到Android手机上的一个UiAutomator测试脚本该脚本的唯一一个测试方法的作用就是在手机端开启一个SocketServersocket通信服务实际上bootstrap是一个socket服务器专门监听设备上4724端口过来的appium的连接和命令数据并把appium的命令转换成uiautomator的命令来让uiautomator进行处理。 appium的命令可以转换成uiautomator命令原理bootstrap是uiautomator的测试脚本它的入口类bootstrap继承于UiautomatorTestCase 所以Uiautomator可以运行它 它也可以使用uiautomator的方法。
1.1.2.4、驱动引擎uiautomator uiautomator是谷歌在Android4.1版本发布时推出的一款用Java编写的UI测试框架它只能用于UI即黑盒方面的测试.所以uiautomato只能运行在Android4.1之后的版本其最大的特点是可以跨进程操作可以执行通过appium发送的命令实现自动化模拟人为测试的效果 uiautomator2是uiautomator的升级版目的是用于替换uiautomatorbootstrap.jar功能比uiautomator更加强大。 1.2、 IOS Appium原理 iOS 9.3 之后的版本推出 XCUITest 工具用以替代 UIAutomationAppium需要1.6.0以上的版本才可以支持Appium 在iOS 9.3 后全面采用 WebDriverAgent方案。WebDriverAgent简称WDA是一个开源的工具由 Facebook 提供用于在 iOS 设备上进行自动化测试。它是基于 WebDriver 协议的实现通过与客户端的交互来控制 iOS 设备上的应用程序。XCUITest是 XCTest 框架的扩展是苹果官方提供的用于 iOS 应用程序 UI 测试的框架。它支持 Objective-C 和 Swift 语言并提供了一组 API用于操作 iOS 应用程序的用户界面元素。使用 XCUITest 可以模拟用户对应用程序的操作如点击按钮、输入文本、滑动屏幕等并验证应用程序的行为是否符合预期。 测试脚本执行流程
1、测试脚本通过Json Wire Protocol协议以json格式将数据通过HTTP协议与appium-server之间进行通信将数据发送给appium-server。2、appium-server收到数据后与WebDriverAgent服务通信WebDriverAgent服务与手机端的WebDriverAgentRunner应用通信将数据转发到WebDriverAgentRunner应用。3、WebDriverAgentRunner收到数据后解析数据调用测试框架XCUITest来完成操作操作完成后结果数据层层往回返回。