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:
一路傻瓜式安装,软件会引导安装android sdk,把Android\Sdk\platform-tools加到path里就可以了。
安装配置
droidbot
克隆仓库:
我在执行安装时,遇到了部分包找不到的问题,查阅issue和pr,发现是setup.py中指定的一些包版本过新,而droidbot还使用了旧的api导致了错误(androguard包)。
参考这份还未合并的pr进行解决:Fix Import Error for Androguard >=4 and Update setup.py Entry Points due to the possible error by ZeddYu · Pull Request #160 · honeynet/droidbot
修改完成后安装包:
检查一下安装情况,看看命令能否正常运行:
android虚拟机
在android studio中创建虚拟机,配置如下图所示:
启动虚拟机器,需要在终端中运行adb命令查看,确保adb能够发现设备:
运行测试
启动droidbot,选择你要分析的apk文件和输出文件夹:
输出了结果:
UTG图如下,我运行了快一个小时还没有结束,提前掐了,看来这个测试进行的还是比较慢的:
总结归纳
DroidBot是一款功能强大的Android自动化测试工具,它通过生成UI转换图(UTG)来分析和可视化Android应用程序的用户界面行为。这个工具能够自动发送随机或脚本化的输入事件,从而快速提高测试覆盖率。在本次实验中,我们探索了DroidBot的安装、配置和使用过程。
使用DroidBot进行测试时,我们发现生成完整的UTG图需要相当长的时间。尽管测试过程较慢,但DroidBot仍然展示了其在自动化测试方面的潜力。它能够自动探索应用程序的不同状态,识别交互元素,并生成可视化的界面流程图,这对于全面测试和bug定位都非常有帮助。
- 作者:jackpai
- 链接:https://www.jackpai.life//technology/droidbot-lab
- 声明:本文采用 CC BY-NC-SA 4.0 许可协议,转载请注明出处。