集成测试执行应等待服务器准备就绪

时间:2019-02-19 14:05:53

标签: maven selenium maven-tomcat-plugin

我写了Selenium测试,应该在Web应用程序的构建过程中执行。我正在使用maven-failsafe-plugin执行集成测试,并使用tomcat7-maven-plugin在集成前测试阶段启动一个Tomcat服务器,并且在执行测试后,它在集成后停止测试阶段。效果很好。

问题在于,tomcat服务器在启动时正在缓存某些数据,以提高搜索速度。我的某些测试依赖于该数据,因此集成测试应等待服务器完成对数据的缓存。

我该如何实现?

1 个答案:

答案 0 :(得分:0)

我添加了一个进程栏以显示加载进度。加载完成后,不再显示过程栏,并且将呈现数据表。这样,我可以将依赖于要加载的数据表的测试添加到以下代码行:

longWait.until(ExpectedConditions.presenceOfElementLocated(By.id("dataTablePanel")));

另外,我使用org.junit.runners.Suite作为运行程序,以便可以指定测试类的执行顺序。因此,我可以执行不首先依赖数据然后依赖数据的测试。为了确保数据存在并且我不需要在每个测试用例中都进行检查,我创建了一个测试类,该类仅检查数据的存在,并且将在依赖于数据的所有测试用例之前执行。