您的位置:首页 > 移动开发

『与善仁』Appium基础 — 14、Appium测试环境搭建

2021-11-28 11:38 721 查看

[toc]

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

(1)Android测试环境搭建

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

  • 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)测试脚本语言的环境搭建

例如:Pyhton、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. Appium Server再将结果返回给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驱动

UIAutomation
UiAutomator
去Devices上完成具体的动作。

如下图所示:

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

(1)ADB原理

ADB原理简易模型图 (跟着12345步骤走),如下图所示:

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

如下图所示:

(3)Appium原理

Appium简易原理图(跟着序号12345678走),如下图所示:

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

如下图所示:

参考:

内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: