本文主要介绍如何搭建 Python + Appium Android 自动化测试环境,面向小白步骤很简单哈~
1. python
第一步安装 Python …
算了,这一步大家肯定都会,跳过 ~
接着安装一下需要的库,因为自动化程序充当 client,向 Appium server 发送 HTTP 请求,因此需要安装相应的库:
pip install appium-python-client
2. 安装 Appium server
appium server 是 nodejs 运行的,基于 js 开发出来的。
Appium Desktop 包含了 nodejs 的运行环境、Appium server 和一些工具。
因此安装 Appium Server 即可,click me 跳转到下载页面 !
3. JDK
Android APP 的自动化需要 Android SDK,Android SDK 需要 JDK 环境
click me to download !
安装到 D:\Java\jdk\,添加环境变量 JAVA_HOME
,值为 JDK 的安装目录 D:\Java\jdk
4. Android SDK
APP 自动化需要用到里面的一些工具,如执行命令设置手机、文件传输、应用安装等 …
一般安装步骤为下载 Android Studio 后在里面下载 android sdk
为了方便,也可以下载 android sdk (passwd: wuwu),解压到 D:\android-sdk
添加环境变量 ANDROID_HOME
,值为 skd 解压目录,如 D:\android-sdk
另外,将 adb 所在目录添加到 PATH
,值为 D:\android-sdk\platform-tools
5. 连接手机
打开开发者模式,启用 USB 调试,连接后点击允许 USB 调试
在命令行使用 adb devices
查看设备,可以检测到手机,adb 命令可以参考 click me
双击运行 Appium server,点击 start
运行下面的代码实现 Android bilibili 的自动化测试:
from appium import webdriver
from appium.webdriver.extensions.android.nativekey import AndroidKey
desired_caps = {
'platformName': 'Android', # 被测手机是安卓
'platformVersion': '8', # 手机安卓版本
'deviceName': 'xxx', # 设备名,安卓手机可以随意填写
'appPackage': 'tv.danmaku.bili', # 启动APP Package名称
'appActivity': '.ui.splash.SplashActivity', # 启动Activity名称
'unicodeKeyboard': True, # 使用自带输入法,输入中文时填True
'resetKeyboard': True, # 执行完程序恢复原来输入法
'noReset': True, # 不要重置App
'newCommandTimeout': 6000,
'automationName' : 'UiAutomator2'
# 'app': r'd:\apk\bili.apk',
}
# 连接Appium Server,初始化自动化环境
driver = webdriver.Remote('http://localhost:4723/wd/hub', desired_caps)
# 设置缺省等待时间
driver.implicitly_wait(5)
# 青少年保护
iknow = driver.find_elements_by_id("text3")
if iknow:
iknow.click()
driver.find_element_by_id("expand_search").click()
sbox = driver.find_element_by_id('search_src_text')
sbox.send_keys('Doyoudo')
driver.press_keycode(AndroidKey.ENTER)
eles = driver.find_elements_by_id("title")
for ele in eles:
print(ele.text)
ele.click()
q = input('input q to quit')
if q == 'q':
driver.quit()
如果安装和连接过程正常,可以看到手机 App 自动搜索 doyoudo
Inspector Session
Inspector Session 可以帮助我们快速地查看页面元素的信息,手机上的代理将被测试 APP 的元素节点信息上传到 Appium server,最后显示在电脑屏幕,这样就可以像 Selenium 一样简单使用啦~
使用方法:
1、用数据线与手机建立连接(使用adb命令:adb devices查看是否连接,并得出该手机的序列号)
2、运行appium,并点击右上角的“搜索”符号
3、编辑需要定位的程序的信息,并保存
4、选择Automatic Server一栏,点击start session就能够进入到需要定位的界面了
具体步骤如下,首先需要配置一下信息
在 Automatic Server 下创建一个表格,填入信息后会生成下面的 JSON 文件(注意 true 小写、使用双引号):
{
"platformName": "Android",
"platformVersion": "8",
"appPackage": "tv.danmaku.bili",
"appActivity": ".ui.splash.SplashActivity",
"unicodeKeyboard": "True",
"resetKeyboard": "True",
"noReset": "True",
"newCommandTimeout": "6000",
"automationName": "UiAutomator2"
}
接着可以保存一下,命名为 mi6,最后点击 Start session
就可以看到 APP 窗口和 DOM 树啦 ~
REFERENCES:
嘿嘿,学到这,我离淘宝自动叠猫猫又近了一步 🍻
可以参考我的博客 Appium + Python APP 自动化测试 进一步学习哦 ~