测试工程执行时间优化

发表于:2013-10-30 09:49

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

 作者:秦广    来源:51Testing软件测试网原创

  sell-test是sell应用的webx层接口测试工程,有1600多个case,执行时间约为40min,最近对这个工程作了一些运行时间调优,成果显著,现在执行时间约17min。
  优化主要方法就是提取数据,分析数据,改进耗时部分、减少重复工作
  1.分析maven输出的统计信息
>Running com.taobao.qatest.editItem.csellerEditItem.checkSpuEditItem.CCheckSpuInfoItemTest
>Tests run: 1, Failures: 1, Errors: 0, Skipped: 0, Time elapsed: 1.384 sec <<< FAILURE!
>Running com.taobao.qatest.editItem.csellerEditItem.checkSpu.CheckSpuTest
>Tests run: 19, Failures: 0, Errors: 0, Skipped: 0, Time elapsed: 17.951 sec
>Running com.taobao.qatest.editItem.csellerEditItem.checkSkuSort.CheckSkuPropertySortTest
>Tests run: 4, Failures: 1, Errors: 0, Skipped: 0, Time elapsed: 3.305 sec <<< FAILURE!
  maven用来执行测试的surfire插件会输出如下的基本统计信息,信息非常有限,只能提取到每个类执行的时间,类里面的@Test执行个数。
  从以上信息里,我们可以分析出每个类执行的时间,每个类里面case的平均时间,绝大部分的case执行时间都在0-3s,有一个类:
  com.taobao.qatest.editItem.csellerEditItem.checkChangeItemProperty.CSellerChangeItemPropertyTest的执行时间特别长,总时间340s,平均每个case执行时间85s。
  CSellerChangeItemPropertyTest类5个case耗时接近7分钟,重点解决。接下来review这个类,没有发现问题,只好在每个@Test方法开始和最后都加上时间统计,输出@Test方法本身的执行时间。执行过后发现@Test耗时约 200ms,本身并不慢。

……………………

查看全文请点击下载:http://www.51testing.com/html/88/n-853288.html

  2. btrace提取耗时用例的执行情况
  静态代码review没有结果,就只能提取运行时数据了,写了一个简单的btrace脚本用来提取每个方法(com.taobao.*包)的耗时,单独运行:
  CSellerChangeItemPropertyTest这个类并提取数据。
  取耗时top前10w,发现SkuDB#queryCountBySkuId()的次数非常多(9.7w),每次约20ms。
  >(ps:
  >SkuDB是auction-db.jar提供的工具类,auction-db为了屏蔽商品数据库分库分表的细节,封装了基本的删、改、查操作,提供透明的数据访问方法,可以"简单"理解成mini TDDL。)
21/212>
《2023软件测试行业现状调查报告》独家发布~

关注51Testing

联系我们

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

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

沪ICP备05003035号

沪公网安备 31010102002173号