Python+uiautomator2 框架搭建

一、安装整体步骤
01 开发环境安装
  • jdk安装(version "1.8.0_361")
  • python安装 (Python37)
  • python编辑器安装 (PyCharm2021)
02 运行环境安装
  • adb安装 (Android Debug Bridge version 1.0.41 Version 34.0.3-10161052)
  • uiautomator2安装
  • weditor安装
  • 模拟器安装(逍遥或者夜神)
二、详细安装步骤
JDK安装
  1. 建议不要安装最新的版本,安装稳定版即可;新版本可能会出现与其他插件兼容性问题
  2. 本人安装版本1.8
Python安装
  1. 同样建议不要安装最新的版本;本人之前安装python310,后面安装运行环境时,各种插件不兼容,无奈之下降为37版本很稳定;
  2. 本人安装版本python37
Python编辑器
  1. Python编辑器有很多,不过感觉最好用的还是PyCharm2021
  2. 网上有破解码和破解工具

以上安装项网上很多,这里不做详细描述和不提供下载链接;

adb安装

1、adb介绍

adb是android sdk里的一个工具, 用这个工具可以直接操作管理android模拟器或者真实的android设备(如华为手机).  它的主要功能有:

  • 运行设备的shell(命令行)
  • 管理模拟器或设备的端口映射
  • 计算机和设备之间上传/下载文件
  • 将本地apk软件安装至模拟器或android设备

ADB是一个 客户端-服务器端程序, 其中客户端是你用来操作的电脑, 服务器端是android设备.

2、安装

  • 网上下载安装包并解压,里面有如下文件

  • 将解压后的 adb 文件目录 配置在 path 环境变量中
  • window+R打开控制台,输入 adb,出现如下图所示内容,即安装成功

3、常见命令

        2.1 查看设备 adb devices

                这个命令是查看当前连接的设备, 连接到计算机的android设备或者模拟器将会列出显示

        2.2 安装软件

                adb install

                这个命令将指定的apk文件安装到设备上

        2.3 卸载软件

                adb uninstall

                adb uninstall -k

                如果加 -k 参数,为卸载软件但是保留配置和缓存文件.

        2.4 登录设备shell

                adb shell

                adb shell

        这个命令将登录设备的shell. 后面加将是直接运行设备命令, 相当于执行远程命令

        2.5 从电脑上发送文件到设备

                adb push 本地路径>

                用push命令可以把本机电脑上的文件或者文件夹复制到设备(手机)

         2.6 从设备上下载文件到电脑

                adb pull

                用pull命令可以把设备(手机)上的文件或者文件夹复制到本机电脑

          2.7 显示帮助信息

                adb help

                这个命令将显示帮助信息

uiautomator2安装

1、uiautomator2简介

uiautomator2是一个自动化测试开源工具,目前只支持安卓应用测试。原本是谷歌的一个自动化java库,后来慢慢发展越来越完善,形成了python-uiautomator2,封装了谷歌的uiautomator测试框架,通过python接口,用它可以很方便的编写python代码来实现app的UI自动化测试

2、安装

  • 打开 cmd ,输入 pip install --pre uiautomator2
  • 初始化  python -m uiautomator2 init
  • 初始化后,会自动在模拟器中安装ATX

3、查看包名

  • 在对apk安装时,需要指定包名;所以需要查看apk包名
  • 注意:包名并不是显示的app名称;
  • python -m uiautomator2 current
weditor安装

1、weditor简介

weditor又称为可视化UI查看器;咱们在做ui自动化时,需要查看元素在dom中的位置,及定位元素后再写脚本进行操作;weditor可以直接连接模拟器,快速查看app中每个元素的位置并自动生成xpath;还提供脚本调试界面;

  • 网页版模拟器
  • 自动生成元素定位脚本
  • 方便进行脚本调试

2、安装

  • pip install --pre -U weditor

3、使用

  • 打开weditor:python -m weditor
  • 连接模拟器:

        1)查看模拟器装置的ip和端口

                adb devices

        2)复制到weditor连接

