我正在使用 TestNG 执行此测试。在执行此测试时,我得到执行整个测试所需的总时间。现在的要求是我需要记录从该测试执行的每个步骤所花费的时间。 下面是我的自动化测试。这有 3 个步骤。
@Test(priority = 1, description = "Login to Oasis")
public void verifyFilter(){
//Step#1
navMenu = loginToApplication(username, password);
Assert.assertTrue(navMenu.isDisplayed(getWebDriverInstance()), "Login Failed!!!");
//Step#2
advancedSearchForm = navMenu.clickSearchAllTitles();
if (!advancedSearchForm.isDisplayed(getWebDriverInstance())) {
SimpleSearchFormElement simpleSearchForm = new SimpleSearchFormElement(getWebDriverInstance());
advancedSearchForm = simpleSearchForm.openAdvancedSearchForm();
}
Assert.assertTrue(advancedSearchForm.isDisplayed(getWebDriverInstance()), "Advanced Search Form is not displayed!");
//Step#3
collectionFilterDialog = advancedSearchForm.openCollectionFilterDialog();
boolean flag = collectionFilterDialog.isCollectionSelectableListDisplayed();
Assert.assertTrue(flag, "Collection Filer dialog is not displayed!");
}
最佳答案
我正在使用 QAF对于测试自动化,其内置报告器生成每个步骤执行所需的时间并显示在报告中。我发现 QAF 是详细报告的最简单方法。
使用 QAF,您的代码可以如下所示
@Test(priority = 1, description = "Login to Oasis")
public void verifyFilter(){
//Step#1
CommonStep.startTransaction("Step#1: name of the step");
navMenu = loginToApplication(username, password);
Assert.assertTrue(navMenu.isDisplayed(getWebDriverInstance()), "Login Failed!!!");
CommonStep.stopTransaction();
//Step#2
CommonStep.startTransaction("Step#2: name of the step");
advancedSearchForm = navMenu.clickSearchAllTitles();
if (!advancedSearchForm.isDisplayed(getWebDriverInstance())) {
SimpleSearchFormElement simpleSearchForm = new SimpleSearchFormElement(getWebDriverInstance());
advancedSearchForm = simpleSearchForm.openAdvancedSearchForm();
}
Assert.assertTrue(advancedSearchForm.isDisplayed(getWebDriverInstance()), "Advanced Search Form is not displayed!");
CommonStep.stopTransaction();
//Step#3
CommonStep.startTransaction("Step#3: name of the step");
collectionFilterDialog = advancedSearchForm.openCollectionFilterDialog();
boolean flag = collectionFilterDialog.isCollectionSelectableListDisplayed();
Assert.assertTrue(flag, "Collection Filer dialog is not displayed!");
CommonStep.stopTransaction();
}
以上方式是on the fly step declaration。另一种定义步骤的方法:
@QAFTestStep(description="login using {user} and {password}")
public void login(String userName, String pwd) {
//your code here
}
在testNG测试中调用这个方法,你会在report中找到step。 teststep 的另一个好处是您也可以使用描述在 bdd 中调用此步骤。
关于java - 是否有任何注释生成每个步骤从自动化测试执行所需的时间,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40272202/