Python+uiautomator2 框架搭建

news2024/11/17 13:24:42
一、安装整体步骤
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知识的介绍;

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

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

硬件知识(2) 手机的传感器-sensor

#灵感# 看看小米在干啥 手机型号:Redmi Note 13 Pro,解读一下它宣传的手机卖点。 目录 宣传1:1/1.4" 大底,f/1.65 大光圈, 宣传2:支持 2 亿像素超清直出,分辨率高达 16320 x 12240 宣…

2024.1.29 GNSS 学习笔记

1.假设只对4颗卫星进行观测定位,卫星的截止高度角是15,那么如何布设这四颗卫星的位置,使其围成的四面体的体积得到最大,以获得最好定位精度? 答:3颗卫星均匀分布在最低仰角面上,第4颗卫星在测站…

对前端限流操作(无Redis版本)

如何限制前端的请求次数 最近学习缓存击穿的时候,解决方法是限流,前端限制请求次数。故通过后端来对前端的请求做限流次数。 这里首先不用redis方法,这里采用通过Aop切面的方式来限制请求次数 创建限流注解 /*** 限流接口*/ Retention(Re…

Windows XP x86 sp3 安装 Google Chrome 49.0.2623.112 (正式版本) (32 位)

1 下载地址; https://dl.google.com/release2/h8vnfiy7pvn3lxy9ehfsaxlrnnukgff8jnodrp0y21vrlem4x71lor5zzkliyh8fv3sryayu5uk5zi20ep7dwfnwr143dzxqijv/49.0.2623.112_chrome_installer.exe 2 直接 双击 49.0.2623.112_chrome_installer.exe 安装; 3 …

Vue Router 路由组件传参

聚沙成塔每天进步一点点 本文内容 ⭐ 专栏简介1. 路由的动态片段1.1 基本使用1.2 多个动态片段 2. 查询参数2.1 传递查询参数2.2 在路由导航中传递查询参数 3. 路由元信息4. Vuex 状态管理总结 ⭐ 写在最后 ⭐ 专栏简介 Vue学习之旅的奇妙世界 欢迎大家来到 Vue 技能树参考资料…

CC核心内容

目录 标准流: 盒子模型: 1.标准盒子模型 2.怪异盒子模型 浮动: 定位: 标准流、盒子模型、浮动、定位 Div是一个块级元素,span是内行元素 div元素通常用于创建一个独立的区块,它会单独占据一行或多行的空间 span元素通常用于包裹文本或内行元素&…

JS第一课简单看看这是啥东西

1.什么是JavaScript JS是一门编程语言,是一种运行在客户端(浏览器)的编程语言,主要是让前端的画面动起来,注意HTML和CSS不是编程语言,他俩是一种标记语言。JS只要有浏览器就能运行不用跟Python或者Java一样上来装一个jdk或者Pyth…

如何使用postman进行接口自动化测试?

1、什么是自动化测试? 把人对软件的测试行为转化为由机器执行测试行为的一种实践。 例如GUI自动化测试,模拟人去操作软件界面,把人从简单重复的劳动中解放出来,本质是用代码去测试另一段代码,属于一种软件开发工作&a…

【Go-Zero】Windows启动rpc服务报错panic:context deadline exceeded解决方案

【Go-Zero】Windows启动rpc服务报错panic:context deadline exceeded解决方案 大家好 我是寸铁👊 总结了一篇Windows11下启动rpc服务报错panic解决方案的文章✨ 喜欢的小伙伴可以点点关注 💝 问题来源 今天在编写完proto文件后,使用goctl生成…

PFA反应瓶特氟龙气泡吸收瓶耐酸碱耐腐蚀

定制PFA反应瓶,带四氟鼓泡球

vue3源码(三)computed

1.功能 接受一个 getter 函数,并根据 getter 的返回值返回一个不可变的响应式 ref 对象。 默认不执行,在取值时执行,具有缓存功能,数据不变多次取值只触发一次取值计算。 import {reactive,effect,computed,} from "/node_…

自然语言推断:微调BERT

微调BERT 自然语言推断任务设计了一个基于注意力的结构。现在,我们通过微调BERT来重新审视这项任务。自然语言推断是一个序列级别的文本对分类问题,而微调BERT只需要一个额外的基于多层感知机的架构,如下图中所示。 本节将下载一个预训练好的…

Web前端开发工具总结

一、nvm,node,npm之间的区别 nodejs:在项目开发时的所需要的代码库。相当于JDK npm:nodejs 包管理工具,npm 可以管理 nodejs 的第三方插件。在安装的 nodejs 的时候,npm 也会跟着一起安装。相当于Maven。 …

Prompt Learning 的几个重点paper

Prefix Tuning: Prefix-Tuning: Optimizing Continuous Prompts for Generation 在输入token之前构造一段任务相关的virtual tokens作为Prefix,然后训练的时候只更新Prefix部分的参数,PLM中的其他参数固定。针对自回归架构模型:在句子前面添…

uniapp瀑布流实现

1. 图片瀑布流&#xff1a; 不依赖任何插件&#xff0c;复制即可见效&#xff1a; <template><view class"page"><view class"left" ref"left"><image class"image" v-for"(item,i) in leftList" :k…

ASP.NET Core 过滤器 使用依赖项注入

过滤器是 ASP.NET Core 中的特殊组件&#xff0c;允许我们在请求管道的特定阶段控制请求的执行。这些过滤器在中间件执行后以及 MVC 中间件匹配路由并调用特定操作时发挥作用。 简而言之&#xff0c;过滤器提供了一种在操作级别自定义应用程序行为的方法。它们就像检查点&#…

Idea设置代理后无法clone git项目

背景 对于我们程序员来说&#xff0c;经常上github找项目、找资料是必不可少的&#xff0c;但是一些原因&#xff0c;我们访问的时候速度特别的慢&#xff0c;需要有个代理&#xff0c;才能正常的访问。 今天碰到个问题&#xff0c;使用idea工具 clone项目&#xff0c;速度特…

三、防御保护---防火墙安全策略篇

三、防御保护---防火墙安全策略篇 一、什么是安全策略二、安全策略的组成1.匹配条件2.动作3.策略标识 三、防火墙的状态检测和会话表1.会话表2.状态检测技术 四、ASPF--隐形通道五、用户认证1.用户认证的分类2.认证方式3.认证策略4.认证域 一、什么是安全策略 传统的包过滤防火…

计算机毕业设计 基于SpringBoot的车辆违章信息管理系统的设计与实现 Java实战项目 附源码+文档+视频讲解

博主介绍&#xff1a;✌从事软件开发10年之余&#xff0c;专注于Java技术领域、Python人工智能及数据挖掘、小程序项目开发和Android项目开发等。CSDN、掘金、华为云、InfoQ、阿里云等平台优质作者✌ &#x1f345;文末获取源码联系&#x1f345; &#x1f447;&#x1f3fb; 精…

Android 中的动态应用程序图标

Android 中的动态应用程序图标 一、需求二、解决方案三、方案实现四、结论 一、需求 您可能遇到过那些可以实现巧妙技巧的应用程序 - 更改应用程序图标&#xff08;也许是在您的生日那天&#xff09;&#xff0c;然后无缝切换回常规图标。这种功能会激起你的好奇心&#xff0c…