我为什么做这项工作? 其实这项工作是另一位同事在做,过程中发下了一些问题,但是种种原因log和数据都没有收集到,无法进行分析。然后我就接手了,负责复现她发现的问题并提供log和数据给开发分析。 需要测试的是一个什么样的功能? 需求是这样的:开发在Framework层增加了app应用权限管控(Android11中基本权限、自动以权限、AIDL),服务端可以通过下发指令到手机,控制app可以访问及不能访问的权限。同时安装app也需要对签名做校验。 该如何开始这项工作呢? 不用多言,自动化是必须的,但是如何实施呢? 首先,client端是需要接收指令的,是个指令不能人工操作下发,好在我们有web管理 【Python+ADB+Monkey 实现Rom稳定性测试详解】 在Android系统中,确保ROM的稳定性是一项至关重要的任务。本文将深入探讨如何使用Python、ADB(Android Debug Bridge)和Monkey工具来自动化测试ROM的功能,特别是针对权限管控的测试。我们要了解测试的背景和目标。 测试背景: 另一位同事在进行ROM测试时发现了一些问题,但由于缺乏必要的log和数据,无法进行深入分析。因此,接手这项工作的目标是复现这些问题,并提供详细的log和数据供开发团队分析。主要关注的特性是开发在Framework层增加的应用权限管控,包括基础权限、自动权限以及AIDL接口。此外,服务端能够控制手机上APP的权限访问,并且安装APP时需要进行签名验证。 测试步骤与实施: 1. **自动化客户端指令接收**: 自动化是提高效率的关键。由于存在Web管理页面,可以使用按键精灵或其他自动化工具(如Selenium)录制并回放操作,以实现指令的持续发送,避免人工干预。 2. **批量管理APK的安装与卸载**: 使用Python结合ADB工具,可以轻松实现批量安装和卸载APK。通过Python获取apk文件路径,调用`adb install`命令进行安装。卸载时,通过`pm list packages -3`获取已安装应用的包名,然后使用`adb uninstall`命令卸载。 3. **启动应用**: 考虑到启动应用并测试权限需求,`am`命令通常需要知道每个应用的MainActivity名称,这在大量应用中会非常耗时。为简化操作,我们可以使用Monkey工具,它只需应用的包名即可启动应用。 4. **收集log和数据**: 在测试过程中,我们需要记录log以定位问题。可以利用Python的`subprocess.Popen()`函数执行`logcat`命令,过滤出相关log。同时,为了监控系统状态,可以定期执行`dumpsys meminfo`和`cpuinfo`命令,获取CPU和内存信息。 测试结果与问题发现: 经过测试,首次执行时发现了一个本地进程的内存泄漏,怀疑与黑屏问题有关,开发团队对其进行修复。在第二轮测试中,虽然黑屏问题仍然存在,但原因是Binder挂起,特别是在特定安全应用如360手机卫士和腾讯手机管家长时间运行时。这表明选择测试用例时需要考虑功能和业务场景的关联性。 补充知识: 在进行此类测试时,编写Shell脚本生成日志文件是非常实用的。例如,可以使用以下简单脚本记录当前日期并生成日志文件: ```bash #!/bin/bash today=$(date +%y%m%d) ls /usr/bin -al > $today.log ``` 通过Python调用ADB命令进行App性能测试、封装adb命令、利用adb进行手机控制,以及使用adb shell启动应用等,都是提升测试效率的重要技巧。Python的adbapi模块可用于实现数据库异步存储,而adb shell命令则是调试和控制Android设备的强大工具。 总结,通过Python、ADB和Monkey的组合,我们可以构建一个高效的ROM稳定性测试框架,自动完成应用的安装、卸载、启动以及log收集,从而更好地识别和解决问题,确保ROM的稳定性和安全性。
![pdf](https://img-home.csdnimg.cn/images/20210720083512.png)
![zip](https://img-home.csdnimg.cn/images/20210720083736.png)
![docx](https://img-home.csdnimg.cn/images/20210720083331.png)
![rar](https://img-home.csdnimg.cn/images/20210720083606.png)
![zip](https://img-home.csdnimg.cn/images/20210720083736.png)
![pdf](https://img-home.csdnimg.cn/images/20210720083512.png)
![zip](https://img-home.csdnimg.cn/images/20210720083736.png)
![zip](https://img-home.csdnimg.cn/images/20210720083736.png)
![zip](https://img-home.csdnimg.cn/images/20210720083646.png)
![rar](https://img-home.csdnimg.cn/images/20210720083606.png)
![pdf](https://img-home.csdnimg.cn/images/20210720083512.png)
![pdf](https://img-home.csdnimg.cn/images/20210720083512.png)
![rar](https://img-home.csdnimg.cn/images/20210720083606.png)
![avatar-default](https://csdnimg.cn/release/downloadcmsfe/public/img/lazyLogo2.1882d7f4.png)
![avatar](https://profile-avatar.csdnimg.cn/default.jpg!1)
- 粉丝: 5
- 资源: 907
我的内容管理 展开
我的资源 快来上传第一个资源
我的收益
登录查看自己的收益我的积分 登录查看自己的积分
我的C币 登录后查看C币余额
我的收藏
我的下载
下载帮助
![voice](https://csdnimg.cn/release/downloadcmsfe/public/img/voice.245cc511.png)
![center-task](https://csdnimg.cn/release/downloadcmsfe/public/img/center-task.c2eda91a.png)
最新资源
![feedback](https://img-home.csdnimg.cn/images/20220527035711.png)
![feedback-tip](https://img-home.csdnimg.cn/images/20220527035111.png)
![dialog-icon](https://csdnimg.cn/release/downloadcmsfe/public/img/green-success.6a4acb44.png)