使用EMMA获取Android测试覆盖率
作者:chichichichi 发布时间:[ 2016/7/26 14:11:28 ] 推荐标签:EMMA 覆盖率 Android
EMMA是一个Java代码测试覆盖率获取工具。尝试了一种使用EMMA获取Android测试覆盖率的方法,参考使用了 DynoDroid提供的方法,其原理是使用插桩与BroadcastReceiver,使得插桩后打包签名而成的APK运行时每次操作均发送信息给BroadcastReceiver,BroadcastReceiver中负责将覆盖率信息写到SD卡的名为coverage.ec的文件中。其一大优点为全程无需修改原APK的源码。
Pre
假定APK所在包为net.clasnake.project,工程主目录为/folder。
Step 1 插桩
首先下载EmmaInstrument.rar,解压后包含四个文件:
EmmaInsrumentation.java
FinishListener.java
InstrumentedActivity.java
SMSInstrumentedReceiver.java
将文件夹EmmaInstrument复制到/folder/src下。 将上述四个java文件的包名修改为net.clasnake.project.EmmaInstrument,并令InstrumentedActivity继承自项目的主Activity。 然后修改AndroidManifest.xml,加入SMSInstrumentedReceiver、EmmaInstrumentationActivity:
加入插桩标签,并允许写SD卡权限:
Step 2 重编译、安装
连接设备至adb,首先android update project更新项目,生成build.xml,以便使用ant。
然后编译插桩版本:ant instrument。
安装:ant installi。
Step 3 测试
启动插桩版本: adb shell am instrument net.clasnake.project/net.clasnake.project.EmmaInstrument.EmmaInstrumentation
进行测试,结束后使用后退键退出应用。
从设备中得到coverage.ec:adb pull /mnt/sdcard/coverage.ec
从/folder/bin中得到coverage.em,该文件中包含了待测APP的结构信息,将其与coverage.ec放置同一目录下,然后生成覆盖率报告:
java -cp ~/adt/sdk/tools/lib/emma.jar emma report -r html -in coverage.em,coverage.ec。
在同目录下的coverage文件夹下生成覆盖率报告:
相关推荐
更新发布
功能测试和接口测试的区别
2023/3/23 14:23:39如何写好测试用例文档
2023/3/22 16:17:39常用的选择回归测试的方式有哪些?
2022/6/14 16:14:27测试流程中需要重点把关几个过程?
2021/10/18 15:37:44性能测试的七种方法
2021/9/17 15:19:29全链路压测优化思路
2021/9/14 15:42:25性能测试流程浅谈
2021/5/28 17:25:47常见的APP性能测试指标
2021/5/8 17:01:11