Run Endtest automated tests from Azure Pipelines, wait for one or multiple executions to finish, publish a pipeline summary and execution-level JUnit results, and optionally fail the pipeline when Endtest reports failures or errors.
Features
- Secure Endtest service connection for the App ID and App Code
- Full dynamic Endtest API request
- Single-suite and label-based multiple executions
- Automatic polling with configurable timeout and interval
json-lightandjsonresult formats- Azure DevOps pipeline summary
- Execution-level JUnit publishing
- Output variables for later pipeline steps
- Optional deployment gate behavior
YAML example
steps:
- task: EndtestRun@1
name: runEndtest
displayName: Run Endtest tests
inputs:
endtestService: 'Endtest Production'
apiRequest: 'https://app.endtest.io/api.php?action=runWeb&suite=2945352&platform=windows&os=windows11&browser=chrome&browserVersion=latest&resolution=1280x1024&geolocation=sanfrancisco&cases=all¬es='
timeoutMinutes: '30'
pollIntervalSeconds: '30'
resultsFormat: 'json-light'
failPipeline: true
publishSummary: true
publishTestResults: true
- script: |
echo "Executions: $(runEndtest.executionCount)"
echo "Results: $(runEndtest.resultUrls)"
displayName: Show Endtest outputs
condition: always()
Service connection
After installing the extension:
- Open Project settings.
- Open Service connections.
- Create a new Endtest connection.
- Set the URL to
https://app.endtest.io/. - Enter the Endtest App ID and App Code.
- Give the connection a recognizable name, such as
Endtest Production.
Credentials already embedded in apiRequest take precedence for backward compatibility. The service connection is recommended because it keeps the App Code out of YAML.
Output variables
When the task has name: runEndtest, later steps can use:
$(runEndtest.executionCount)$(runEndtest.hashes)$(runEndtest.resultUrls)$(runEndtest.testCases)$(runEndtest.passed)$(runEndtest.failed)$(runEndtest.errors)$(runEndtest.status)
Develop and test
Requirements: Node.js 20 or newer.
npm install
npm run prepare:task
Create a private VSIX
Update publisher in vss-extension.json if your Marketplace publisher ID differs from endtest-technologies, then run:
npm run package
The VSIX is created under dist/.
Upload it to the Visual Studio Marketplace as a private extension, share it with a test Azure DevOps organization, and install it there before making it public.
Publish with the CLI
tfx extension publish \
--manifest-globs vss-extension.json \
--share-with YOUR_AZURE_DEVOPS_ORGANIZATION \
--token YOUR_MARKETPLACE_PAT
Do not commit the Marketplace PAT.