小编典典

Spring Boot GUI测试Selenium WebDriver

selenium

我开发了一个Spring Boot / Angular JS应用程序。现在,我正在尝试实现一些GUI界面测试。

我尝试使用Selenium ChromeDriver,因此添加了Selenium依赖项:

<dependency>
    <groupId>org.seleniumhq.selenium</groupId>
    <artifactId>selenium-java</artifactId>
    <version>3.4.0</version>
</dependency>

我创建了第一个测试:

@RunWith(SpringJUnit4ClassRunner.class)
@SpringApplicationConfiguration(classes = MyMainClass.class)
public class SeleniumTest {
    private WebDriver driver;

    @Before
    public void setup() {
        System.setProperty("webdriver.chrome.driver", "my/path/to/chomedriver");
        driver = new ChromeDriver();
    }

    @Test
    public void testTest() throws Exception {
        driver.get("https://www.google.com/");
    }
}

这很好。但是现在我想让我的应用页面具有:

driver.get("http://localhost:8080/");

但是我在Chrome浏览器中看到了“ ERR_CONNECTION_REFUSED”。

我认为这是因为我需要先设置测试才能运行Web应用程序,然后才能运行测试,但是我找不到实现该目标的方法?


阅读 913

收藏
2020-06-26

共1个答案

小编典典

在您的情况下,服务未启动。尝试这样的事情。

@RunWith(SpringRunner.class)
@SpringBootTest(webEnvironment = SpringBootTest.WebEnvironment.RANDOM_PORT)
public class SeleniumTest {
    @LocalServerPort
    private int port;
    private WebDriver driver;

    @Value("${server.contextPath}")
    private String contextPath;
    private String base;

    @Before
    public void setUp() throws Exception {
        System.setProperty("webdriver.chrome.driver", "my/path/to/chromedriver");
        driver = new ChromeDriver();
        this.base = "http://localhost:" + port;
    }

    @Test
    public void testTest() throws Exception {
        driver.get(base + contextPath);
    }
}

更新:

添加依赖项

    <dependency>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter-test</artifactId>
        <scope>test</scope>
    </dependency>
2020-06-26