Reputation: 1358
friends. I try to understand how does selenium work. I written some tests with JUnit 4. These tests works fine when my app is running and I put as URL localhost:8077 where my app is started. All tests pass as I need. But now I want that my war build will depend by these tests. After these I want that the automated release (Jenkins) will also depend by selenium tests. I don't understand some things:
Upvotes: 3
Views: 1170
Reputation: 2291
Should the selenium test be included in my application or they should be assembled in a standalone application? (I read about Selenium Grid but I am not sure that I need it)?
It depends on how you want to run your tests. Best practice is to call the test configuration inside your maven project and tests will run during your build job. You can also call your maven target after the build is completed.
Selenium Grid is useful but only if you have dedicated machines having proper setup to run those tests, else your tests may often fail. You should consider running your tests remotely on cloud using services like Saucelabs, etc.
I have one developer machine, one server with jenkins and the production server. What are the needed steps to implement Selenium test? What Url should be used in test? Is it needed to install Tomcat Server on the same server with Jenkins?
Selenium tests can be implemented with Maven on Jenkins following the step from here, here and here.
Dev or Test URLs should be used for running the test.
I think you would need Tomcat Server if you are hosting your application on the Jenkins machine or else it should not be needed.
Can I invalidate the build and drop the release on Jenkins if selenium tests are not passed?
When you include the test configuration in your project configurations, the build may fail during the build job if your test fails. You can set how you want to proceed with your build when you test fails like failing the build or pass the build with warning. You may want to get notifications for failed build also.
Ex. Jenkins marks good build as failure because of test failed
Jenkins plugins can be used based on the needs.
You may like to read more about How to do Integration tests here.
Upvotes: 1
Reputation: 1338
I'll do my best to answer your questions, and hopefully clear a few things up for you.
From my experience each test should be created as a new item and then configured to run after your app is deployed or periodically. No you dont need Selenium Grid. It is used for parallel execution of tests.
You'll need to configure your machines as nodes on jenkins and install the jenkins agent on the slave machines. Setting up selenium tests differs depending on how you have written the tests, for example i use maven as my build tool. So for each new test i only need to point towards svn and give the maven launch commands. The url is whatever url you use to access your app. There is a very good article on how to setup jenkins on their site, you can find it here
Yes.
Upvotes: 1