Appium基础-1简介及架构

简介

Appium是一个开源测试自动化框架,可用于原生,混合和移动Web应用程序测试。 它使用WebDriver协议驱动iOS,Android和Windows应用程序。

优势

• 可以跨平台同时支持android、ios
• 支持多种语言,java、python、php、Ruby等等
• 不用为复杂的环境发愁
• 如果你有selenium经验,直接上手。

架构原理

在手机操作系统自带的测试框架基础上实现的,Android和iOS的系统上使用的工具分别如下:
• Android(版本>4.3):UIAutomator,Android 4.3之后系统自带的UI自动化测试工具。
• Android(版本≤4.3):Selendroid,基于Android Instrumentation框架实现的自动化测试工具。
• ·iOS:UIAutomation(instruments框架里面的一个模板),iOS系统自带的UI自动化测试工具。

Appium基础-1简介及架构_第1张图片
Appium基础-1简介及架构_第2张图片

运行原理

电脑(client)上运行自动化测试脚本,调用的是webdriver的接口,appium server接收到我们client上发送过来的命令后他会将这些命令转换为UIautomator认识的命令,然后由UIautomator来在设备上执行自动化。
Appium的架构原理如上图所示,由客户端(Appium Client)和服务器(Appium Server)两部分组成,客户端与服务器端通过JSON Wire Protocol进行通信。

  • Appium服务器
    Appium服务器是Appium框架的核心。它是一个基于Node.js实现的HTTP服务器。Appium服务器的主要功能是接受从Appium客户端发起的连接,监听从客户端发送来的命令,将命令发送给bootstrap.jar(iOS手机为bootstrap.js)执行,并将命令的执行结果通过HTTP应答反馈给Appium客户端。
  • Bootstrap.jar。
    Bootstrap.jar是在Android手机上运行的一个应用程序,它在手机上扮演TCP服务器的角色。当Appium服务器需要运行命令时,Appium服务器会与Bootstrap.jar建立TCP通信,并把命令发送给Bootstrap.jar;Bootstrap.jar负责运行测试命令。
  • Appium客户端。
    它主要是指实现了Appium功能的WebDriver协议的客户端Library,它负责与Appium服务器建立连接,并将测试脚本的指令发送到Appium服务器。现有的客户端Library有多种语言的实现,包括Ruby、Python、Java、JavaScript(Node.js)、Object C、PHP和C#。Appium的测试是在这些Library的基础上进行开发的。

你可能感兴趣的:(Appium服务器,Appium客户端,Bootstrap.jar,Appium+Python3)