Android App自动化性能测试探究

发表于:2016-8-09 10:46

字体: | 上一篇 | 下一篇 | 我要投稿

 作者:彭海波    来源:51Testing软件测试网采编

  重复执行
  对于有些场景,我们为了减少误差,通常需要重复执行多次取平均值。因此,我们在新建测试任务的时候,增加了设置重复次数的参数。测试任务会根据设置的参数,重复执行相应的次数。
  
设置重复次数
  响应时间的测试
  页面时间是通过计算开始加载到某个关键元素出现的时间差来作为衡量的,具体实现方式如下:
@BeforeMethod
public void beforeTest() {
createDriver();
stepStartTime = System.currentTimeMillis();
Log.logger.debug("hello");
}
@Test
public void runStep(){
stepTestTime = System.currentTimeMillis() - stepStartTime;
if(loadingtime == 0)
loadingtime = stepTestTime;
//设置结果
if(task.getTasktype().equals("Android 性能测试")){
JSONObject stepResult = new JSONObject();
stepResult.put("uielement", testStep.getUi_element().find_method_value);
stepResult.put("stepname", testStep.getUi_element().name);
stepResult.put("steptime", stepTestTime);
stepResult.put("stepresult", "success");
stepResultList.add(stepResult);
//taskService.setTaskResultInfo(taskId, stepResultList.toJSONString());
}
}
  数据汇总与统计
  性能测试结束后,我们将数据汇总并进行简单的统计,最终写入文件,保存最为测试报告的数据支持。这里简单列举下CPU的统计代码:
ArrayList<CPUInfo> cpuInfos = androidPerformanceData.getCpuinfolist();
JSONArray cpuTimeJsonArray = new JSONArray();
JSONArray cpuDataJsonArray = new JSONArray();
double avgCPU = 0.0;
long total = 0;
for (CPUInfo cpuInfo : cpuInfos) {
total += cpuInfo.cpuUsage;
cpuTimeJsonArray.add(cpuInfo.time);
cpuDataJsonArray.add(cpuInfo.cpuUsage);
}
avgCPU = total/cpuInfos.size();
  成果展示
  整体性能报告
  
整体性能报告
  详细性能报告
  详细性能报告主要显示每次执行的响应时间结果,CPU,内存,流量消耗以及FPS的分布曲线。这里简单列举其中两项数据的截图如下。
  总结
  至此,我们通过UI自动化与性能测试结合的方式解决了Android App自动化性能测试的问题。而且从脚本的录制,到测试执行,报告的生成都已经平台化。测试人员只需要录制非常简单的脚本,即可一键得到相应的性能测试报告。当然,这种方式也有其缺点,比如响应时间的测试有些小误差,录制脚本有一定的学习成本。这些都是我们未来要优化的方向,欢迎大家提出改进建议。
22/2<12
《2023软件测试行业现状调查报告》独家发布~

关注51Testing

联系我们

快捷面板 站点地图 联系我们 广告服务 关于我们 站长统计 发展历程

法律顾问:上海兰迪律师事务所 项棋律师
版权所有 上海博为峰软件技术股份有限公司 Copyright©51testing.com 2003-2024
投诉及意见反馈:webmaster@51testing.com; 业务联系:service@51testing.com 021-64471599-8017

沪ICP备05003035号

沪公网安备 31010102002173号