目前 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:自动遍历工具
简化版
-
环境安装
- Java 1.8版本并配置环境变量
- Android SDK并配置环境变量
- Appium Desktop
- Python3
- Appium python client
-
软件下载地址
- Appium 环境搭建( windows 版本 | Mac版本)
- 软件下载地址及密码
- 百度网盘-链接不存在
- 提取码:gxow
-
JDK 安装与配置
- 官网:https://www.oracle.com/technetwork/java/javase/downloads/index.h
- 社区:Index of /java_jdk/
- 安装:一直点下一步完成,使用默认路径即可
- 配置环境变量
- JAVA_HOME:D:\Android\Java\jdk1.8.0_25
- classpath:.;%JAVA_HOME%\lib\dt.jar;%JAVA_HOME%\lib\tools.jar;
- path:%JAVA_HOME%\bin;%JAVA_HOME%\jre\bin;
- 检查java 环境比哪里是否配置好:java -version
-
SDK 安装与配置-简化版
- 安装sdk
- 其实 sdk 就是个文件夹,下载之后需要手动更新,配上环境变量就可以使用,不需要安装
- 链接:https://pan.bandu.com/s/1VtEXIogo_GS7iGh3f0nklw
- 提取码:gxow
- 配置Android SDK环境变量
- ANDROID_HOME: D:\adt-bundle-mac-x86_64-20140702\sdk
- PATH: %ANDROID_HOME%\tools;%ANDROID_HOME%\platform-tools
- 检查是否安装成功,cmd:adb回车或者 adb shell回车
- 安装sdk
-
SDK安装与配置 - 进阶版
- SDK下载:
- Android studio 地址:https://developer.android.com/studio/index.html
- 中文官网:http://tools.android-studio.org/index.php/sdk
- SDK环境搭建:
- SDK下载:
-
Appium Desktop 安装与配置
- 安装appium desktop(appium server + appium inspector工具)
- 下载:https://github.com/appium/appium-desktop/relieases
- 网盘:https://pan.baidu.com/s/1VtEXIogo_GS7Gh3f0nklw
- 提取码:gxow
- 目前最新版本1.21.x,推荐1.19.1稳定版
- 避免使用太旧的版本,以免发生问题
- 安装appium desktop(appium server + appium inspector工具)
-
appium-python-ientc安装
- 命令:pip install appium-python-client
- 方式二:
- 下载地址
- 解压后在命令行中进入:python-client-master目录,此目录下包含setup.py文件
- 执行命令python setup.py install 安装客户端
-
运行测试用例
- 验证环境是否成功
- 1.首先打开appium desktop,点击start server不报错
- 2.其次准备一个Android设备,真机或者模拟器,推荐mumu
- 3.模拟器连接到电脑
- 4.adb devices查看设备是否连接
- 5.最后编写测试脚本,运行脚本,不报错
- 验证环境是否成功
-
下载安装模拟器
- mumu模拟器
- 电脑开启TV–虚拟化技术
- 设置屏幕显示 720*1280,重启
- 连接设备:adb connect