美文网首页
appium简介

appium简介

作者: Cyzhouke | 来源:发表于2020-06-21 22:42 被阅读0次

    1、简介

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

    2、appium相关文档

    3、appium优势

    • 跨平台同时支持Android、IOS
    • 支持多种语言:Java、Python、PHP、Ruby等
    • 不用为复杂的环境发愁
    • 如果你有selenium经验,直接上手

    4、appium生态工具

    • adb:Android的控制工具,用于获取Android的各种数据和控制
    • appium Desktop:内嵌套了appium server和Inspector的综合
    • appium server:appium的核心工具,命令行工具
    • appium clients:各种语言的客户端封装库,用于连接appium server
    • Java、Python、Ruby、Robotframework-appium
    • AppCrawler:自动遍历工具

    5、Appium架构原理

    Appium是在手机操作系统自带的测试框架基础上实现的,Android和iOS的系统上使用的工具分别如下:

    • Android(版本>4.3):UIAutomator,Android 4.3之后系统自带的UI自动化测试工具。
    • Android(版本≤4.3):Selendroid,基于Android Instrumentation框架实现的自动化测试工具。
    • IOS:UIAutomation(instruments框架里面的一个模板),IOS系统自带的UI自动化测试工具。
    appium.png

    5.1、运行原理

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

    5.2、appium服务器

    Appium服务器是Appium框架的核心。它是一个基于Node.js实现的HTTP服务器。Appium服务器的主要功能是接受从Appium客户端发起的连接,监听从客户端发送来的命令,将命令发送给bootstrap.jar(iOS手机为bootstrap.js)执行,并将命令的执行结果通过HTTP应答反馈给Appium客户端。

    5.3、Bootstrap.jar

    Bootstrap.jar是在Android手机上运行的一个应用程序,它在手机上扮演TCP服务器的角色。当Appium服务器需要运行命令时,Appium服务器会与Bootstrap.jar建立TCP通信,并把命令发送给Bootstrap.jar;Bootstrap.jar负责运行测试命令。

    5.4、Appium客户端

    它主要是指实现了Appium功能的WebDriver协议的客户端Library,它负责与Appium服务器建立连接,并将测试脚本的指令发送到Appium服务器。现有的客户端Library有多种语言的实现,包括Ruby、Python、Java、JavaScript(Node.js)、Object C、PHP和C#。Appium的测试是在这些Library的基础上进行开发的。

    6、Appium组件

    6.1、appium server

    Appium Server就是Appium的服务端——一个web接口服务,使用Node.js实现。引用官网解释说明。


    appium server.png

    6.2、appium desktop

    appium desktop~1.png appium desktop~2.png appium desktop~3.jpg

    Appium Desktop是一款适用于Mac,Windows和Linux的开源应用程序,它以美观而灵活的用户界面为您提供Appium自动化服务器的强大功能。
    它是几个Appium相关工具的组合:

    • Appium Server的图形界面。您可以设置选项,启动/停止服务器,查看日志等...您也不需要使用Node的NPM来安装Appium,因为Node运行时与Appium Desktop捆绑在一起。
    • 您可以使用Inspector查看应用程序的元素,获取有关它们的基本信息,并与它们进行基本的交互。
      注意:Appium Desktop与Appium不同。Appium Desktop是Appium的图形前端,带有其他工具。 Appium Desktop以其自己的节奏发布,并拥有自己的版本控制系统。 就像国内很多定制的Android系统有自己版本号,但是都是基于一个Android系统版本封装的。版本号不一定与Andriod原生系统版本号一致。
      主要功能:UI分析、录制用例、元素查找、Attach已有的session、云测试
      主界面介绍:Appium Desktop主界面包含三个菜单Simple、Advanced、Pressets
    • Simple
    Host:设置Appium server的ip地址
    port:设置端口号,默认是4723不用修改
    start server:启动Appium server
    
    • Advanced:高级参数配置,主要是Android、IOS设备,log相关配置
    • Pressets:将Advanced中的配置信息作为预设配置

    6.3、appium client

    因为Appium是一个C/S结构,有了服务端的肯定还有客户端,Appium Clients就是客户端,它会给服务端Appium Server发送请求会话来执行自动化任务。就像我们浏览器访问网页,浏览器是客户端,通过操作发送请求服务器来获取数据。我们可以使用不同的客户端浏览器(IE,Firefox,Chrome)访问一个网站。Appium客户端可以使用不同的语言来实现,如Python,java等。具体详见下表:

    Language/Framework Github Repo and Installation Instructions
    Ruby https://github.com/appium/ruby_lib
    Python https://github.com/appium/python-client
    Java https://github.com/appium/java-client
    JavaScript (Node.js) https://github.com/admc/wd
    Objective C https://github.com/appium/selenium-objective-c
    PHP https://github.com/appium/php-client
    C# (.NET) https://github.com/appium/appium-dotnet-driver
    RobotFramework https://github.com/jollychang/robotframework-appiumlibrary

    7、Capability配置

    7.1、什么是capability

    desired capability的功能是配置Appium会话。他们告诉Appium服务器您想要自动化的平台和应用程序。
    Desired Capabilities是一组设置的键值对的集合,其中键对应设置的名称,而值对应设置的值。(如:"platformName": "Android")Desired Capabilities主要用于通知Appium服务器建立需要的Session。
    Appium的客户端和服务端之间进行通信都必须在一个Session的上下文中进行。客户端在发起通信的时候首先会发送一个叫作“Desired Capabilities”的JSON对象给服务器。服务器收到该数据后,会创建一个session并将session的ID返回到客户端。之后客户端可以用该session的ID发送后续的命令。

    7.2、capability常用配置

    • 公有参数
    公有参数.png
    • Android
      Android-0.png
    Android-1.png Android-2.png Android-3.png
    • iOS
      iOS-0.png
    iOS-1.png

    7.3、启动APP

    capability.png
     # desired capability参数 
    { 
    "platformName": "Android", 
    "platformVersion": "8.0.0", 
    "appPackage": "com.taobao.taobao", 
    "appActivity": "com.taobao.tao.welcome.Welcome", 
    "noReset": "true", 
    "deviceName": "test" #此参数Android已忽略,但是不可或缺,所以随便输入就可 
    }
    

    7.4、Inspector元素获取

    Inspector.png

    相关文章

      网友评论

          本文标题:appium简介

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