Selenium IDE - Command line to CICD Pipeline

In my previous blog I shared about the features of the newly resurrected Selenium IDE. Right from the initial days of Selenium IDE as the tool, there has been a stigma attached to it because it is a recording and playback tool which leads to flaky and brittle test automation scripts. This is mostly attributed to the “hard coded” locators which make the test scripts difficult to maintain. Also since Selenium IDE worked on Selenese commands it lacked the real programming language power and flexibility. However one thing that makes it work is it’s simplicity, easy learning curve and therein lies it’s true power. Now that some of the above mentioned shortcomings are taken care of in its new avatar to some extent, let’s look at some additional features that make this simple tool solve big problems.

Selenium IDE comes with SIDE Runner →  https://github.com/SeleniumHQ/selenium-ide/tree/master/packages/selenium-side-runner 

Using the SIDE Runner, the Selenium IDE tests can be run from command line and that opens up lot of possibilities to integrate it with CICD pipeline.  The installation details are provided on the above mentioned github link however I am listing it here for quick reference and start.

  1. SIDE Runner need Node.js to be installed which can be found here → https://nodejs.org/en/download/ 
  2. Upon successful installation you can check using $ node -v command, it should display the version of Node.js
  3. Run $ sudo npm install -g selenium-side-runner to install SIDE Runner using npm module. (sudo is required to enable Super user access, for windows OS, please use Admin account)
  4. Please add the path of chromedriver to PATH environment variable, on macOS it can be done by exporting the path in the bash_profile.
  5. Now you have the basic setup required to run the SIDE Runner.

Go to the folder where the Selenium IDE .side test project is saved and run the command as below:

$ selenium-side-runner Wiki.side

The command line output is displayed as below. It shows the status (PASS/FAIL) and the total time taken to run the Test Suite in the Wiki.side project. And also show the individual test cases status and execution time.  If there were more than one Test Suites then they would all run and similar report would be displayed on the command line.

In case you wish to run selected Test Suite then --filter option can be used to provide the name of the Test Suite, as below:

$ selenium-side-runner Wiki.side --filter Wiki-Positive 

Another strong feature of SIDE Runner is to have the Tests run in parallel, once this option is enabled the the tests will be triggered simultaneously and save on overall execution time.

Please notice the difference in the execution time 7.319s vs. 18.364s (in serial execution mode).  Also notice that when running the parallel, SIDE Runner treats each test cases as a Test Suite and that’s why it displayed Test Suites: 3 passed, 3 total.

We can create a Jenkins job with Shell script to call the SIDE Runner with the given parameters. One of the biggest shortcoming and stigma attached to Selenium IDE gets washed off that we can not run IDE script in a CICD pipeline.  Yes, we can!

 

That said, we have lots of ground to cover, Selenium IDE does not integrate with build tools, there is no report generation, also the much used Export to programming language feature is not yet available. The new Selenium IDE is off to a great start, looking forward to much more in the time to come.

 

Please watch video for more details



Like this post? Share it with friends