【问题标题】:progressively test my application by prioritizing test functions?通过优先测试功能逐步测试我的应用程序?
【发布时间】:2017-02-14 10:29:37
【问题描述】:

我一直在使用 Java 和 Selenium 以及 JUNIT 来创建测试用例。我一直在逐步测试应用程序的不同部分。

IE:页面导航,然后是页面导航并单击特定按钮。

在这种情况下,我有 2 个测试函数:

@Test
public void pageNavigation(){...}

@Test
public void buttonClickOnPage(){
  pageNavigation();

  WebElement ele = ....;
}

这些不一定以相同的顺序运行,因此它可能首先运行buttonClickonPage。我希望设置一个优先级队列,以便对应用程序进行广度优先测试,测试所有简单案例,然后移动更广泛的案例。

我知道这些案例独立运作,这很好,但其中一个案例可能需要使用另一个案例,并以此为基础。

有没有办法在 Java Selenium 和 Junit 范围内做到这一点。

谢谢

【问题讨论】:

  • 您可能会考虑使用 Geb 和 Spock(基本上是 Selenium 和 JUnit 之上的 DSL),它们汇总了大部分功能,并且可以轻松地以您所要求的方式进行组合。跨度>
  • 看看github.com/junit-team/junit4/wiki/Test-execution-order... 在类级别使用@FixMethodOrder(MethodSorters.NAME_ASCENDING)。

标签: java selenium selenium-webdriver junit webdriver


【解决方案1】:

我使用分层扩展的注释对我的测试类进行了优先级排序。

public interface High extends Medium
public interface Medium extends Low
public interface Low

测试类使用另一个 Junit annotation org.junit.experimental.categories.Category 像这样注释

@Category(testclient.priority.Medium.class)
public class MyMediumTest {
...
}

您可以使用 maven 或 gradle 轻松包含/排除类别。这是example。它可能也适用于方法级别。

【讨论】:

  • 我会试一试看看是否可行,因为这将是一种非常棒的简单方法。我希望只做类似@Test(Priority:1) 的事情,但这也可以解决问题。我希望有更多的桶,但我可以扩展您的交互结构以拥有 3 个以上的对象。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2018-04-12
  • 1970-01-01
  • 2017-10-05
  • 1970-01-01
  • 2013-05-03
  • 2017-04-30
相关资源
最近更新 更多