我的新浪微博:http://weibo.com/u/1602714773
CSDN博客:http://blog.csdn.net/hunterno4
Android应用性能测试
上一篇 /
下一篇 2014-04-07 21:22:22
/ 个人分类:android自动化测试
对于Web网页来说,页面的访问、加载速度对于用户体验来说是很重要的,而如果把Android中的每个Activity都看成是一个页面的话,Activity的启动速度凭主观的话是较难精确衡量的,因此如果可以测试每个Activity的启动速度或者获得其它基本指标并进行日常监测那就更好了。
一、编写继承于Instrumentation类的LaunchPerformanceBase类
-
-
-
- public class LaunchPerformanceBase extends Instrumentation {
- public static final String TAG = "LaunchPerformanceBase";
- protected Bundle mResults;
- protected Intent mIntent;
-
-
-
-
- public LaunchPerformanceBase() {
- mResults = new Bundle();
- mIntent = new Intent(Intent.ACTION_MAIN);
- mIntent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
- setAutomaticPerformanceSnapshots();
- }
-
-
-
-
- protected void LaunchApp() {
- startActivitySync(mIntent);
- waitForIdleSync();
- }
-
- @Override
- public void finish(int resultCode, Bundle results) {
- super.finish(resultCode, results);
- }
- }
在这个类的构造函数中setAutomaticPerformanceSnapshots()为Instrumentation设置为开启性能快照功能。
LaunchApp()方法中用于启动相应的Activity, waitForIdleSync()方法则为等待Activity空闲时,即等待Activity启动完毕。
二、编写ActivityLaunchPerformanceTest类
- public class ActivityLaunchPerformanceTest extends LaunchPerformanceBase {
-
-
-
-
-
- private static final String launchActivityName = "launch_activity";
-
-
-
- private String classNameForIntent;
- private String DEFAULT_ACTIVITY = "SplashActivity";
-
-
-
-
- public ActivityLaunchPerformanceTest() {
- super();
- }
-
- @Override
- public void onCreate(Bundle arguments) {
- if ( arguments != null ) {
- classNameForIntent = arguments.getString(launchActivityName);
- }
- if ( classNameForIntent == null ) {
- classNameForIntent = DEFAULT_ACTIVITY ;
- }
- super.onCreate(arguments);
- mIntent.setClassName("com.company.example",
- "com.company.example.ui.activity." + classNameForIntent);
- start();
- }
-
-
-
-
- @Override
- public void onStart() {
- super.onStart();
- LaunchApp();
- finish(Activity.RESULT_OK, mResults);
- }
- }
这个类中onCreate()方法中传入要测试的Activity的名字。当开始测试时,Instrumentation启动,onStart方法执行时,运行LaunchApp()方法启动被测试的Activity.运行完成后finish。
Instrumentation退出,测试结束。
三、修改AndroidManifest.xml文件
在Manifest文件中增加Instrumentation申明
- <instrumentation
- android:label="Activity Launch Performance"
- android:name="com.company.example.test.performance.ActivityLaunchPerformanceTest"
- android:targetPackage="com.company.example" />
哎,51testing的日志功能又写不下了,有兴趣的请转而访问:
相关阅读:
- 性能测试之系统监控工具nmon (zaza9084, 2014-3-24)
- 性能测试学习内容指南 (zaza9084, 2014-3-25)
- Android软件测试的日志文件抓取简介 (zaza9084, 2014-3-27)
- 索尼:暂时不加入Android Wear平台 (zaza9084, 2014-3-27)
- Web服务性能测试:Node完胜Java (zaza9084, 2014-3-28)
- Android渗透测试虚拟机环境(VM)—AppUse (zaza9084, 2014-3-31)
- 谈谈容量规划 (zaza9084, 2014-4-02)
- 容量规划概述 (zaza9084, 2014-4-03)
- 分布式系统过载异常测试实践 (zaza9084, 2014-4-04)
- Android单元测试工具robolectric (zaza9084, 2014-4-01)
收藏
举报
TAG:
activity
Activity
Android
android
性能测试
应用