如何在Jenkins for Maven / Java项目上实现selenium测试?

时间:2015-06-23 20:13:24

标签: java maven selenium jenkins junit

朋友。我试着了解硒的作用。我用JUnit 4编写了一些测试。当我的应用程序运行时,这些测试工作正常,我将URL作为URL localhost:8077启动我的应用程序。所有测试都按我的要求通过。但现在我希望我的战争构建将取决于这些测试。在这些之后,我希望自动释放(Jenkins)也将依赖于硒测试。 我不了解一些事情:

  1. 硒测试是否应包含在我的应用程序中,还是应该在独立应用程序中组装? (我读过Selenium Grid,但我不确定是否需要它)?
  2. 我有一台开发者机器,一台带有jenkins的服务器和生产服务器。实施Selenium测试需要哪些步骤?在测试中应该使用什么URL?是否需要在与Jenkins相同的服务器上安装Tomcat服务器?
  3. 如果未通过selenium测试,我是否可以使构建失效并放弃Jenkins上的版本?

2 个答案:

答案 0 :(得分:1)

我会尽力回答您的问题,希望能为您解决一些问题。

  1. 根据我的经验,每个测试都应该作为新项目创建,然后配置为在部署或定期部署应用程序后运行。不,你不需要 Selenium Grid。它用于并行执行测试。

  2. 您需要将计算机配置为jenkins上的节点,并在从属计算机上安装jenkins代理。设置selenium测试根据您编写测试的方式而有所不同,例如我使用maven作为我的构建工具。因此,对于每个新测试,我只需要指向svn并给出maven启动命令。网址是您用来访问应用的网址。有关如何在其网站上设置jenkins的非常好的文章,您可以找到它here

答案 1 :(得分:1)

  

硒测试是否应包含在我的应用程序中,还是应该在独立应用程序中组装? (我读到了Selenium Grid,但我不确定是否需要它)?

这取决于您希望如何运行测试。最佳做法是在maven项目中调用测试配置,测试将在构建作业期间运行。您也可以在构建完成后调用maven目标。

Selenium Grid非常有用,但只有当您拥有运行这些测试的专用机器时,您的测试才会失败。您应该考虑使用Saucelabs等服务在云上远程运行测试。

  

我有一台开发人员机器,一台带有jenkins的服务器和生产服务器。实施Selenium测试需要哪些步骤?在测试中应该使用什么URL?是否需要在与Jenkins相同的服务器上安装Tomcat服务器?

hereherehere的步骤之后,可以使用Maven on Jenkins实施Selenium测试。

应使用开发或测试URL来运行测试。

如果您在Jenkins机器上托管应用程序,我认为您需要Tomcat Server,否则就不需要它。

  

如果未通过selenium测试,我可以使构建失效并在Jenkins上删除发布吗?

如果在项目配置中包含测试配置,则在构建作业期间,如果测试失败,则构建可能会失败。您可以设置在测试失败时如何继续构建,例如失败构建或通过警告传递构建。您可能还希望获得失败构建的通知。

实施例。 Jenkins marks good build as failure because of test failed

Jenkins plugins可根据需要使用。

  

您可能希望详细了解如何进行集成测试here