自动化遍历测试技术之android maxim遍历测试工具

news2024/9/30 11:40:57

这里写目录标题

  • 一、问题
    • 1、例如app中存在问题
    • 2、解决方法
    • 3、改进策略
    • 4、自动遍历测试
    • 5、常见遍历工具与技术
  • 二、android maxim 遍历测试工具
    • 策略
    • 使用
    • 环境预备
    • 命令行模式
    • 策略
  • 三、android fastbot 遍历测试工具
    • 使用

一、问题

业务线众多
业务流程复杂
依赖传统券商一些资源

1、例如app中存在问题

存在股票信息字段内容丢失或者数据异常
微信分享不可用
用户网络慢时发出请求后退出当前页面发生崩溃
某些界面在4.4和5.0的系统上操作体验不同
界面崩溃

2、解决方法

自动化解决

产品迭代快速
学习设计模式(PageObject)

手工解决

界面字段正确性:比如股票相关数据变化,共数十个字段
接口正确性:后端接口传输数据的变化和内容
专项测试回归难度大:内存泄漏、健壮性测试、弱网等测试过程太多
回归工作量大:不回归又会漏测

3、改进策略

自动化测试

覆盖主要业务的right path
缩小规模尽量降低维护成本

手工测试

覆盖新功能测试
探索性测试

4、自动遍历测试

code less:用例维护成本降低到最低
automate:尽可能的自动化覆盖回归业务

5、常见遍历工具与技术

google android原生monkey、app crawler
百度smartmonkey
腾讯newmonkey
vigossijjj smart_monkey
macaca的NoSmoke
头条的zhangzhao maxim
seveniruby appcrawler

monkey的优缺点:理解成猴子上窜下跳,随机的漫无目的的执行一些事件;优点:快速的执行某些事件;缺点:不可控,让去执行某个事件做不到。

二、android maxim 遍历测试工具

对 Android Monkey 进行改进
基于遍历规则
高性能

策略

模式DFS --uiautomatordfs

增加深度遍历算法

模式 Mix --uiautomatormix

使用accessibiltyserver获取界面接口解析各控件
随机选取一个控件执行touch操作
同时与原monkey 其他操作按比例混合使用

使用

地址:https://github.com/zhangzhao4444/Maxim

adb push framework.jar /sdcard
adb push monkey.jar /sdcard

在这里插入图片描述

环境预备

支持 Android 5,6,7,8,9、10、11真机及模拟器;
将 framework.jar , monkey.jar push 到手机上某个目录中,建议/sdcard

D:\auto_senior>adb push "D:\auto_senior\Maxim\monkey.jar" /sdcard   
D:\auto_senior>adb push "D:\auto_senior\Maxim\framework.jar" /sdcard  

通过adb shell可以查看安装的包

命令行模式

cmd 命令 : adb shell CLASSPATH=/sdcard/monkey.jar:/sdcard/framework.jar exec app_process /system/bin tv.panda.test.monkey.Monkey -p com.panda.videoliveplatform --uiautomatormix --running-minutes 60 -v -v

adb shell CLASSPATH=/sdcard/monkey.jar:/sdcard/framework.jar exec app_process /system/bin tv.panda.test.monkey.Monkey -p com.xueqiu.android --uiautomatormix --running-minutes 60 -v -v

tv.panda.test.monkey.Monkey: monkey入口类,不要修改
com.panda.videoliveplatform: 被测app包名,需要修改
–uiautomatormix: 遍历策略

策略

1、模式 Mix (基于事件概率的压力测试)

–uiautomatormix
直接使用底层accessibiltyserver获取界面接口 解析各控件,随机选取一个控件执行touch操作。
同时与原monkey 其他操作按比例混合使用
默认accessibilityserver action占比50%,其余各action分剩余的50%
accessibilityserver action占比可配置 --pct-uiautomatormix n

2、模式 DFS

–uiautomatordfs
深度遍历算法

3、模式Troy

–uiautomatortroy
控件选择策略按max.xpath.selector配置的高低优先级来进行深度遍历

4、保留原始monkey

5、总运行时长

–running-minutes 3 运行3分钟

