Appium + pyhthon + 安卓模拟器 搭建自动化测试

2021-09-16  本文已影响0人  逐风细雨

概述

app自动化环境搭建笔记

步骤

  1. 环境版本:python 3.8.5,
    Appium 1.21.0,
    夜神模拟器:7.0.1.6
    安卓sdk 10
    操作系统 win10

  2. 资源下载 可自行去官网下载,此次提供网盘下载地址:
    百度网盘链接(自行拼接百度网盘前缀):/s/1islSh8t0M-kPwIUqnHS6Hw
    提取码:j4f6


    image.png
  3. 安装步骤:
    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

多个模拟器并发配置

  1. 启动夜神模拟器,将模拟器的 上网模式 修改为桥接,设置静态的 ip 和网关,在模拟器内部 将网络设置修改为刚才一样: 此例是 10.2.13.168 根据局域网络修改 如下图:
image.png
image.png
  1. 连接adb adb connect 10.2.13.168
    查看 adb 连接 adb devices


    image.png

    此处 10.2.13.168:5555 为此模拟器的 adb 连接的id,在appium 是udid

  2. 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

上一篇下一篇

猜你喜欢

热点阅读