Answer
CI Tools Used with Selenium — Jenkins and Bamboo
Continuous Integration (CI) tools automatically build, test, and deploy your application whenever code is pushed. They integrate with Selenium to run your test suite without manual intervention.
1. Jenkins (Most Popular — Free & Open Source)
Jenkins is the most widely used CI tool in the QA automation world.
How to trigger Selenium tests in Jenkins:
- ✓Install Jenkins and the Maven plugin
- ✓Create a Freestyle or Pipeline project
- ✓Connect to your GitHub/GitLab repository
- ✓Add a build step:
mvn clean test - ✓Set triggers: on push, scheduled (cron), or on PR
- ✓Publish TestNG/Extent reports using the HTML Publisher plugin
GROOVY
// Jenkinsfile (Pipeline as Code)
pipeline {
agent any
stages {
stage('Checkout') {
steps {
git 'https://github.com/your-repo/selenium-framework.git'
}
}
stage('Run Tests') {
steps {
sh 'mvn clean test -Dsuite=regression'
}
}
stage('Publish Report') {
steps {
publishHTML([
reportDir: 'test-output',
reportFiles: 'index.html',
reportName: 'TestNG Report'
])
}
}
}
post {
always {
emailext(
subject: "Build ${env.BUILD_STATUS} — ${env.JOB_NAME}",
body: "See report: ${env.BUILD_URL}",
to: "team@company.com"
)
}
}
}
2. Bamboo (Atlassian — Paid)
Bamboo is Atlassian's CI/CD server, tightly integrated with Jira and Bitbucket.
- ✓Create a Plan → Stage → Job structure
- ✓Add a Maven task:
clean test - ✓Link test results to Jira tickets automatically
- ✓Supports parallel test execution across multiple agents
3. Other CI Tools
| Tool | Best For |
|---|---|
| GitHub Actions | GitHub repos, free for public |
| GitLab CI | GitLab repos, built-in |
| CircleCI | Fast cloud builds |
| Azure DevOps | Microsoft/enterprise teams |
| TeamCity | JetBrains ecosystem |
Benefits of CI for Selenium
- ✓Tests run automatically on every code commit
- ✓Catch regressions immediately — not days later
- ✓Parallel execution across multiple browsers/OS
- ✓Automatic email/Slack notifications on failure
- ✓Test history and trend reports over time
- ✓Schedule nightly full regression runs
