java - 是否有任何注释生成每个步骤从自动化测试执行所需的时间

标签 java selenium-webdriver annotations testng qaf

我正在使用 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 是详细报告的最简单方法。

Screenshot

使用 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/

相关文章:

c - 使用 C 向 PNG 图像添加文本/注释

java - 是否可以在 Android native 应用程序中使用 HTML?

java - 从源创建两个接收器 - Akka Streams

java - Sax 解析器将 "\n"替换为 "\\n"

java - 如何生成带有时间戳的单独测试输出文件夹?

java - Selenium WebDriver出现异常怎么办?

java - 如何在 Web 应用程序中加载多个 XSD?

selenium-webdriver - Specflow - 如何进行待定测试以使整个测试不失败

java - 获取内部 TypeElement 的类名和注解处理器

spring - 我可以在 Apache Shiro 安全注释中使用表达式吗?