概述
app自动化环境搭建笔记
步骤
-
环境版本:python 3.8.5,
Appium 1.21.0,
夜神模拟器:7.0.1.6
安卓sdk 10
操作系统 win10 -
资源下载 可自行去官网下载,此次提供网盘下载地址:
百度网盘链接(自行拼接百度网盘前缀):/s/1islSh8t0M-kPwIUqnHS6Hw
提取码:j4f6
image.png -
安装步骤:
3.1 安装python3.8 配置 环境变量保证 python pip 命令可用
安装 appium python 客户端 pip install Appium-python-client
3.2 安装jdk 配置环境变量,略
3.3 安装node.js (如果使用桌面版 此部可略,但为了方便命令行启动appium server 推荐安装)
安装 appium server 命令: npm -g install appium
3.4 安装 Appium 桌面版
3.5 安装SDK
解压 android-sdk_r24.4.1-windows.zip 解压后的路径:D:\android-sdk-windows
执行 Manager.exe
image.png
勾选 PlatForm-tools,Build-tools SDK Platfrom 下图时 只安装必要包的图:
image.png
配置环境变量
新建 ANDROID_HOME 系统变量 指向 sdk 工具目录 本例是: D:\android-sdk-windows
image.png
在path变量添加它几个路径的 变量 如下图:
%ANDROID_HOME%\platform-tools
%ANDROID_HOME%\tools
%ANDROID_HOME%\build-tools\29.0.3
注意:buid-tools 此次安装的是 29.0.3 版本,请根据自己选择的版本进行调整
image.png
配置成功后,在命令行 执行 adb version 查看adb 命令是否可用
4 安装夜神模拟器,执行安装文件 nox_setup_v7.0.1.6_full.exe
安装完成后 替换模拟器自带的adb工具,非常重要(与sdk 管理工具的adb版本不一致,会appium 调用时 不兼容)
sdk 管理工具 adb 文件路径:D:\android-sdk-windows\platform-tools
此三个文件复制到模拟器安装路径
image.png
删除模拟器的 nox_adb.exe 文件,复制一个adb.exe 文件重命名为 nox_adb.exe
image.png
多个模拟器并发配置
- 启动夜神模拟器,将模拟器的 上网模式 修改为桥接,设置静态的 ip 和网关,在模拟器内部 将网络设置修改为刚才一样: 此例是 10.2.13.168 根据局域网络修改 如下图:
image.png
-
连接adb adb connect 10.2.13.168
查看 adb 连接 adb devices
image.png
此处 10.2.13.168:5555 为此模拟器的 adb 连接的id,在appium 是udid
-
n个模拟器 需要n个 appium server:每个server 启动的参数
命令行启动命令:
appium -a 0.0.0.0 -p 4273 -bp 4274 -U 10.2.13.168:5555
注意: -a 0.0.0.0 表示绑定到本机的所有 ip 保证 通过 127.0.0.1:4273 或者本机多个局域网的ip 都可以访问到4273 端口
-bp bootstrap-port 端口
-U udid
python 客户端启动脚本举例
desired_capabilities = {
"platformName": "Android", # 操作系统
"deviceName": "10.2.13.168:5555", # 设备 ID
"platformVersion": "7.1.2", # 设备版本号
"appPackage": "com.lachesis.mnis_online", # app 包名
"appActivity": "com.lachesis.mnis_online.reform.reformactivity.RLoginActivity", # app 启动时主 Activity
"automationName": "UiAutomator2",
"newCommandTimeout": 120,
"bootstrap-port": 4724,
"udid": "10.2.13.168:5555",
# "unicodeKeyboard": True,
# "noSign": True,
"noReset": True, # 是否保留 session 信息 可以避免重新登录
}
driver = webdriver.Remote('http://10.2.13.167:4723/wd/hub', desired_capabilities)
多个模拟器,设置不同的局域网独立ip 分配 不同的 aapium server 的端口 和 bootstrap-port
本例实现 同时开始4个模拟器
image.png
每个模拟器+ appium 占用内存约300M
网友评论