一、概念
是一个开源的自动化测试工具,类似selenium,支持IOS与安卓平台的原生的,基于移动浏览器的,混合的应用
可以用代码驱动Appium去驱动移动端的程序
架构:
Node.js编写的HTTP server,创建并管理多个文本driver session来和不同的平台交互
环境:
Node.js——可以开发服务端程序(https://nodejs.org/zh-cn/)
JAVA JDK——JAVA环境(https://www.oracle.com/java/technologies/javase-jdk16-downloads.html)
Android SDK——Android专属的软件开发工具包(https://www.androiddevtools.cn/)
Appium(https://github.com/appium/appium-desktop/releases/tag/v1.21.0)
二、 JavaJDK/Android SDK环境配置


1.

2.path

三、测试步骤
1.USB数据线,开启手机USB调试模式
模拟器-夜神模拟器
可能出现的报错:adb server version(36) doesn't match this client(41)
原因:手机模拟器与Android SDK的adb工具不匹配,需要把Android SDK的adb.exe复制,放入模拟机的安装目录中,替换nox_adb.exe。
2.cmd命令
adb version 查看版本
adb devices 查看已连接的设备
3.调试
需要编写自动化程序,首先就需要能够定位元素
使用appium
Desired Capabilities:发送给Appium服务器的键值对集合(可以理解成发送HTTP请求)
{
1.操作系统类型
2.操作系统版本
3.链接的手机信息
4.应用的包名
5.activity
}




dumpsys activity |grep mFocusedActivity
可以拿到当前运行手机应用的package和activity

JSON Representation
{
"platformName": "Android",
"platformVersion": "5",
"deviceName": "127.0.0.1:62001",
"appPackage": "com.sina.weibo",
"appActivity": ".VisitorMainTabActivity"
}
四、python操作
pip install Appium-Python-Client
from appium import webdriver
配置键值对信息
caps = {
"platformName": "Android",
"platformVersion": "5",
"deviceName": "127.0.0.1:62001",
"appPackage": "com.netease.cloudmusic",
"appActivity": ".activity.MainActivity"
}
链接Appium服务器,打开应用,返回驱动对象driver,接下来就和selenium的操作几乎一样
webdriver.Remote('http://127.0.0.1:4723/wd/hub',caps)