We will use Jenkins server with docker from previous article. Our goal for today will be run E2E test with using framework nightwatchjs+ cucumberjs+selenium on Jenkins server.
Let’s get started.
- Installed Git client https://git-scm.com/downloads
- Installed Docker https://docs.docker.com/install/
- Jenkins running inside docker container
go to the http://localhost:1111/jenkins/pluginManager/ and login with user name and password “admin”
We need install following plugin:
after restart go to the http://localhost:1111/jenkins/blue and login again with name and password “admin”
Now we can create and run new pipeline
and that’s it.
As you can see we have two branches
For Master Branch we are using Cucumber and that’s the reason why we needed to install cucumber-report plugin.
We can see all is green, but when we want check cucumber report we need to have a look somewhere else.
Click on go to classic, and we switch to old jenkins style
Explanation and more details
Selenium Webdriver vs Selenium Server
In case that I want to start e2e test localy (on my PC) I need to have installed. I need specific version of internet browser agains of specific version webdriver.
- internet browser (ie. Chrome)
- webdriver (Chromedriver)
In my case I will use npm package “selenium-standalone“. So I have docker image with node 10, and during the build process of the image.
I install selenium- standalone with this command
$npm install selenium-standalone@latest -g $selenium-standalone install
during “selenium-standalone install” is downloaded selenium-server-standalone-3.141.5.jar and chrome driver chromedriver_linux64.zip (v.2.43).
I also need to install internet browser chrome. But always I need correct version Chrome Browser and Chromedriver, so in my Dockerfile during the build process I install latest version chromedriver with latest version Chrome browser.
Checking correct version ChromeDriver and Chrome browser inside docker container.
$docker run -it --name docker-selenium devuserpp/selenium-chromless bash or later if "docker-selenium" already running $docker exec -it docker-selenium bash $chromedriver --v $google-chrome --version
first 3 groups of numbers should be the same, i.e. my example
current ChromeDriver version you can check here
So Inside my docker image I have:
- is installed latest stable version of internet browser Chrome
- is installed latest version of ChromeDriver
- is installed install openjdk-8-jre (need for run /usr/local/lib/node_modules/selenium-standalone/.selenium/selenium-server/3.141.5-server.jar)
- is installed latest version “selenium-standalone”
becouse Nightwatch has own runner I do not need to start Selenium server at all.
All configuration is included here in file ” nightwatch.conf.js “