环境安装和使用
概述
- 目前 mobile 自动化解决方案
- Appium 介绍
- Appium 框架介绍
- Appium 环境安装
目前 mobile 自动化解决方案
iOS |
Android |
Calabash-iOS |
calabash-Android |
Frank |
MonkeyTalk |
UIAutomation |
Robotium |
iOS-driver |
UIAutomator |
KeepItFunctional |
Selendroid |
Macaca |
Macaca |
Appium |
Appium |
自动化工具选择
工具名称 |
被测系统 |
脚本语言 |
是否支持 H5 |
是否支持跨应用 |
工具稳定性 |
是否为 sdk 自带 |
MonkeyRunner |
Android |
|
Y |
N |
稳定 |
Y |
Monkey |
Android |
Java |
N |
N |
稳定 |
Y |
Uiautomator2 |
Android |
Java |
Y |
Y |
稳定 |
Y |
Uiautomation |
iOS |
弃用 |
|
|
|
|
Adb-For-Test |
Android |
Java/Python |
Y |
Y |
稳定 |
Y |
Appium |
Android,iOS |
Java/Python/JS/C# |
Y |
Y |
一般 |
N |
选择条件
- 单平台测试/多平台测试?
- 是否多设备同时测试?
- 不局限测试环境,任何版本、任何环境都可以测试?
- 最擅长开发语言
- 当前市面是否有满足项目需求的测试工具?是否需二次开发?
应用划分
- 原生应用
- 移动网页应用
- 网页应用,类似于 iOS 中 safari 或者 QQ 浏览器
- 混合应用
什么是 Appium
- appium 简介
- 移动端的自动化测试框架
- 第三方自动化工具
- app 自动化测试
- 开源的、跨平台的
Appium介绍
- appium 简介
-
Client/Server Architecture:c/s 架构
- 脚本多语言支持
- Java、Python、ruby、PHP、JavaScript、C#
- 生态丰富,社区强大
Appium 原理
Appium 通信原理
Appium Server
- server 里面不只有 webDriver「安卓 driver、 iOSdriver」还有各种工作引擎
Appium 工作引擎
Appium 生态工具
- 命令行工具
- Appium Desktop
- Appium Server GUI
- Appium Inspector
- Appium Client
- AppCrawler
Android 命令行工具
- 管理移动端设备上应用程序的安装与卸载,以及查看相关信息
- adb
- 安卓系统的命令行控制工具
- 获取安卓端的各种数据和控制
- sdk 自带工具
adb devices #显示当前所连接设备的udid
iOS 命令行工具
- ideviceinstaller
- iOS 系统的命令行控制工具
- 获取 iOS 端的各种数据和控制
idevice_id -l #显示当前所连接设备的 udid
Appium Desktop
- 内嵌了 Appium Server
- Appium Server GUI
- Appium Inspector
Appium Client
- 各种语言的客户端封装库、用于连接 Appium Server
AppCrawler
Appium 安装-简化版
jdk
java -version
sdk
- 第一种方式:简装版
- 第二种方式:android studio
- 验证
adb version
Appium Desktop
- github 下载版本 1.19.1 不分开
- release
- 无需环境变量配置
验证
- 使用安卓端验证相关环境是否安装成功
-
- 命令行验证 jdk、adb
-
- 打开 Appium Desktop,点击 start server 不报错
-
- 准备安卓设备(真机/模拟器)连接电脑
-
- adb 命令查看设备是否连接
-
- 编写启动配置,启动 app 不报错
模拟器竖屏
参数查看
adb devices
adb shell getprop ro.build.version.release
adb shell pm list packages
adb shell monkey -p ${package.name} -vvv 1
启动参数
{
"platformName": "Android",
"appium:platformVersion": "6.0",
"appium:deviceName": "emulator-5554",
"appium:appPackage": "com.android.settings",
"appium:appActivity": ".Settings"
}