验收/功能测试中的性能分析

时间:2016-06-03 09:28:51

标签: selenium-webdriver profiling codeception acceptance-testing

我使用简单的验收测试来执行以下操作:

  • 加载网站的起始页;
  • 执行授权尝试;
  • 执行注销尝试;
  • 执行注册尝试。

每个功能都经过几个步骤测试,例如 -

...
$I->wantTo('Try to login with right credentials'); // step 1
$I->amOnPage('/user/login');                       // step 2
$I->fillField('#login-form-login','admin');        // step 3
$I->fillField('#login-form-password','admin');     // step 4
$I->click('#login-form button[type=submit]');      // step 5
$I->seeCurrentUrlEquals('/user/admin');            // step 6
...

我想知道每组步骤/个别步骤执行了多长时间。

由于所有功能都在一次测试中收集在一起,因此运行此命令的结果将显示一个报告,显示整个测试整个花费的时间。

codecept run acceptance --html

在Codeception中是否可以制作一组步骤(一些标记,可能是..)并显示执行这些组所花费的时间?

我将非常感谢这些信息。谢谢大家。

1 个答案:

答案 0 :(得分:0)

您可以将以下代码添加到#include <stdio.h> int main() { int x = 0, y = 2; int z = ~x & y; printf("%d\n", z); } 或帮助程序类:

FunctionalTester

然后在Cept / Cest文件中使用此操作:

class FunctionalTester extends \Codeception\Actor {
    ...

    private $firstTimeTag;
    private $secondTimeTag;

    public function markFirstTimeTag()
    {
        $this->firstTimeTag = new DateTime();
    }

    public function markSecondTimeTag()
    {
        $this->secondTimeTag = new DateTime();
    }

    public function calculateTheDiffFor($step)
    {
        echo $step.": ". round($this->secondTimeTag->getTimestamp() -
                $this->firstTimeTag->getTimestamp(), 3). " s\n";
    }
    ...
}

例如,可以在Jenkin的日志中看到输出。