模拟器安装(逍遥或者夜神)

1、简介

这里的模拟器大部分都是主要用来进行游戏模拟的;但是它既然能模拟游戏app的运行,那么我们的应用app当然也可以用它来进行模拟测试;可以把它认为就是一台运行在pc中的手机;

2、安装

模拟器基本都是免费使用的,大家可以自行去网上下载需要的模拟器;本人常用的就是逍遥和夜神

逍遥模拟器的多开功能比较好用,可以在一个模拟器中设置好环境后,快速复制多个模拟器-模拟器多开;

使用python多线程,可以同时操作N台模拟器;只要你的机器能抗,理论上无限开;

以上为环境搭建篇章,后续将重点介绍uiautomator2的使用及python知识的介绍;

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/358321.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

处理Servlet生命周期事件

处理Servlet生命周期事件 接收关于 Servlet生命周期事件通知的类称为事件侦听器。这些侦听器实现Servlet API中定义的一个或多个servlet事件侦听器接口。侦听器类的逻辑分类如下: servlet请求侦听器Servlet上下文侦听器HTTP会话侦听器1. servlet请求侦听器 servlet请求侦听器…

vivado 硬块规划器

硬块规划器 Versal自适应SoC的硬块规划GT组件从通用/通道更新为AMD的GT_QUAD粒度Versal™ 自适应SoC。为了启用某些GT共享用例,对GT向导流进行了修改使用Vivado IP集成商。使用Vivado IP集成商构建使用单个或多个GT_ QUAD。连接到GT_QUAD的自定义IP的设计条目为通过…

如何一键导出多张图片二维码?图片批量建码生成的方法

现在很多的物品信息都会生成一张单独的图片,然后生成二维码印刷到包装或者其他地方上使用,那么如何快速将多张图片多批量生码处理,相信有很多的小伙伴都不太清楚该怎么完成。其实,大量图片生成二维码的方法是很简单的,…

shell脚本-函数及数组

