• 【Android测试】【第十四节】Appium——简述


     版权声明:本文出自胖喵~的博客,转载必须注明出处。

        转载请注明出处:http://www.cnblogs.com/by-dream/p/5124340.html

    前言


      同样的,这一篇我要介绍的也是一款UI自动化工具,地址:http://appium.io/  

      第三方(非谷歌)研发的开源测试工具,说到这里也许有人会问 “为什么已经介绍了Uiautomator还要介绍它呢?”,我们就说说Appium有哪些不一样的地方:

        1、appium可以测试原生的、混合的、或者是移动端的web项目;

        2、appium不仅支持测试Android应用,还可以测试ios;

        3、appium跨平台,可以运行在Windows或者Linux上;

        4、appium支持多种语言,你可以用你自己熟悉的语言,如java、ruby、python等来完成你的脚本。

      它的底层架构是:

                

      网上找了两段解释,说的应该比较清楚:

        一、Appium采用底层驱动商提供统一API,就是WebDriver API。

        WebDriver(也称Selenium WebDriver)其实是一个C/S架构的协议,叫做JSON Wire Protocol。通过这个协议,用任何语言写成的客户端都可以发送HTTP请求给服务器。这就意味着你可以自由选择你想要使用的测试框架和执行器,也可以将任何包含HTTP客户端的库文件加入到你的代码中。换句话说,Appium的WebDriver不是一个技术上的测试框架,而是一个自动化库。

        二、在Android端,WebDriver利用Bootstrap.js,最后通过调⽤用UiAutomator的命令,实现App的自动化测试。UiAutomator测试框架是Android SDK⾃自带的App UI自动化测试Java库。另外由于UiAutomator对H5的⽀支持有限,appium引入了chromedriver来实现基于H5的自动化。

      
        1.左边的WebDriver script是我们的selenium测试脚本
        2.中间是起的Appium的服务,Appium在这边起了一个Server(4723端口),跟seleniumWebdriver测试框架类似,Appium⽀支持标准的WebDriver JSONWireProtocol 。在这里提供了一套web服务,Appium Server接收web driver 标准请求,解析请求内容,调⽤用对应的框架响应操作。如:脚本发送一个点击按钮的请求给appium server,
        3. appium server会把请求转发给中间件Bootstrap.jar ,它是用java写的,安装在手机上.Bootstrap 接收appium 的命令(4724端口),最终通过调⽤用UiAutomator的命令来实现。
        4.最后执⾏行的结果由Bootstrap返回给appium server
        5.另外,appium还用到了chromedriver来⽀支持基于H5(webview)的测试。

      了解完基本的一些之后,就可以环境搭建了。

    环境搭建


      给我的感觉是Appium的脚本并没有多么的难写,但是它的环境搭建绝对是特别复杂的。反正搭建过程我是用了很久。下面是我过程中的一些截图,部分地方我会进行说明:

      使用npm安装appium:

      检查appium所需要的环境是否可以了:

      这里中了一枪,配置环境变量后面不用分号

      安装python:

      启动客户端:

    运行case


      1、打开cmd,输入Appium

      2、写如下脚本

    from appium import webdriver
    desired_caps = {}
    desired_caps['platformName'] = 'Android'
    desired_caps['platformVersion'] = '4.4'
    desired_caps['deviceName'] = 'Android Emulator'
    desired_caps['appPackage'] = 'com.android.calculator2'
    desired_caps['appActivity'] = '.Calculator'
    
    driver = webdriver.Remote('http://localhost:4723/wd/hub', desired_caps)
    
    el = driver.find_element_by_android_uiautomator('text("7")')
    el.click()
    e2 = driver.find_element_by_android_uiautomator('text("+")')
    e2.click()
    e3 = driver.find_element_by_android_uiautomator('text("8")')
    e3.click()
    e3 = driver.find_element_by_android_uiautomator('text("=")')
    e3.click()

      3、直接运行脚本,即可看到操作计算器的步骤

      Appium个人还是不太习惯用,因为写脚本的方法其实也是类似Uiautomator,因此没介绍篇幅较短,只是简单的体验了一把。

  • 相关阅读:
    go通道小案例
    go执行cmd命令并获取输出内容
    vue快速生成二维码
    vue.js数字简化 万转化k显示
    uniapp实现小程序获取用户信息
    实现图片预加载功能
    C# MD5加密字符串方法
    一个封装的 HttpClientHelper
    简易通过队列存储并异步打日志实现
    变量
  • 原文地址:https://www.cnblogs.com/by-dream/p/5124340.html
Copyright © 2020-2023  润新知