Python 测开28期 - WL - 学习笔记 - appium 环境安装与使用

目前 mobile 自动化解决方案

  • 不同平台的测试框架
iOS Android
calabash-ios calabash-android
Frank MonkeyTalk
UIAutomation Robotium
ios-driver UiAutomator
KeepltFunctional selendroid
appium appium
  • 自动化工具选择
工具名称 被测系统 测试 脚本语言 支持H5 跨应用 稳定性 SDK自带
MonkeyRunner Android 功能 Python 支持 否 稳定 是
Instrumentation Android(<4.1) 功能 Java 支持 可以 稳定 否
Uiautomator2 Android(>=4.1) 功能 Java 支持 可以 稳定 是
Adb-For-Test Android(>=4.1) 功能 Java/Python 支持 可以 稳定 否
Monkey Android 稳定 Java 否 否 稳定 是
CTS Android 兼容 Java 支持 可以 稳定 否
Uiautomation iOS 功能 JS 支持 可以 稳定 xcode自带
Calabash Android、iOS 功能 Ruby 支持 可以 一般 否
appium Android、iOS 功能 Java/Python/JS/C/C#/Perl/ 支持 可以 一般 否
  • 自动化工具的选择
    • 单平台测试 or 多平台测试?
    • 是否有多设备同时测试的场景?
    • 不局限于测试环境,任何版本任何环境都有可以测试?
    • 最删除哪种开发语言?
    • 当前市面是否有满足项目需求的测试工具?是否需要二次开发?

appium 介绍

  • 定义:是一个移动端的自动化测试框架
  • 可以用于测试原生应用、移动网页应用、混合应用
  • 是跨平台的,可用于 iOS 和 Android操作系统
  • 混合应用:是指一种包裹webview的应用,原生应用网页内容交互性的应用

appium 框架介绍

appium 的设计理念
  • webdriver 是基于http协议的,第一连接会建立一个session绘画,并通过post发送一个json告知服务端相关测试信息
  • Client/Server 设计模式
    • 客户端通过 WebDriver json wire 协议于服务端通讯
    • 多语言支持
  • Server 可以放在任何地方
  • 服务端 NODEJS 开发的HTTp服务
  • appium 使用 appium-xcuitest-driver 来测试 iPhone设备,其中更需要安装 facebook出的 WDA(webdriveragent)来驱动iOS测试
appium 工作引擎
  • 对于Android、iOS底层使用了不同的工作引擎驱动实现自动化测试,appium的工作引擎列表:
platform driver platform versions appium version driver version
iSO XCUITest 9.3+ 1.6.0+ All
UIAutomation 8.0 to 9.3 All All
Android Espresso ?+ 1.9.0+ All
UiAutomator2 ?+ 1.6.0+ All
UiAutomator 4.3+ All All
Mac Mac ?+ 1.6.4+ All
Windows Windows 10+ 1.6.0+ All

appium 环境安装

appium 生态工具
  • adb:Android 自带的控制工具,用于获取Android 的各种数据和控制
  • Appium Desktop:内嵌了 appium server 和 inspector 的综合工具,定位元素,操作元素
  • Appium Server:appium的核心工具,命令行工具,
  • Appium client: 各种语言的客户端封装库,用于连接appium server
    • python、java、ruby、robotframework-appium
  • AppCrawler:自动遍历工具
简化版
服务版