appium

appium 运行原理:

  电脑(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:(Android 4.3以上)

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

  Appium客户端:

    主要是实现了appium功能的webdriver协议的客户端library,它负责与appium服务器建立链接,并将测试脚本的指令发送到appium服务器。现有的客户端library有多种语言的实现 ruby、python、java等。appium的测试是在这些library的基础上进行开发的。

环境安装:appium-desktop (已封装appium server和node.js) 但是太耗内存。

  安装node.js 后 npm config set registry https://registry.npm.taobao.org 安装appium

  cmd 命令:where appium    查看appium包

  cmd 命令:appium -v   查看appium的版本

  cmd命令:appium    运行appium

安装appium-doctor:检测appium整体依赖环境配置情况

  所有环境安装完成后, cmd命令 cnpm install appium-doctor -g

  在命令:appium-doctor 后可以看到提示说明整体环境配置成功

Capability:

  desired capability的功能是配置appium会话,他们告诉appium服务器你想要自动化的平台和应该程序。通过键值对来通知appium服务器建立需要的session

  session:

    appium的客户端和服务端之间进行通信都必须在一个session的上下文中进行。客户端在发起通信的时候首先会发送一个叫作desired capability 的json对象给服务器。服务器收到该数据后,会创建一个session并将session的ID返回到客户端。之后客户端可以用该session的ID发送后续的命令。

  常见Capability配置:(三个部分:公共、Android、iOS)

  

  常见重要公共:

  platformName: 平台的名称:iOS, Android, or FirefoxOS

  platformVersion:移动设备的系统版本号,7.1, 4.4

  deviceName:命令devices

  app:安装文件路径

  noReset:在当前session前不重置app状态,默认为false

  

  Android:

  appActivity:要启动的Activity

  appPackage:要启动的包

  appWaitActivity: 等待的Activity

  iOS:

  bundleId:被测应用的bundleld id,用于真机启动测试

  udid:连接真机唯一设备编号

原文地址:https://www.cnblogs.com/pengranxindong/p/9991516.html