Appcrawler自动遍历工具-智能遍历测试与测试用例生成

news/2025/10/10 15:18:55/文章来源:https://www.cnblogs.com/hogwarts/p/19133132

效率与成本的抉择
在软件开发过程中,测试环节直接影响产品质量和用户体验。随着系统迭代频繁、功能复杂化,企业在测试方法的选择上面临困境:手工测试灵活却效率低,自动化测试高效却前期投入大。那么,我们到底应该如何选择合适的测试方法,以兼顾质量、效率与成本呢?

手工测试与自动化测试的对比

image

手工测试与自动化测试的困境
image

图例:

🔴 高:影响大,必须关注

🟠 中:影响中等,需要注意

我们到底需要什么样的测试方法
image

智能遍历测试
将被测系统理解为一个有限状态机,通过遍历的方式达到充分的路径覆盖
通过对模型的分析实现自动断言与测试用例自动生成
自动遍历测试是基于模型的测试方法的一种应用场景
基于模型的测试方法
将 app 的业务行为理解为一个有向图
有向图中的节点代表业务状态
有向图中的路径代表达到特定状态的行为
以充分遍历所有状态为目标

beeb4a79-8407-457a-8b7b-77c08d97d732

智能遍历测试的特点
image

智能遍历测试相关工具
image

3ffdbddb-d311-4037-8f36-0d423618882c

Android App Crawler 中文介绍

16ec8d5e-df20-4aff-a486-5facc22f4804

Robo 测试

2238d0f3-ea8e-437d-96a6-aba93152e808

Firebase 在线的 AppCrawler 云服务

6894a8bf-49c5-4582-8f05-8c0c1c914666

168c25f5-1eeb-4c4f-afd4-20b5cda9a4dd

霍格沃兹测试开发学社 AppCrawler
AppCrawler 介绍
Appcrawler 是一个基于自动遍历的 App 爬虫工具,支持 Android 和 I0S,支持真机和模拟器。最大的特点是灵活性高,可通过配置来设定遍历的规则
appcrawler 全平台自动遍历测试工具 0&A:https://ceshiren.com/c/opensource/appcrawler author:seveniruby

基于模型分享探索路径与测试用例生成

d2074eda-55f6-4ca4-90d5-980fe97b5a17

保留每一步截图

6e425357-2fea-4d03-a7f7-55d130682075

AppCrawler 报告
d3638494-ef2e-4b66-9f92-f3d79ed4eb3c

AppCrawler quick start

Android时钟a

ppcrawler --capability "appPackage=com.google.android,deskclock,appActivity=com.android.deskclock,Deskclock”

生成默认配置文件

java -jar appcrawler.jar --demo

使用配置文件

java -jar appcrawler.jar-c demo yml
--capability "appPackage=com,xuegiu,android,appActivity=,view,WelcomeActivityAlias"
核心配置
capability 设置:与 selenium appium 完全一致
testcase:用于启动 app后的基础测试用例
selectedList:遍历范围设定
triggerActions:特定条件触发执行动作的设置
配置语法
testcase 的简写形态
xpath:对应when 里的xpath
action:对应when的action
testcase 的完整形态
given:所有的先决条件
when:先决条件成立后的行为
then:断言集合

b4e91c40-bf00-46d9-be88-0c165cc1b553

递归遍历过程
crawl():
把当前 app 的界面 dump 为 xml 结构
获取待遍历元素
遍历范围 selectedList
过滤黑名单 小控件 不可见控件 blackList
重排控件顺序 firstList lastList
跳过已点击+跳过限制点击的控件 tagLimit
根据匹配的规则执行 action中
crawl()
UI界面结构获取

5e11a97f-869f-4bf5-a722-d8fad74e45f8

遍历策略
列表优先策略

b191d920-731b-4339-98e4-34d22365f4f6

深度优先策略

d4172e83-9423-44dc-a308-f54b985d419b

列表项代码逻辑基本相同
默认只遍历其中的部分数据,可大大减少遍历工作量

3452b2e6-8dd8-405e-98df-7427c2b6d903

少部分列表项每个逻辑都不同全部遍历
对特殊的菜单与相似项提供额外的遍历额度

247946da-48bb-4c2b-a9e1-d758a95b210f

遍历算法的综合
基于界面流程
深度优先
广度优先
基于 U 控件属性的遍历策略
深度:控件在布局中的层级
列表优先:ListView RecyclerView通常是核心数据
非菜单优先:selected 属性为 true 的一般用于菜单展示
实现方式:sortByAttribute:[depth, list, selected ]
智能遍历的三要素
界面与控件结构识别
自动化 RPA
遍历算法
纯adb 也可以完成遍历测试
adb shell uiautomator dump
adb shell screencap
adb input
设计通用遍历算法
Web 遍历技术
Web 遍历的流程
需要首先解决 page source 为 html 的问题
利用 ExecuteScript 植入js 获取页面结构
转成兼容 android 的格式