6、–act-whitelist-file /sdcard/awl.strings 定义白名单 --act-blacklist-file

7、其他参数与原始monkey一致

三、android fastbot 遍历测试工具

Fastbot介绍
基于model-based testing结合机器学习、强化学习的APP稳定性测试工具
在这里插入图片描述

使用

地址:https://github.com/bytedance/Fastbot_Android

克隆代码:git clone https://github.com/bytedance/Fastbot_Android.git

在这里插入图片描述
adb push *.jar /sdcard
adb push libs/* /data/local/tmp/

adb shell CLASSPATH=/sdcard/monkeyq.jar:/sdcard/framework.jar:/sdcard/fastbot-thirdpart.jar exec app_process /system/bin com.android.commands.monkey.Monkey -p com.xueqiu.android --agent robot --throttle 200 -v -v 1000

D:\auto_senior\Fastbot_Android>adb shell CLASSPATH=/sdcard/monkeyq.jar:/sdcard/framework.jar:/sdcard/fastbot-thirdpart.jar exec app_process /system/bin com.android.commands.monkey.Monkey  -p com.xueqiu.android  --agent robot --throttle 200  -v -v 1000

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

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

相关文章

2023年最新软件测试面试题,自动化测试面试题,接口自动化测试面试题详解,对标大厂。

【软件测试面试题】 1、你的测试职业发展是什么?   测试经验越多,测试能力越高。所以我的职业发展是需要时间积累的,一步步向着高级测试工程师奔去。而且我也有初步的职业规划,前3年积累测试经验,按如何做好测试工程…

软件测试之性能测试

性能测试是与时间相关的。 主要内容 性能测试基础概念和术语介绍性能测试模型性能测试分类介绍性能测试实施与管理 性能测试基础 为什么要进行性能测试(WHY)(最重要) 应用程序是否能够很快的响应用户的要求?应用程…

【C程序设计】——程序=算法+数据结构

目录 🍊🍊一、什么是算法? 🍊🍊二、简单的算法举例 🍊🍊三、算法的特性 🍊🍊四、怎样表示一个算法 一个程序主要包括以下两方面的信息: (1&am…

软件测试项目实战经验附视频以及源码【商城项目,app项目,电商项目,银行项目,医药项目,金融项目】

前言: ​​大家好,我是凡叔。 很多初学的测试小白都在烦恼找不到合适的项目去练习,这也是难倒大部分测试小白的一个很常见的问题,项目经验确实是每一个测试非常宝贵的经验!这里凡叔给大家找了一些常用的项目合集&…

数据结构与算法十二 图进阶

一 有向图 在实际生活中,很多应用相关的图都是有方向性的,最直观的就是网络,可以从A页面通过链接跳转到B页面,那么a和b连接的方向是a->b,但不能说是b->a,此时我们就需要使用有向图来解决这一类问题,它和我们之前…

行业集体迈进全屋智能,华为的“空间智能跃升”独领风骚?

智能家居近年来发展飞速,市场正在从最初的单品智能向全屋联动智能切换。 据IDC数据,2022年中国全屋智能市场销售额突破100亿元,同比增长54.9%。一个住宅往往由卧室、客厅、厨房、卫生间、餐厅等多个基本功能区组成,全屋智能便是在…

企业进行产品管理内训至少有这5大好处

企业需要重视产品管理,建立完善的产品管理流程和标准,提高员工的产品管理能力,以应对各种挑战和机遇,在企业进行内训是最好的方式。 企业进行产品管理内训的目的是为了提高员工的产品管理能力,从而实现以下几个方面的好…

ChatGPT创始人采访 | GPT-4报告中文版

关于采访OpenAl Co创始人 Greg Brockman的要点记录分析,先介绍Gpt-4的基本内容,然后说下采访的重点部分,最后读一下154页Gpt-4的技术报告,这个大家可以在官网下载文档后,百度翻译支持每人限量一次的PDF翻译。面对文心一…

图(课堂笔记)

图的引入与术语 两种图 1. 有向图(Digraph):Each edge of arc has an associated direction. 2. 无向图(non-directed graph):Every edge or arc is two-way. 简单图是一种特殊的无向图。无向图没有自环…

即时设计是一款什么软件,有什么优势

即时设计是什么软件 即时设计是一款「专业UI设计工具」,不受平台限制,打开浏览器即可开始创作。它不仅具备精细化设计能力,还自带丰富的共享设计资源,同时支持多人实时协作、设计成果一键分享交付,让设计师在工作中每…

C++:使用位图处理海量数据

目录 一. 什么是位图 1.1 海量数据处理问题 1.2 位图的概念 二. 位图的实现 2.1 成员变量及成员函数 2.2 成员函数的实现 2.3 位图模拟实现完整代码 三. 关于位图处理海量数据的几个面试题 一. 什么是位图 1.1 海量数据处理问题 问题:假设有30亿个不重复的…

QT 学习笔记1 创建一个简单的cmd窗口界面

QT creator最大的特点是把界面和逻辑分开了 视频: 3、开发工具-QtCreator 目录 0、新建一个应用项目的步骤 一、设计相关: 1、控件 布局 Layouts 垫子 Spacers ​编辑 按钮 Buttons 单元视图 Item Views(Model-Based) 单元控件 Item Widgets(…

2023年美、英仍是最受欢迎的留学目标国家,硕士占比76%

2023年申请出国留学的时间已经不远了,要想顺利实现留学梦想,希望你能够把握好以下几个要点: 首先,要清楚自己的留学目标,要考虑到自己的学习能力、英语水平、专业设置、学费等因素,以便挑选一个最合适的国…

startActivityForResult被标记为废弃?Activity Result API闪亮登场!

本文已同步发表于我的微信公众号,搜索 代码说 即可关注,欢迎与我沟通交流。 文章目录 startActivityForResult()被标记为过时registerForActivityResult替代方案使用示例ActivityResultContract 场景自定义ActivityResultContract 源码浅析registerForAc…

(4.2)STM32中断系统

目录 1.中断基本概念 2.中断的意义 3.中断处理过程 4. 中断体系结构 5.NVIC 6.EXTI 1.中断基本概念 在处理器中,中断相当于对于突发事件的处理过程。 当遇到内部/外部的紧急事件需要处理时,暂时中止当前程序,转而去处理紧急事件, …

使用 ESP32 UWB DW3000进行测距和定位

什么是超宽带及其工作原理? UWB 是一种类似于蓝牙或 Wi-Fi 的短距离无线通信协议。它还使用无线电波进行通信并以非常高的频率运行。顾名思义,它还使用几 GHz 的宽频谱。可以将其想象成一种雷达,可以连续扫描整个房间并像激光束一样精确锁定物体以发现其位置并传输数据。 超…

08-用户权限控制

1、用户权限控制 权限控制是什么:控制用户对系统资源(URI)的操作。 前端的权限控制:对页面或页面元素的权限控制。 > 页面访问权限:哪些页面可以访问、哪些页面元素可见等等。 > 操作权限:如页面按钮是否可点击、是否可以增删改查等等 后端的权限控制:对接口及…

网络协议之HTTP详细解释

文章目录 前言一.Web发展的阶段二.http协议初识2.1 概念2.2 http的发展史2.3 http协议的作用2.4http协议的格式 三.抓包工具的介绍什么是抓包抓包工具的原理抓包工具的使用和下载- 具体下载过程:- 使用过程 四.HTTP请求请求行请求报头 五.HTTP响应状态行响应报头响应正文 前言 …

Java+Redis实现撤销重做功能

文章目录 1.背景2.需求分析3.实现逻辑分析4.统一过期时间设置5.初始图表栈6.记录图表变化7.撤销操作8.重做操作9.删除图表处理 1.背景 ​ 在一个编辑页面中,存在多个图表,对图表的配置操作允许撤销和重做;撤销和重做只是针对页面中图…

马斯克宣布将卸任推特 CEO:已找到接班人,自己要去当 CTO

作者 | 李冬梅 来源 | AI前线 ID | ai-front 当地时间 5 月 11 日,马斯克在特推上发文宣布,他将在 6 个星期后正式卸任推特 CEO 一职,并且已经找到了一位女性接班人,自己将转到技术岗位。 马斯克在推文中写道:“很…