java - 如何根据 TestNG + Selenium WebDriver 中的运行结果选择下一个 @Test 方法?

标签 java selenium testng

我有第一个@Test方法。接下来的步骤将取决于第一个 @Test 方法的结果。这是示例:

  @Test
    public void checkErrorMessage() {

        if(searching.isErrorExist()==true) {
        //Go to method dealWithErrorPart1();

        }else{
        //Go to method continue1();
        }
    }

  @Test (dependsOnMethods = { "checkErrorMessage" })
  public void  dealWithErrorPart1() {
  //Do something with the Error ... First Step
  }


    @Test (dependsOnMethods = { "dealWithErrorPart1" })
  public void  dealWithErrorPart2() {
  //Do something with the Error ... Second Step
  }

    @Test (dependsOnMethods = { "checkErrorMessage" })
  public void  continue1() {
  //Continue doing something ... Part one
  }

      @Test (dependsOnMethods = { "continue1" })
  public void  continue2() {
  //Continue doing something ... Part two
  }

如果方法 checkErrorMessage() 找到 Error Message ,则应调用的下一个方法是 dealWithErrorPart1() 。之后应该运行dealWithErrorPart2()

如果方法 checkErrorMessage() 发现 No Error Message ,则应调用的下一个方法是 continue1() 。之后应该运行 continue2()

因此,checkErrorMessage() 将决定下一个代码流程。

因为我无法更改应用程序的行为,所以我需要单独处理每个行为。如果应用程序给我结果 A ,那么我的测试自动化应该执行方法 A1() 、 A2() 和 A3() 。如果应用程序给我结果 B ,那么我的测试自动化应该执行方法 B1() 、 B2() 和 B3() 。

如何在 TestNG 中实现这一目标?我尝试使用 throw new SkipException("Skipping this exception"); ,但这似乎并不能解决这种情况。谢谢。

最佳答案

据我所知,TestNG 不允许您构建这种测试方法的流畅编排。

TestNG 允许用户通过以下方式定义测试方法的执行顺序:

  • 使用优先级(这里用户只能定义顺序,方法将始终被执行)
  • 使用dependsOnMethods/dependsOnGroups(这里用户可以定义顺序,期望的是,当前方法所依赖的方法将被执行,如果并且仅当该方法运行完成且没有失败时)

您可能只想定义一个 TestNG 测试方法,并让该测试方法将所有应用程序行为作为条件处理,而不是期望 TestNG 为您控制此编排。

关于java - 如何根据 TestNG + Selenium WebDriver 中的运行结果选择下一个 @Test 方法?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44646537/

相关文章:

java - 当我尝试在 android studio 3 上构建 apk 时,它给了我错误

java - 返回另一个类的时间

java - 即使 xpath 相同,如何识别 Selenium 中的元素

java - 有没有办法将元素从一个框架拖放到另一个框架?

java - 字符串数组方法不返回数组对象 - Selenium WebDriver

java - 小山羊 : Read out Custom Name String/Extract Integer

java - 如何向 JUNIT 测试套件添加方法..?

Python Selenium 等待用户单击按钮

java - Spring3/Hibernate3/TestNG : some tests give LazyInitializationException, 有些没有

java - "Unexpected error during pre-commit"持久化与双向一对多拥有关系链接的对象时出现异常