如何在Jenkins for Maven/Java项目上实现selenium测试?
朋友们。我试图了解硒是如何工作的。我用JUnit4编写了一些测试。当我的应用程序运行时,这些测试工作正常,我将URL localhost:8077放在启动我的应用程序的地方。所有的测试都通过了。但现在我希望我的战争构建将取决于这些测试。在这些之后,我希望自动发布(Jenkins)也将依赖于selenium测试。 有些事情我不明白:
- selenium测试应该包含在我的应用程序中,还是应该组装在一个独立的应用程序中?(我读过Selenium Grid,但我不确定是否需要它)李>
- 我有一台开发人员机器,一台带有jenkins的服务器和生产服务器。实施Selenium测试需要哪些步骤?测试中应该使用什么Url?是否需要在与Jenkins相同的服务器上安装Tomcat服务器李>
- 如果selenium测试未通过,我可以使构建无效并放弃Jenkins上的版本吗李>
# 1 楼答案
我会尽力回答你们的问题,希望能为你们澄清一些事情
根据我的经验,每个测试都应该创建为一个新项目,然后配置为在应用部署后或定期运行。不,你不需要硒网格。它用于并行执行测试
您需要将机器配置为jenkins上的节点,并在从属机器上安装jenkins代理。设置selenium测试取决于您编写测试的方式,例如,我使用maven作为构建工具。因此,对于每个新的测试,我只需要指向svn并给出maven启动命令。url是您用来访问应用程序的任何url。关于如何在他们的网站上设置jenkins,有一篇非常好的文章,你可以找到它here
对
# 2 楼答案
这取决于您希望如何运行测试。最佳实践是在maven项目中调用测试配置,测试将在构建作业期间运行。您还可以在构建完成后调用maven目标
Selenium Grid很有用,但前提是您的专用机器具有运行这些测试的适当设置,否则您的测试可能会经常失败。您应该考虑使用SueCabABS等服务远程地在云上运行测试。
Selenium测试可以通过Maven在Jenkins上执行here、here和here的步骤
应该使用Dev或Test URL来运行测试
我认为如果你在Jenkins机器上托管应用程序,你需要Tomcat服务器,否则就不需要了
当您在项目配置中包括测试配置时,如果测试失败,则在生成作业期间生成可能会失败。您可以设置在测试失败(如生成失败)或通过生成并发出警告时,希望如何继续生成。您可能还希望获得生成失败的通知
例如Jenkins marks good build as failure because of test failed
Jenkins plugins可根据需要使用