关于安卓App自动化的一些想法

        安卓App自动化一般使用Python+Appium。页面元素通常是使用AndroidStudio中的UI Automator Viewer工具来进行页面元素的追踪。但是这里涉及到一个问题就是,安卓apk在每次打包的时候,会进行页面的混淆以及加固,所以导致每次apk打包之后会出现页面元素id变化的问题。该问题一般有以下几种解决方案:

        1.使用相对位置对控件进行定位,但是缺点也很明显,一旦后端开发改变布局,则很多相关控件的定位需要重新进行书写。

        2.直接使用元素的class进行定位,缺点也很明显,一旦开发控件进行修改,则也需要修改。

        3.基于混淆的原理,即使解决了1,2点中的问题,随着每次打包,控件的id等信息也会随之改变。所以,可以让卡法给测试打包的时候取消混淆,这样控件可以最大程度保持之前的id,不至于每次都需要重新寻找最新的id。其次就是,将使用到的控件进行静态文件的封装,例如按钮1,对应btnClick,这个对应关系可以用类似于Java开发中的静态变量去进行控制,这样每次需要修改的时候,不需要去动主代码,只需要修改静态文件中的变量和实际值的对应关系即可。下图是一款之前为我们开发的软件,关闭混淆之后,页面控件id便会固定,不会被修改,大大减少了自动化测试的脚本修改成本。

       

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

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

相关文章

猫头虎分享:Python库 PyMongo 的简介、安装、用法详解入门教程

🐯猫头虎分享:Python库 PyMongo 的简介、安装、用法详解入门教程 今天有粉丝问猫哥:MongoDB如何与Python连接? 我第一时间就想到了一个简单又强大的解决方案——PyMongo!这个库帮助我们在 Python 中高效地与 MongoDB 进…

20240916 每日AI必读资讯

超强o1模型智商已超120!1小时写出NASA博士1年代码,最新编程赛超越99.8%选手 - 一位UCI物理学博士实测o1,发现自己用时1年完成的博士论文代码,竟被AI在1个小时之内实现了。 - o1在最新门萨智商测试中,IQ水平竟超过了1…

揭开谜底:用 C 语言打造你的扫雷游戏!

目录 1. 功能概述 用户界面 2. 游戏分析与设计 2.1 数据结构分析 地雷存储: 玩家视图: 2.2 文件结构设计 3. 代码实现 game.h game.c test.c 亮点功能与创新 智慧的较量:核心游戏循环 进阶功能:让游戏更加与众不同 还…

MySQL 中的 GROUP BY 和 HAVING 子句:特性、用法与注意事项

在 MySQL 数据库的查询操作中,GROUP BY 和 HAVING 子句是非常强大的工具,它们能够帮助我们对数据进行分组和筛选,从而更好地分析和处理数据。今天,我们就来深入了解一下 GROUP BY 和 HAVING 子句的特性、用法及注意事项。 一、GR…

二叉树OJ题——另一棵树的子树

文章目录 一、题目链接二、解题思路三、解题代码 一、题目链接 另一棵树的子树 题目描述:判断当前树A是否是树B的子树。 二、解题思路 时间复杂度:O(n*m) 三、解题代码

深度学习之微积分预备知识点

极限(Limit) 定义:表示某一点处函数趋近于某一特定值的过程,一般记为 极限是一种变化状态的描述,核心思想是无限靠近而永远不能到达 公式: 表示 x 趋向 a 时 f(x) 的极限。 知识点口诀解释极限的存在左…

文件误删除后的数据救援实战指南

在数字化时代,文件误删除成为了许多用户心头挥之不去的阴影。无论是手误点击了“删除”键,还是系统崩溃导致的数据丢失,文件一旦从我们的视线中消失,往往伴随着重要信息的流失和工作的中断。本文将深入探讨文件误删除的现象&#…

数据中台建设(六)—— 数据资产管理

数据资产管理 随着企业数据越来越大,企业意识到数据是一种无形的资产,通过对企业各业务线产生的海量数据进行合理管理和有效应用,能盘活并充分释放数据的巨大价值。如果不能对海量数据进行有效管理和应用,企业堆积如山的数据给企…