14fe519c-2664-4a06-a4da-ca4e41ca6a9a

测试用例生成
大前端 (Web/App)测试框架

9e39b2f6-e1c3-4e7e-94f5-211a81120fcd

测试用例生成价值
行业目前问题

行业目前哈没有统一的测试框架
编写测试用例费时费力
用例无法自动生成与探索
解决方案

打造统一测试框架
提供多种测试框架的测试用例生成
利用模型驱动测试方法自动扩展测试用例
App Diff 测试方法
diff方法 diffy 思路的借鉴

fc0236a7-7817-4d0c-bbfe-3f4b6dd0c0ed

Diff 测试结果

1394c565-01f9-48d3-9b22-37b1323639a8

Diff测试案例

3734e69d-cd80-4ff7-ae5b-f2efdea1a9f4

f2960bed-65e4-4cbc-b615-d5507453595b

通过DOM 对比差异

ec570024-deca-4e0a-ab51-6ace3145c331

5466ef94-20df-4433-8f62-0d3f224bfd08

833027ce-41cd-4347-a354-3bf878b63481

Diff 测试报告

06030b77-a143-4f75-82fb-22615e125a28

技术交流
由霍格沃兹测试开发学社维护,技术交流与issue提交请移步 https://ceshiren.com/c/opensource/appcrawler/ 交流

image

写在最后
智能遍历测试通过模型驱动,实现对应用的高覆盖、快速执行和低维护成本,为手工测试和传统自动化测试提供了有力补充。无论是App还是Web系统,都可以通过智能遍历实现更全面的测试覆盖,降低人力成本并提升效率。

如果你希望在企业内部实现私有部署,保障数据安全与可控性,同时享受智能遍历测试带来的高效回归能力,欢迎联系我们获取更多方案和技术支持。

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

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

相关文章

[USACO20FEB] Clock Tree S

一开始读错题意了。 然后以为自己做法假了,实际并没有。 有 \(O(n)\) 做法但我写的是 \(O(n^2)\) 的。 换根dp就行了,每次判断一下能不能成功。 注意如果到最后根是 \(1\) 也是可以成功的。点击查看代码 #include<…

完整教程:【Spark+Hive+hadoop】人类健康生活方式数据分析

