当前位置: 首页 > news >正文

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

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

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

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.hskmm.com/?act=detail&tid=28023

相关文章:

  • [USACO20FEB] Clock Tree S
  • 光储充一体化 + MyEMS:新能源场站的 “能源管家” 是这样工作的
  • idea插件Doc View
  • PGSQL + patroni + timescaledb 集群搭建
  • 随着种植精细化需求提升,草莓滴灌管、圆柱式滴灌管及 PVC 滴灌管成为节水灌溉核心装备,盘点五家实力厂家的特色产品
  • 2025 年最新推荐 OCR 图片识别软件厂商榜单:全面解析文字识别与格式转换服务商技术实力及服务能力ocr图片转excel/ocr图片转word厂商推荐
  • 2025 年高纯硼酸生产厂家最新推荐榜单:覆盖多领域优选,助力企业精准找高性能产品制造商核级/半导体/医用/电子/颗粒高纯硼酸厂家推荐
  • 计数集锦2
  • app.Environment.IsDevelopment()了解
  • 2025 年最新注浆管生产厂家综合实力排行榜:聚焦高精度与国企合作案例的优质厂家推荐管棚管/地质/边坡支护/袖阀/锚杆/岩心注浆管厂家推荐
  • 微算法科技(NASDAQ:MLGO)基于任务迁移的弹性框架重塑动态扩缩容,赋能边缘智能计算
  • 从小时级到分钟级:多点DMALL如何用Apache SeaTunnel把数据集成成本砍到1/3?
  • 2025 最新隔音棉生产厂家口碑推荐榜:甄选实力与品质兼具的品牌,含西南 / 昆明高性价比厂商最新推荐防火墙/内衬/鸡蛋/聚酯纤维/装修/吊顶隔音棉厂家推荐
  • 2025 升降杆厂家TOP 榜:梁山信达恒泰,专注多领域设备供应,气动型升降杆源头厂家推荐!
  • Playwright MCP 与 Claude 的完美协作:打造网页操作智能体
  • 2025 年高强钢板厂家最新推荐排行榜:聚焦国内优质企业,涵盖多型号产品,助力工业采购精准选型Q550D/合金/HG785D/ Q690D/S960QL/700L高强钢板厂家推荐
  • 2025 年最新推荐耐磨钢板生产厂家排行榜:涵盖高锰 / 堆焊 / 双金属 / NM 系列及无磁类型,解决采购难题助力企业选高性价比品牌
  • 高纯气体管道工程安装公司厂家推荐/管道施工队哪家好?
  • 找ant组件库对应样式
  • 指针
  • 达芬奇中文入门到精通视频教程DaVinci Resolve常用快捷键
  • 2025 年最新推荐!涵盖系统智能断桥窄边等多类型铝门窗厂家榜单,优秀生产厂家实力盘点智能/断桥/窄边/定制/全景/阳光房/隐框铝门窗厂家推荐
  • 读书笔记:**Oracle 中的数字类型:怎么选?怎么用?**
  • 什么是Symbol?
  • 2025 年门窗厂家推荐排行榜,新标门窗从型材到成品实现全链新标造铝合金门窗 / 系统门窗推荐这十家公司
  • PyCharm 2025.1重磅升级:AI驱动开发+全功能免费核心,Python开发者必看
  • Oracle案例:SOLARIS RAC平台模拟节点crash后强制删除与增加
  • 学习笔记——计算机程序设计
  • CAD文件处理控件Aspose.CAD教程:在 Python 中将 SVG 转换为 PDF
  • 电子打气泵方案(工作原理和组成以及功能参数)