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:自动遍历工具
简化版
服务版