测量测试用例执行时间

时间:2017-11-19 08:51:35

标签: android testing junit testcase execution-time

我试图测量并增加测试用例的执行时间。我正在做的是:

  1. 让我们假设我使用testAbc()测试方法abc()。
  2. 我使用android studio和junit进行软件开发。
  3. 一开始我以毫秒为单位记录时间戳 启动变量,然后当方法完成时,它返回 当前纳秒和开始之间的差异。
  4. testAbc()分为3部分:初始化,测试abc()和 断言(检查测试结果)。
  5. 我跟踪testAbc()中的测试时间一样 abc()方法。
  6. 执行测试后,我发现abc()方法需要 45-50%的测试时间。
  7. 我修改了testAbc(),如下所示:
  8. void testAbc(){
    startTime = System.nanoTime();
    //no modification to the initialization part
    //testing abc part is modified by placing it in a for loop to increase its 
    //execution time.
    for(int i=0 ; i < 100; i++)
    {
        //test abc code goes here ...
        abcTime += abc();
    }
    
    //assertion part wasn't modified
    testEndTime = System.nanoTime - startTime;
    }
    

    通过重复测试部分,我认为abcTime和testEndTime之间的比率会增加(通过显着增加abcTime),然而,它根本不是我的意思,它是45-50%。

    我的问题:

    • 为什么这个比例没有增加?我的意思是原则上初始化和断言部分的执行时间不应受for循环影响,因此abc的时间应该在100次重复后更接近测试时间。
    • 如何增加abc()和testAbc()之间的比例?
    谢谢你的时间。

0 个答案:

没有答案