使用 release key 对 LineageOS 进行编译和签名

版权归作者所有,如有转发,请注明文章出处:https://cyrus-studio.github.io/blog/ 为什么需要使用 release key test-key 是一个公开的、众所周知的开发测试密钥,广泛用于测试阶段。这意味着任何人都可以获取这个密钥,…

R语言学习全攻略:从入门到精通的详细指南

目录 一、引言 1. R语言的背景和发展 2. 学习R语言的意义 二、R语言的核心特性 1. 开源和跨平台 2. 专业的统计分析功能 3. 强大的数据可视化能力 4. 丰富的扩展包 三、R语言基础语法 1. 基本数据类型 2. 数据结构 向量(Vector) 矩阵&#x…

Vue.js魔法书:前端开发者的终极指南

个人名片:😊作者简介:一个为了让更多人看见许舒雅的宝贝的小白先生 🤡个人主页:许舒雅的宝贝 🐼座右铭:深夜两点半的夜灯依旧闪烁,凌晨四点的闹钟不止你一个。 🎅学习目标…

UML 类图(提供 Java 实现)

文章目录 UML 类图概述及作用类图表示法类(接口)的表示类与类之间关系的表示关联关系(Association)单向关联(Unidirectional Association)双向关联(Bidirectional Association)自关联…

Acwing 栈

1.数组模拟栈 主要思想:先进后出,设置一个数组存储数据,一个栈顶指针指向栈顶(初始化为0) 注意:数据出栈,只需将指针单纯前移,无需在意数组还存储数据造成浪费。 下面是需要背过的…

Linux部署Servlet代码

文章目录 一、为何要部署网站二、如何部署2.1 准备Java web的环境如何安装 为什么要准备环境安装JDK安装Tomcat 并启动Tomcat:安装Mysql 2.2 在云服务器上部署网站 其他查看Tomcat日志访问Tomcat的欢迎页面访问MariaDB 一、为何要部署网站 我们做出的网站是希望这…

2024永久激活版 Studio One 6 Pro for mac 音乐创作编辑软件 完美兼容

Studio One 6是一款功能强大的音乐制作软件,由PreSonus公司开发。它提供了全面的音频录制、编辑、混音和母带处理工具,适用于音乐制作人、音频工程师和创作人员。 Studio One 6拥有直观的用户界面,使用户能够快速而流畅地进行音乐创作。它采…

谷粒商城のElasticsearch

文章目录 前言一、前置知识1、Elasticsearch 的结构2、倒排索引 (Inverted Index)2.1、 索引阶段2.2、查询阶段 二、环境准备1、安装Es2、安装Kibana3、安装 ik 分词器 三、项目整合1、引入依赖2、整合业务2.1、创建索引、文档、构建查询语句2.2、整合业务代码 后记 前言 本篇介…

[内网渗透]---msf基础-永恒之蓝-ms17-010

what Metasploit(通常简称为MSF)是一个开源的渗透测试框架,包含大量的已知漏洞利用模块,可以用来攻击目标系统并获取控制权。 how 实验环境:Kali、带有永恒之蓝漏洞的虚拟机且开启445端口(两个虚拟机同一子网) 1.信…

进阶SpringBoot之异步任务、邮件任务和定时执行任务

SpringBooot 创建 Web 项目 异步任务: service 包下创建 AsyncService 类 Async 异步方法 Thread.sleep(3000) 停止三秒,捕获异常 package com.demo.task.service;import org.springframework.scheduling.annotation.Async; import org.springfram…

matlab DFT的点数与周期

只需要0——N-1个点就可以算得另一个域全部的信号 周期 时域信号的全部长度时一个周期,所以时域的周期化没有混叠 频域的周期与采样率有关,会混叠。 取一个周期进行傅里叶变换都是对于周期化后的信号取得,由于时域周期化不混叠,所…

句子成分——每日一划(九)

人民英雄,永垂不朽! 目录 一、原句 二、主语 三、谓语 四、介词短语 一、原句 Eternal glory to the heroes of the people who from 1840 laid down their lives in the many struggles against domestic and foreign enemies and for national i…