Parallel Execution in GitHub Actions using Multiple build.xml Files
In parallel execution in GitHub actions using multiple build.xml files, you can test different modules or applications on various browsers in parallel rather than one by one. Numerous versions or subcomponents of an application are tested with the same input on other systems simultaneously to reduce test execution time. Parallel execution enables faster testing and a quicker turnaround in deployments.
You can achieve parallel execution by running the Jobs in parallel using multiple build.xml files. In the example below, we execute 20 test cases with two build.xml files and ten different test cases associated with each. We run them in different browsers/modes, i.e., one in Chrome and the second in Chrome Headless mode.
It would be best to create separate jobs for running your build.xml, as you can only run your jobs parallelly in GitHub actions.
Given below is an example of parallel execution in GitHub Actions:
# This is a basic workflow to help you get started with Actions name: CI # Controls when the action will run. Triggers the workflow on push or pull request # events but only for the master branch on: workflow_dispatch: # A workflow run is made up of one or more jobs that can run sequentially or in parallel jobs: build_Chrome: runs-on: ubuntu-latest # Steps represent a sequence of tasks that will be executed as part of the job steps: # Checks-out your repository under $GITHUB_WORKSPACE, so your job can access it - uses: actions/checkout@v2 - uses: actions/setup-java@v1 with: java-version: 1.8 - name: Run the test cases in Chrome env: BROWSER_NAME: Chrome PROVAR_SECRETSPASSWORD: ${{secrets.PASSWORD}} run: | mkdir $GITHUB_WORKSPACE/ProvarHome curl -O https://download.provartesting.com/latest/Provar_ANT_latest.zip unzip -o Provar_ANT_latest.zip -d ProvarHome rm Provar_ANT_latest.zip sudo apt-get update && sudo apt-get upgrade wget -q -O - https://dl-ssl.google.com/linux/linux_signing_key.pub | sudo apt-key add - sudo echo "deb [arch=amd64] http://dl.google.com/linux/chrome/deb/ stable main" >>sudo tee -a /etc/apt/sources.list.d/google-chrome.list sudo apt-get -y install google-chrome-stable sudo add-apt-repository ppa:mozillateam/firefox-next && sudo apt install firefox echo $PROVAR_HOM cd $GITHUB_WORKSPACE/test/ANT ant -f build_Chrome.xml - uses: actions/upload-artifact@v2 with: name: Execution Report1 path:${{ github.workspace }}/test/ANT/Results/* - uses: actions/upload-artifact@v2 if: failure() with: name: Execution Report1 path:${{ github.workspace }}/test/ANT/Results/*
# This workflow contains a single job called "build" build_ChromeHeadless: # The type of runner that the job will run on runs-on: ubuntu-latest # Steps represent a sequence of tasks that will be executed as part of the job steps: # Checks-out your repository under $GITHUB_WORKSPACE, so your job can access it - uses: actions/checkout@v2 - uses: actions/setup-java@v1 with: java-version: 1.8 - name: Run the test cases in headless mode env: BROWSER_NAME: Chrome_Headless PROVAR_SECRETSPASSWORD: ${{secrets.PASSWORD}} run: | mkdir $GITHUB_WORKSPACE/ProvarHome curl -O https://download.provartesting.com/latest/Provar_ANT_latest.zip unzip -o Provar_ANT_latest.zip -d ProvarHome rm Provar_ANT_latest.zip sudo apt-get update && sudo apt-get upgrade wget -q -O - https://dl-ssl.google.com/linux/linux_signing_key.pub | sudo apt-key add - sudo echo "deb [arch=amd64] http://dl.google.com/linux/chrome/deb/ stable main" >>sudo tee -a /etc/apt/sources.list.d/google-chrome.list sudo apt-get -y install google-chrome-stable sudo add-apt-repository ppa:mozillateam/firefox-next && sudo apt install firefox echo $PROVAR_HOM cd $GITHUB_WORKSPACE/test/AN xvfb-run ant -f build_ChromeHeadlesss.xml - uses: actions/upload-artifact@v2 with: name: Execution Report2 path:${{ github.workspace }}/test/ANT/Results/* - uses: actions/upload-artifact@v2 if: failure() with: name: Execution Report2 path:${{ github.workspace }}/test/ANT/Results/*
- Provar Automation
- Installing Provar Automation
- Updating Provar Automation
- Using Provar Automation
- API Testing
- Behavior-Driven Development
- Creating and Importing Projects
- Creating Test Cases
- Custom Table Mapping
- Functions
- Debugging Tests
- Defining a Namespace Prefix on a Connection
- Defining Proxy Settings
- Environment Management
- Exporting Test Cases into a PDF
- Exporting Test Projects
- Override Auto-Retry for Test Step
- Managing Test Steps
- Namespace Org Testing
- NitroX
- Provar Automation
- Provar Test Builder
- Refresh and Recompile
- Reintroduction of CLI License Check
- Reload Org Cache
- Reporting
- Running Tests
- Searching Provar with Find Usages
- Secrets Management and Encryption
- Setup and Teardown Test Cases
- Tags and Service Level Agreements (SLAs)
- Test Cycles
- Test Plans
- Testing Browser Options
- Tooltip Testing
- Using the Test Palette
- Using Custom APIs
- Callable Tests
- Data-Driven Testing
- Page Objects
- Block Locator Strategies
- Introduction to XPaths
- Creating an XPath
- JavaScript Locator Support
- Label Locator Strategies
- Maintaining Page Objects
- Mapping Non-Salesforce fields
- Page Object Operations
- ProvarX™
- Refresh and Reselect Field Locators in Test Builder
- Using Java Method Annotations for Custom Objects
- Applications Testing
- Provar Manager
- Provar Manager Setup and User Guide
- Installing Provar Manager
- Configuring Provar Manager
- How to Use Provar Manager
- Managing Your Testing Life Cycle
- Provar Manager Test Execution
- Test Executions and Defect Management
- Provar Manager Test Coverage
- How to Integrate Provar Manager
- Setting Up a Connection to Provar Manager
- Object Mapping Between Automation and Manager
- How to Upload Test Plans, Test Plan Folders, Test Plan Instances, and Test Cases
- Provar Manager Filters
- Uploading Callable Test Cases in Provar Manager
- Uploading Test Steps in Provar Manager
- How to Know if a File in Automation is Linked in Test Manager
- Test Execution Reporting
- Provar Manager Plugins
- Uploading Existing Manual Test Cases to Provar Manager with DataLoader.Io
- Provar Grid
- DevOps
- Introduction to Test Scheduling
- Apache Ant
- Configuration for Sending Emails via the Automation Command Line Interface
- Continuous Integration
- AutoRABIT Salesforce DevOps in Provar Test
- Azure DevOps
- Running a Provar CI Task in Azure DevOps Pipelines
- Configuring the Automation secrets password in Microsoft Azure Pipelines
- Parallel Execution in Microsoft Azure Pipelines using Multiple build.xml Files
- Parallel Execution in Microsoft Azure Pipelines using Targets
- Parallel execution in Microsoft Azure Pipelines using Test Plans
- Bitbucket Pipelines
- CircleCI
- Copado
- Docker
- Flosum
- Gearset DevOps CI/CD
- GitHub Actions
- Integrating GitHub Actions CI to Run Automation CI Task
- Remote Trigger in GitHub Actions
- Parameterization using Environment Variables in GitHub Actions
- Parallel Execution in GitHub Actions using Multiple build.xml Files
- Parallel Execution in GitHub Actions using Targets
- Parallel Execution in GitHub Actions using Test Plan
- Parallel Execution in GitHub Actions using Job Matrix
- GitLab Continuous Integration
- Travis CI
- Jenkins
- Execution Environment Security Configuration
- Provar Jenkins Plugin
- Parallel Execution
- Running Provar on Linux
- Reporting
- Salesforce DX
- Git
- Team Foundation Server
- Version Control
- Salesforce Testing
- Best Practices
- Troubleshooting
- Release Notes