一.函数 1.函数的作用 语句块定义成函数约等于别名,定义函数,再引用函数 封装的可重复利用的具有特定功能的代码 2.函数的基本格式 法一: [function] 函数名 {命令序列[return x] #使用return或者exit可以显式的结束函数 }法二&…

最新计算机软件毕业设计选题大全

最新计算机软件毕业设计选题大全 1、毕业设计选题 博主介绍:✌️大厂码农|毕设布道师,阿里云开发社区乘风者计划专家博主,CSDN平台Java领域优质创作者,专注于大学生项目实战开发、讲解和毕业答疑辅导。✌️ 主要项目:小…

【Spring源码分析】循环依赖的底层源码剖析

循环依赖的底层源码剖析 一、预知知识二、循环依赖的底层源码剖析1. Spring 是如何存储半成品Bean的?getEarlyBeanReference 方法的源码分析 2. Spring 是如何解决的循环依赖呢?测试 3. 哪些循环依赖 Spring 是无法解决的呢?Async 引起的循环…

cocos creator 调用预设体Prefab中的方法(调用另一个节点的方法)

调用预设体中的方法 通过cc.instantiate(this.star)创建这个预设体实例这个star预设体中添加了一个脚本组件star.ts 获取到这个脚本组件star.getComponent(‘star’).test(),并调用其中的test()方法同理可以用该方式像另一个节点中传值 //星星预设体property(cc.Pr…

用户故事 | 以低代码之名,打造业务与IT协同新模式

关键发现: 客户痛点:对于一个人人关注创新的企业而言,业务团队从不缺乏创意,困扰他们的往往在于是否有一个工具,可以最高效地让创意变为现实。 解决方案:使用MENDIX低代码平台,在IT团队的支持下…

WebService的services.xml问题

WebService有多种实现方式,这里使用的是axis2 问题: 在本地开发,访问本地的http://localhost:8080/services/ims?wsdl,正常访问 但是打成jar包,不管是linux还是window启动,都访问不到,报错…

维护管理Harbor,docker容器的重启策略

维护管理Harbor 通过HarborWeb创建项目 在 Harbor 仓库中,任何镜像在被 push 到 regsitry 之前都必须有一个自己所属的项目。 单击“项目”,填写项目名称,项目级别若设置为"私有",则不勾选。如果设置为公共仓库&#…

【C语言/数据结构】排序(归并排序|计数排序|排序算法复杂度)

🌈个人主页:秦jh__https://blog.csdn.net/qinjh_?spm1010.2135.3001.5343🔥 系列专栏:《数据结构》https://blog.csdn.net/qinjh_/category_12536791.html?spm1001.2014.3001.5482 ​​​​ 目录 归并排序 代码实现&#xf…

Matplotlib应用-股票技术分析实战

MACD Moving Average Convergence/Divergence,意为异同移动平均线。它刻画的是股价变化的速度 MACD算法 指标含义公式短期EMA短期收盘价指数移动均线(12天)前一日EMA(12)11/13 今日收盘价2/13长期EMA长期收盘价指数移动均线(26天)前一日EMA(26)25/27 今日收盘价2…

qt5-入门-组件布局

参考: Qt学习之路_w3cschool 本地环境: win10专业版,64位 组件布局 绝对定位:给出确切的坐标值和尺寸,缺点是当用户改变窗口大小时,需要写函数响应变化(或者禁止用户改变大小) 布…

openGauss学习笔记-210 openGauss 数据库运维-常见故障定位案例-谓词下推引起的查询报错

文章目录 openGauss学习笔记-210 openGauss 数据库运维-常见故障定位案例-谓词下推引起的查询报错210.1 谓词下推引起的查询报错210.1.1 问题现象210.1.2 原因分析210.1.3 处理办法 openGauss学习笔记-210 openGauss 数据库运维-常见故障定位案例-谓词下推引起的查询报错 210.…

Likeshop社区团购源码系统-社区团购更加便捷

一、什么是社区团购? 社区团购是一种基于社区的一种团购模式,依托于社区居民的消费需求,由社区团长组织发起,通过集中采购、批量销售的方式,为社区居民提供优质、优惠的商品。这种模式既满足了消费者对于优惠、便捷的…

Unity 观察者模式(实例详解)

文章目录 简介示例1 - 简单的文本更新通知示例2 - 多观察者监听游戏分数变化示例3 - 事件系统实现观察者模式示例4 - 泛型观察者和可序列化的事件系统示例5 - 使用C#委托简化版 简介 在Unity中实现观察者模式,我们可以创建一个Subject(目标/主题&#x…

Redis -- 背景知识

目录 特性 为啥Redis快? 应用场景 Redis不能做什么? Redis是在内存中存储数据的一个中间件,用作为数据库,也可以用作为缓存,在分布式中有很高的威望。 特性 In-memory data structures:在内存中存储数据key-val…

微信开放平台第三方授权(第三篇)-获取auth_access_token

1.AuthAcsessToken的获取 继续上文,上文提到了想要发送消息,就要获取授权单独的authtoken,通过这个token才能调用微信发送消息接口。有六个步骤,少一步也获取不到这个authaccesstoken。 Token生成说明 | 微信开放文档 这里需要…

SV-8003V 网络寻呼话筒

SV-8003V是深圳锐科达电子有限公司的一款桌面式对讲主机SV-8003V同样作为广播对讲系统的核心组成部分,集成有全区广播、分区广播、单点呼叫、点对点对讲、以及监听等功能。SV-8003V使用铝合金拉丝面板,并配有高性能的鹅颈麦克风以及高保真的全频喇叭&…

Linux(CentOS7)与用户电脑传输文件(sz与rz)云与云(scp)

rz和sz是Linux/Unix同Windows进行Zmodem文件传输的命令工具 rz和sz中的z为Zmodem文件传输协议的首字母 s为send发送 r为receive接收,都是相对与Linux来看的接收和发送 Linux发送文件到电脑: sz命令 把文件发送到Windows sz 文件直接按回车就可以选择发送…