gpt4 book ai didi

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

转载 作者:行者123 更新时间:2023-12-02 12:49:43 24 4
gpt4 key购买 nike

我有第一个@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/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com