Appium环境搭建之Android SDK及模拟器的下载配置

2023-11-08

一、Android SDK下载及配置

1、访问https://www.androiddevtools.cn/,下载Android SDK,提供有exe和zip两种格式下载
在这里插入图片描述
2、下载zip压缩包,直接解压至想要安装的路径

在这里插入图片描述
3、然后就双击“SDK Manager.exe”,启动SDK Manager,如图所示

在这里插入图片描述
介绍几个必须安装的插件:
        3.1 Tools下Android SDK Platform-tools和Android SDK Build-tools
在这里插入图片描述
        3.2 API的选择,最新的版本即可,Android是向下兼容的在这里插入图片描述
        3.3 extras下可以全部下载
在这里插入图片描述
        3.4 上述选择完之后,点击Install package安装即可,点击Accept License
在这里插入图片描述

        注意:这些插件都是在google 的服务器上下载的,会出现以下失败界面!
        解决方案:进入C:\Windows\System32\drivers\etc目录下,右击hosts文件,最后一行添加74.125.237.1 dl-ssl.google.com
hosts文件需要写权限,右击属性、添加编辑权限,将信息添加完之后,再将权限修改为以前即可

在这里插入图片描述
上述插件安装完以后,即可配置Android SDK的环境变量,在此,不在过多赘述环境变量的配置

二、Android模拟器的下载配置

        1、访问夜神官网下载夜神模拟器:https://www.yeshen.com/
        夜神模拟器简单使用教程:https://www.bilibili.com/video/BV1Jx411H7bX?from=search&seid=14911741642336297293


注意:
        模拟器配置好之后,adb devices 是不识别android模拟器的,需要以下两个步骤:
        1、将SDK\platform-tools下的adb.exe,copy出来重命名为nox_adb.exe,替换到夜神模拟器bin目录下的 nox_adb.exe。
        2、将SDK\platform-tools下的adb.exe文件,替换到夜神模拟器bin目录下的adb.exe


        模拟器安装本地apk的方式:① 右键apk文件,打开方式选择为模拟器
                                                     ② 拖动文件至模拟器上
        2、网易mumu模拟器下载,使用adb connect 127.0.0.1:7555连接

三、Appium desired_capabilities的配置

  "platformName": "Android",           # 操作系统的名称
  "plathformVersion": "5",             # 操作系统的版本
  "deviceName": "127.0.0.1:62001",     # 设备名称
  "appPackage": "com.hpbr.bosszhipin", # 应用程序的包名
  "appActivity": ".module.launcher.WelcomeActivity", # 应用程序的主入口
  "noReset": True,                     # 启动应用时是否重置
  "unicodeKeyboard": True,			   # 用于支持中文输入
  "resetKeyboard": True,
  #注意:设置底层测试驱动-1.15默认使用的底层驱动就是UiAutomator2
  #'automationName':'UiAutomator2',#或者UiAutomator1,
  'skipServerInstallation':True        # 跳过UI2的安装,如果第一次运行程序,不要添加该配置

如何查看某个apk的包名及程序主入口:

# 打开应用刚启动的界面,然后在dos或者Linux终端命令行中分别输入以下指令
adb shell dumpsys activity top|findstr ACTIVITY  # windows平台
# 或者以下命令
adb shell dumpsys activity recents|findstr intent={   # windows平台
adb shell dumpsys window w |findstr \/ |findstr name=

四、元素查看工具weditor介绍

用途:android原生控件定位工具

# 安装:先在计算机安装weditor组件
pip install --upgrade weditor
# 启动:
# 1、通过快捷方式启动:创建快捷方式,双击快捷方式
python -m weditor --shortcut

# 2、命令行启动
python –m weditor

# 3、手机安装ATX
# 安装uiautomator
pip install  --pre --upgrade uiautomator2

#连上手机运行该命令
python -m uiautomator2 init
# 手机USB连接到电脑,确保adb命令可以连接,
# 在弹出的浏览器页面点击上面的Connect按钮。元素定位工具会自动连接手机
# 刷新页面可以点击Dump Hierarchy按钮

五、自动化手机网页

1、电脑上自动化手机页面,不需要appium

from selenium import webdriver

options = webdriver.ChromeOptions()
options.add_experimental_option("mobileEmulation", {"deviceName": "iPhone X"})
driver = webdriver.Chrome(desired_capabilities=options.to_capabilities())
driver.get("https://www.baidu.com")

input_kw = driver.find_element_by_id("index-kw")
input_kw.send_keys("自动化测试\n")
a_text = driver.find_element_by_xpath("//div[@class='ec_wise_ad']/div/div[1]/div/a/h3").text
print(a_text)

2、用手机浏览器自动化,电脑上浏览器驱动需要匹配手机浏览器的版本

from appium import webdriver

desired_caps = {
    "platformName": "Android",
    "plathformVersion": "5",
    "deviceName": "6HJGK20516000047",
    "browserName": "Chrome",
    "noReset": True,
    "unicodeKeyboard": True,
    "resetKeyboard": True
}
driver = webdriver.Remote("http://127.0.0.1:4723/wd/hub",desired_caps)

3、混合应用webview:自动化嵌套在手机app内部的网页
准备工作:需要被测应用开启webview Debug模式
自动化webview界面内容需要匹配webview的版本

六、多终端测试

1、appium服务:appium启动,端口号不要相同
    每一个设备,指定一个appium服务端口号,从4723开始,每多一个设备,默认递增2

2、配置项:指定本地与设备tcp通信的端口号
    每一个设备,指定一个本地与设备tcp通信的端口号。从8200开始,每多一个设备,默认递增2,在启动参数当中,通过systemPort指定;因为appium服务会指定一个本地端口号,将数据转发到安卓设备上,默认都是使用8200端口,当有多个appium服务时就会出现端口冲突,会导致运行过程中出现socket hang up的报错。

# config.py
esired_caps = {
    "platformName": "Android",
    "appPackage": "com.hpbr.bosszhipin",
    "appActivity": ".module.launcher.WelcomeActivity",
    "noReset": True,
    "unicodeKeyboard": True,
    "resetKeyboard": True
}

android8 = desired_caps.copy()
android9 = desired_caps.copy()

android8["plathformVersion"] = 5
android8["deviceName"] = "127.0.0.1:62001"
android8["systemPort"]="8250"

android9["plathformVersion"] = 5
android9["deviceName"] = "6HJGK20516000047"
android9["systemPort"]="8255"

# 封装了一个或多个(端口号,desired_caps)组成的列表
android_params = [(4723,android8),(4725,android9)]

3、pytest并行多终端测试
    3.1 pytest参数化

# test_appium.py
# 初始化加上启动参数
@pytest.fixture(scope="function", params=android_params) # android_params 封装了一个或多个(端口号,desired_caps)组成的列表
def setup_env(request):
    print("初始化操作")
    port = request.param[0]
    desired_caps = request.param[1]
    global driver
    driver = webdriver.Remote(f"http://127.0.0.1:{port}/wd/hub", desired_caps)
    driver.implicitly_wait(10)  # 稳定元素
    def teardown():
        print("*"*30+"销毁teardown操作"+"*"*30)
        driver.quit()
    request.addfinalizer(teardown)

    3.2 pytest并行多终端
        3.2.1 安装pytest-xdist插件:pip install pytest-xdist

        3.2.2 命令行执行命令,并行运行多个进程

pytest -sv test_appium.py -n 2
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Appium环境搭建之Android SDK及模拟器的下载配置 的相关文章

随机推荐

  • 信息组织川大972

    网络信息组织 1 网络信息环境 1 1 网络发展的三个阶段 2 语义网信息组织 2 1 万维网与语义网 2 2 语义网技术架构 2 3 本体 2 4 关联数据 2 5 网站信息架构 3 Web2 0信息组织方法 3 1 标签法 3 2 Wi
  • 多元Huffman编码问题

    题目链接 题意 最多可以让k堆合并 每一次合并的花费为河合并堆的数量 问最多和最少的花费 题解 最少的花费一定是每次合并的堆数尽可能多 这样我们就会减少前面已经合并的堆的重复计算 所以 每次合并k堆时最少 每次合并2堆时最大 另外 最少的时
  • [WTL] STLport安装指南

    STLport安装指南STLport 4 6 是完全兼容ANSI C 标准的类库 This distribution contains STLport sources only no binaries To use STLport iost
  • Word文件删除后怎么恢复?好用的恢复方法分享

    Word文件删除后怎么恢复 在工作和学习的过程中 我们难免会遇到丢失数据的情况 比如有时候不小心删除了Word文件 或者Word文件在操作过程中意外卡顿导致丢失 有什么好方法恢复呢 下面就一起来了解下 遇到Word文件数据丢失不要慌张 首先
  • Java项目的开发流程

    一个java开发项目过程 1 项目启动 1 项目组成立 公司成员 客户成员 2 制定项目预期目标 3 制定项目计划周期 4 建立好项目组成员沟通机制 2 需求调研 1 创建调研计划 协调调研时间 2 收集客户资料 获取客户需求 所有的资料都
  • Redis缓存雪崩、穿透、击穿原因分析和解决方案,附Redis管道使用技巧

    先给大家附上其他几篇文章 感兴趣的自行开车导航 Redis过期策略和持久化机制全面揭秘 教你如何合理配置 深入浅出Redis 一 从版本特性到数据类型到线程模型 带你了解Redis的核心特性和应用场景 一次redis OOM问题分析解决 r
  • 阿里云ECS漏洞修复简单办法

    阿里云的安全检测功能会每天检测主机上的漏洞 然后短信推送 让你试用漏洞修复功能 或购买修复功能 其实不需要购买 在主机上执行 apt upgrade 或者 yum upgrade 就自动修复了 其实就是更新软件包 更新内核 然后重启就可以了
  • LeetCode-738

    738 单调递增的数字 给定一个非负整数 N 找出小于或等于 N 的最大的整数 同时这个整数需要满足其各个位数上的数字是单调递增 当且仅当每个相邻位数上的数字 x 和 y 满足 x lt y 时 我们称这个整数是单调递增的 Example
  • 油盐微服务——负载均衡Ribbon

    文章目录 客户端负载均衡 RestTemplate详解 Spring Cloud Ribbon 是一个基于http和tcp的客户端 负载均衡工具 它 不需要像服务注册中心那样 独立部署 它几乎存在于每一个Spring Cloud构建的微服务
  • ubuntu16.04 从源码安装opencv4.0 支持anaconda3.5

    step1 安装依赖库 sudo apt get install build essential cmake pkg config sudo apt get install libjpeg8 dev libtiff5 dev libjasp
  • 【解析与反思】leetcode 1219. 黄金矿工 DFS 解法(C++)

    目录 前言 一 原题 二 基本思想 三 代码实现 四 代码优化 五 Dijktra 算法思考 前言 本文采用 DFS 算法求解问题 针对提交过程中遇到了超时的问题做出了分析和调试 供大家参考 一 原题 你要开发一座金矿 地质勘测学家已经探明
  • js_moment

    js 一 moment js Moment js是一个轻量级的JavaScript时间库 它方便了日常开发中对时间的操作 提高了开发效率 日常开发中 通常会对时间进行下面这几个操作 比如获取时间 设置时间 格式化时间 比较时间等等 下面就是
  • pandas中文本数据的拆分和提取

    本文主要分享文本数据的拆分 提取合并 为下一步可视化分析做好准备 数据来源于boss与拉勾网数据分析岗位的招聘信息 拉勾网的爬取方法见我的 Python selenium beautifulsoup 登录爬取拉勾网 登录爬取拉勾网2 0 P
  • discuz!代码内置颜色大全(收藏)

    加闪烁字 light 文字 light 加文字特效 shadow 255 red 2 文字 shadow 在标签的中间插入文字可以实现文字阴影特效 shadow内属性依次为宽度 颜色和边界大小 贴图
  • postgresql-索引与优化

    postgresql 索引与优化 索引简介 索引类型 B 树索引 哈希索引 GiST 索引 SP GiST 索引 GIN 索引 BRIN 索引 创建索引 唯一索引 多列索引 函数索引 部分索引 覆盖索引 查看索引 维护索引 删除索引 索引简
  • linux宝塔站点无法通过本机IP访问,宝塔面板禁止通过ip访问站点的设置方法

    Loading 1 宝塔面板 首先新建一个网站 比如 xxx com 设置默认站点为 xxx com 所有未在面板绑定的域名都会访问到这个默认站点 修改xxx com 站点配置文件在server name xxxxx语句下加入 gt ret
  • MFC之标签控件26

    1 标签控件 1 先创建基于对话框的项目 2 添加TabControl控件到对话框 3 由于这个标签控件是唯一需要添加额外代码的 所以我们需要添加额外的代码进去项目当中 TabSheet h if defined AFX TABSHEET
  • windows下配置gtest及实例

    1 安装gtest 2 配置工程 3 进行单元测试 1 安装gtest 将gtest压缩文件下载放到指定位置 进行解压缩 可看到如下结果 安装源码 https github com smarr googletest 2 配置工程 将gtes
  • resa复现

    源代码 https github com ZJULearning resa 1 数据集准备 参考Ultra Fast Lane Detection 复现 2 环境搭建 conda create n resa python 3 8 y con
  • Appium环境搭建之Android SDK及模拟器的下载配置

    一 Android SDK下载及配置 1 访问https www androiddevtools cn 下载Android SDK 提供有exe和zip两种格式下载 2 下载zip压缩包 直接解压至想要安装的路径 3 然后就双击 SDK M