Integrate with Jenkins
abstract Jenkins and other Continuous Integration systems can trigger Sahi scripts as part of the build process using Sahi's ANT target.
Sahi Pro needs real browsers to playback test scenarios. But most Jenkins/build machines run in server mode and do not have a GUI. This forces end users to either try with headless browsers or to execute Sahi scripts remotely.
With Sahi, this is what you can do:
Jenkins machine (J): Run Jenkins on server. No Sahi installed.
Sahi Master machine (SM): Sahi Pro Runner (or Sahi Pro) runs on this machine and behaves as Master
Sahi slave machines (SL1, SL2, SL3): These are slave machines with Sahi Pro Runner (or Sahi Pro) running on them.
Central Database: Sync all the logs from Sahi Master to this machine. For more info, look at Sahi Sync DB.
During the build process:
Jenkins pulls the latest scripts from the Source Control Management (SCM) system. It calls the Sahi ant target. Sahi target copies over the scripts from Jenkins (J) to master (SM). SM then copies scripts to SL1, SL2, SL3, distributes the execution and collects all reports. Sahi ant target then pulls reports from SM to Jenkins. This allows Jenkins to remain a headless server and does not need Sahi installed on it. Also all distribution of scripts and pulling of reports happens through Sahi's ant target itself.
infoWe recommend using Sahi Pro Runner on master, slave and central reports database machinesYou can create the ANT target from the editor using playback options. Save the file in any path accessible by Jenkins (say
C:\jenkins_sahi) and lets call it
info At the end of the configuration steps in this page, your folder structure should look like this:In the build.xml make sure that:
C: |--jenkins_sahi | |--build.xml |--email.properties |--lib | |--ant-sahi.jar
scriptDirpoints to where your Sahi scripts will reside on your Jenkins machine. This will mostly be the local directory where the scripts are checked out via Git or SVN. If your checkout directory is
E:/automation/scripts/your build.xml should have
<property name="scriptDir" value="E:/automation/scripts/"/>
- Offline reports path should be configured correctly.
The path in report tag in build.xml should be the same as that used in Publish HTML Reports in Jenkins configuration
In this example, we use
<report type="html" logdir="C:/jenkins_sahi/logs/"/>
If email is configured to be sent at the end of a build,
the path to
build.xmlshould point to the correct location. You will need to copy
C:/jenkins_sahi/email.propertiesand have this in
<property name="emailproperties" value="C:/jenkins_sahi/email.properties"/>
Let us assume that Jenkins is available in
- From the Jenkins dashboard, click on
- Enter job (or item) name as
SahiFunctionalTests(This will be the name of the job identified by Jenkins.)
Build a free-style software project. Click OK.
- At this point, you should be directed to the Configure page. Click on
Add build step. Select
-f C:/jenkins_sahi/build.xmlin the ANT target textbox.
SahiPro/lib/ant-sahi.jarfrom your Sahi Pro Runner installation folder into
To publish HTML reports after build, click on
Add Post Build Actionbutton and select
Publish HTML Reports.infoNote: You need to install HTML Publisher plugin for this step. To learn more, please use this linkProvide Logs directory and other details. Please note, in the field of "HTML directory to archive" you need to provide the same path defined in the report attribute of Sahi task in build.xml. e.g.
<report type="html" logdir="C:/jenkins_sahi/logs/"/>. This is configured via the
Offline Reportsin the Editor Playback Properties UI.
On the Jenkins dashboard, click
- If you are using distributed playback with a different Master, make sure that Sahi Pro Runner is installed and running on the Master and relevant slaves. Sahi Pro Runner installation is not required on Jenkins machine in this case. (RECOMMENDED)
- If you are using parallel or single session or distributed run with same master, make sure Sahi Pro Runner is installed and running on the Jenkins machine and on relevant slaves.
infoNote: If you are using Jenkins 1.625.3 or above, and if you are not able to view HTML Reports correctly, please read Content Security Policy here As these versions of Jenkins has introduced Content-Security-Policy to protect Jenkins users from malicious HTML/JS files in workspaces, /userContent, or archived artifacts.
info Note: You need to have HTML Publisher plugin installed. Make sure you have configured HTML Reports as described in the section above.Once HTML Reports are configured, one can view Sahi's report logs by clicking on the "HTML Reports" link on the left side navigation links on the Jenkins project page. Sahi Pro HTML logs look like this: