Lazy loaded image
DroidBot:android自动化测试工具
00 分钟
2024-10-28
2024-10-28
type
status
date
slug
summary
tags
category
icon
password
DroidBot is a lightweight test input generator for Android. It can send random or scripted input events to an Android app, achieve higher test coverage more quickly, and generate a UI transition graph (UTG) after testing.

DroidBot工具概述

UTG (UI Transition Graph) 测试是DroidBot工具的一个重要功能。它是一种用于分析和可视化Android应用程序用户界面行为的方法。以下是UTG测试的主要特点:
  • 自动生成:DroidBot在测试过程中自动创建UTG,无需手动干预。
  • 可视化界面流程:UTG以图形方式展示应用程序的不同界面状态及其之间的转换关系。
  • 识别交互元素:图中的节点代表不同的界面状态,边表示用户操作(如点击、滑动等)导致的状态转换。
  • 覆盖率分析:通过UTG可以直观地了解测试覆盖了应用程序的哪些部分,帮助识别未测试的功能或路径。
  • bug定位:当发现问题时,UTG可以帮助开发者追踪导致问题的操作序列。

DroidBot实践使用

前置要求

droidbot需求环境

  • 安装python并配置环境变量
  • 安装java sdk并配置环境变量
  • 安装android sdk并配置环境变量

安装android sdk

对于安装android sdk这一项,推荐使用android studio进行安装,因为后面还需要用到android studio中的虚拟机来运行测试程序。
请使用toolbox来管理jb家的ide:
notion image
一路傻瓜式安装,软件会引导安装android sdk,把Android\Sdk\platform-tools加到path里就可以了。

安装配置

droidbot

克隆仓库:
我在执行安装时,遇到了部分包找不到的问题,查阅issue和pr,发现是setup.py中指定的一些包版本过新,而droidbot还使用了旧的api导致了错误(androguard包)。
notion image
修改完成后安装包:
检查一下安装情况,看看命令能否正常运行:

android虚拟机

在android studio中创建虚拟机,配置如下图所示:
notion image
启动虚拟机器,需要在终端中运行adb命令查看,确保adb能够发现设备:

运行测试

启动droidbot,选择你要分析的apk文件和输出文件夹:
输出了结果:
notion image
UTG图如下,我运行了快一个小时还没有结束,提前掐了,看来这个测试进行的还是比较慢的:
notion image

总结归纳

DroidBot是一款功能强大的Android自动化测试工具,它通过生成UI转换图(UTG)来分析和可视化Android应用程序的用户界面行为。这个工具能够自动发送随机或脚本化的输入事件,从而快速提高测试覆盖率。在本次实验中,我们探索了DroidBot的安装、配置和使用过程。
使用DroidBot进行测试时,我们发现生成完整的UTG图需要相当长的时间。尽管测试过程较慢,但DroidBot仍然展示了其在自动化测试方面的潜力。它能够自动探索应用程序的不同状态,识别交互元素,并生成可视化的界面流程图,这对于全面测试和bug定位都非常有帮助。
 
上一篇
lazyvim快速上手(c/c++)
下一篇
soot框架:分析apk文件与class文件