美文网首页
『与善仁』Appium基础 — 19.Appium测试环境搭建总

『与善仁』Appium基础 — 19.Appium测试环境搭建总

作者: 繁华似锦Fighting | 来源:发表于2020-11-23 08:38 被阅读0次

    1、Appium测试环境搭建整体思路

    (1)Android测试环境搭建

    Android测试环境需要搭建三个环境,Java,AndroidSDK,Android模拟器。
    为什么要安装这三个环境?

    • Java:Android的应用程序层使用的语言是Java,所以需要使用Java环境。
    • AndroidSDK:Android SDK给你提供开发、测试所必须的Android API类库
    • Android模拟器:实际上就是一台手机,方便我们给大家展示效果。

    (2)Appium测试环境搭建

    Appium测试环境需要搭建

    • Appium Server:

      是Appium的核心,提供了一组REST API的Web服务器。

      Appium收到客户端的连接、监控命令,之后在移动设备上执行这些命令,最后把执行结果放在HTTP响应中返回给客户端。

      可以通过Node.js安装,也可以通过Appium Desktop启动Appium Server服务。

    • Appium Clients:

      appium官方提供了一套Appium client,涵盖多种语言ruby/java/python等,

      在测试的时候,一般要使用这些client库去替换原生的webdriver库。

      让我们可以更方便的写出可读性更好的测试用例。

    • Devices:

      就是我们的移动设备,可以是真实的手机,或者是电脑上的Android模拟器。

      (Android模拟器我们在上一步就完成了)

    (3)测试脚本语言的环境搭建

    例如:Pyhtonj、Java等开发环境。

    要使用Pyhton语言写我们的测试脚本,就搭建Python语言的开发环境,包括开发工具。

    要使用Java语言写我们的测试脚本,就搭建Java语言的开发环境,包括开发工具。

    2、Appium在Android端和IOS端的工作流程

    (1)Android

    在Android端,Appium基于WebDriver协议,利用Bootstrap.jar,最后通过调⽤用UiAutomator的命令,实现App的自动化测试。

    UiAutomator测试框架是Android SDK自带的App UI自动化测试Java库。

    另外由于UiAutomator对H5的支持有限,Appium引入了chromedriver以及safaridriver等来实现基于H5的自动化。

    appium 在android端工作流

    1. client端也就是我们test script(webdriver测试脚本)。

    2. 中间是起动的Appium的服务,Appium在服务端起了一个Server(4723端口),跟selenium Webdriver测试框架类似, Appium⽀持标准的WebDriver JSON Wire Protocol

      在这里提供它提供了一套REST的接口,Appium Server接收webdriver client标准rest请求,解析请求内容,调⽤用对应的框架响应操作。

    3. appium server会把请求转发给中间件Bootstrap.jar,它是用java写的,安装在手机上的Bootstrap监听4724端口并接收Appium的命令,最终通过调⽤用UiAutomator的命令来实现。

    4. 最后Bootstrap将执行的结果返回给Appium server。

    5. Appiumserver再将结果返回给Appium client。

    (2)ios

    在IOS端,Appium同样使⽤WebDriver的一套协议。

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

    appium 在ios端工作流

    1. client端 依然是test script(webdriver测试脚本)。

    2. 中间是起动的是Appium的服务,Appium在服务端起了一个Server(4723端口),跟selenium Webdriver测试框架类似,Appium⽀持标准的WebDriver JSON Wire Protocol

      在这里提供它提供了一套REST的接口,Appium Server接收webdriver client标准rest请求,解析请求内容,调⽤用对应的框架响应操作。

    3. appium server调用instruments.js启动⼀一个socket server,同时分出一个子进程运⾏instruments.app,将bootstrap.js(一个UIAutomation脚本)注⼊入到device⽤于和外界进行交互

    4. 最后Bootstrap.js将执行的结果返回给Appium server

    5. Appium server再将结果返回给 Appium client。

    (3)总结:

    所以我们可以看到android与ios区别在于Appium将请求转发到bootstrap.js或者bootstrap.jar。

    然后由bootstrap驱动UIAutomationUiAutomator去Devices上完成具体的动作。

    3、ADB执行原理和Appium执行原理

    (1)ADB原理:

    ADB原理简易模型图 (跟着12345步骤走)


    (2)ADB实际操作原理参考图

    (3)Appium原理

    Appium简易原理图(跟着序号12345678走)


    (4)Appium原理实际参考图( 结合简易原理图 )

    参考:

    相关文章

      网友评论

          本文标题:『与善仁』Appium基础 — 19.Appium测试环境搭建总

          本文链接:https://www.haomeiwen.com/subject/wldkiktx.html