pre { white-space: pre !important; word-wrap: normal !important; overflow-x: auto !important; display: block !important; font-family: "Consolas", "Monaco", "Courier New", …

mysql查看表大小,4种实用方法

MySQL数据库运维中,掌握表的大小信息对于性能优化、容量规划和维护工作至关重要。本文将详细介绍4种查看MySQL表大小的实用方法,帮助你精准掌握数据库存储状况。 方法1:查看单个表的完整大小信息 使用以下SQL可以查…

微算法科技(NASDAQ:MLGO)开发延迟和隐私感知卷积神经网络分布式推理,助力可靠人工智能系统技术

随着人工智能(AI)技术的不断发展,智能服务的广泛应用正在深刻改变着各行各业的面貌。在这个过程中,基于深度学习的系统往往面临计算资源的巨大需求,尤其是在边缘设备上运行复杂的卷积神经网络(CNN)时,计算负载…

不止节能,更能 “生钱”:MyEMS 辅助企业参与电力现货市场的实操案例

随着我国电力市场化改革的不断深化,电力现货市场从试点逐步走向常态化运行。对于用电大户企业而言,这既是机遇 —— 可通过灵活调整用电策略享受电价波动红利,也是挑战 —— 传统用电模式难以应对复杂的电价机制,往…

当能耗监控变 “游戏”:MyEMS 可视化看板如何让员工主动参与节能?

在企业节能管理中,“员工被动接受监控” 是长期存在的痛点 —— 传统能耗数据报表枯燥难懂,员工既不清楚自己的行为与能耗的关联,也缺乏主动节能的动力。而 MyEMS(My Energy Management System)可视化看板的出现,…

微算法科技(NASDAQ:MLGO)基于任务迁移的弹性框架重塑动态扩缩容,赋能边缘智能计算

在全球数字化进程加速的今天,边缘计算(Edge Computing,简称EC)作为推动移动互联网、物联网和智能终端普及的关键技术,正被赋予越来越多的期待。随着用户对于实时性、可靠性以及高性能数据处理需求的不断提升,传统…

从小时级到分钟级:多点DMALL如何用Apache SeaTunnel把数据集成成本砍到1/3?

过去我们依赖 Spark 自研同步工具,虽然稳定,却面临“启动慢、资源重、扩展难”的痛点。作者 | 贾敏 多点DMALL 资深大数据研发工程师 作者介绍 贾敏,多点 DMALL 资深大数据研发工程师,主导公司核心数据集成平台架构…

2025 最新隔音棉生产厂家口碑推荐榜:甄选实力与品质兼具的品牌,含西南 / 昆明高性价比厂商最新推荐防火墙/内衬/鸡蛋/聚酯纤维/装修/吊顶隔音棉厂家推荐

随着建筑装饰、汽车改装等领域对声学环境要求的升级,隔音棉市场需求持续扩大,但行业乱象让采购者面临多重挑战。部分厂商为压低成本选用劣质基材,导致产品隔音量不足、防火环保不达标,潮湿环境下易发霉老化;新品牌…

2025 年高强钢板厂家最新推荐排行榜:聚焦国内优质企业,涵盖多型号产品,助力工业采购精准选型Q550D/合金/HG785D/ Q690D/S960QL/700L高强钢板厂家推荐

当前,高强钢板作为工业生产的关键基础材料,在矿山、冶金、电力、汽车制造等领域的应用愈发广泛,下游行业对其耐磨、耐蚀、高强度等性能的要求也不断提高。然而,市场上高强钢板供应商资质参差不齐,部分产品存在耐磨…

2025 升降杆厂家TOP 榜:梁山信达恒泰,专注多领域设备供应,气动型升降杆源头厂家推荐!

随着智慧城市建设、安防监控升级及市政基础设施完善,升降杆作为支撑通讯设备、监控摄像头、照明系统的核心载体,市场需求持续增长。但行业现存诸多痛点:部分厂家使用薄壁钢材、劣质焊接工艺压缩成本,导致升降杆抗风…

2025 年最新推荐耐磨钢板生产厂家排行榜:涵盖高锰 / 堆焊 / 双金属 / NM 系列及无磁类型,解决采购难题助力企业选高性价比品牌

在矿山、冶金、电力等重工业及轻工业领域,耐磨钢板作为核心耗材,其质量与性能直接关联设备运行效率、维护成本及企业生产稳定性。当前市场中,耐磨钢板厂家数量繁杂,产品规格多样、价格跨度大,且部分厂家存在压缩成…

Playwright MCP 与 Claude 的完美协作:打造网页操作智能体

当最智能的大脑遇见最灵活的手 想象一下,您可以用自然语言对AI说:“请帮我找到最近三个月内关于AI代理的最新研究论文,下载PDF并整理成一个摘要表格”,然后它就能自动打开浏览器,导航到学术网站,执行搜索、筛选、…

高纯气体管道工程安装公司厂家推荐/管道施工队哪家好?

高纯气体管道工程安装公司厂家推荐/管道施工队哪家好? 南京联俊流体技术有限公司是高纯气体管道工程安装领域的优质选择,其核心优势体现在专业资质、技术实力、服务体系及行业口碑四大方面,具体分析如下: 一、专业…

苹果群控系统的游戏运营 - 详解

pre { white-space: pre !important; word-wrap: normal !important; overflow-x: auto !important; display: block !important; font-family: "Consolas", "Monaco", "Courier New", …

找ant组件库对应样式

我的项目里面定义这个样式是.ant-tag { background-color: #F2F3F5; color: #1D2129; border-color: #F2F3F5;},我想在Ant Design Vue 的github找到对应的地方看看样式一不一样,我该怎么找,而且这个样式是以什么…

完整教程:云原生网关Higress介绍与部署指南

完整教程:云原生网关Higress介绍与部署指南2025-10-10 14:35 tlnshuju 阅读(0) 评论(0) 收藏 举报pre { white-space: pre !important; word-wrap: normal !important; overflow-x: auto !important; display: bl…

达芬奇中文入门到精通视频教程DaVinci Resolve常用快捷键

达芬奇是一款专业的影视后期制作软件,它可以帮助影视制作人员进行视频调色、视觉特效、音频编辑和剪辑等方面的处理。达芬奇18 破解版是迄今最先进的调色工具。DaVinci Resolve Studio破解版和专业多轨道剪辑功能合而…

2025 年最新推荐!涵盖系统智能断桥窄边等多类型铝门窗厂家榜单,优秀生产厂家实力盘点智能/断桥/窄边/定制/全景/阳光房/隐框铝门窗厂家推荐

随着家居装修和工程建设对铝门窗需求的不断攀升,市场上铝门窗品牌层出不穷,但质量却参差不齐。部分小厂家缺乏规范生产流程,产品材质不达标、工艺粗糙,不仅影响使用体验,还存在安全隐患;同时,消费者面对众多品牌…

读书笔记:**Oracle 中的数字类型:怎么选?怎么用?**

我们的文章会在微信公众号IT民工的龙马人生和博客网站( www.htz.pw )同步更新 ,欢迎关注收藏,也欢迎大家转载,但是请在文章开始地方标注文章出处,谢谢! 由于博客中有大量代码,通过页面浏览效果更佳。本文为个人学…