验收/功能测试中的性能分析
Performance profiling in acceptance/ functional tests
我使用一个简单的验收测试来执行以下操作:
- 加载网站的起始页;
- 执行授权尝试;
- 执行注销尝试;
- 执行注册尝试。
每个功能都分几个步骤进行测试,例如 -
...
$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 中制作一组步骤(一些标记,可能是..)并显示执行这些组所花费的时间?
您可以将以下代码添加到 FunctionalTester
或助手 class:
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";
}
...
}
然后在 Cept/Cest 文件中使用此操作:
$I->wantTo('Try to login with right credentials'); // step 1
$I->markFirstTimeTag();
$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->markSecondTimeTag();
$I->calculateTheDiffFor("Login attempt");
$I->seeCurrentUrlEquals('/user/admin'); // step 6
例如,可以在 Jenkin 的日志中看到输出。
我使用一个简单的验收测试来执行以下操作:
- 加载网站的起始页;
- 执行授权尝试;
- 执行注销尝试;
- 执行注册尝试。
每个功能都分几个步骤进行测试,例如 -
...
$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 中制作一组步骤(一些标记,可能是..)并显示执行这些组所花费的时间?
您可以将以下代码添加到 FunctionalTester
或助手 class:
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";
}
...
}
然后在 Cept/Cest 文件中使用此操作:
$I->wantTo('Try to login with right credentials'); // step 1
$I->markFirstTimeTag();
$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->markSecondTimeTag();
$I->calculateTheDiffFor("Login attempt");
$I->seeCurrentUrlEquals('/user/admin'); // step 6
例如,可以在 Jenkin 的日志中看到输出。