Azure DevOps – Using APIF-Auto

APIF-Auto, a command line tool that supports automated API Fortress test execution, is the ideal tool for executing tests in an Azure DevOps workflow.   

The pipeline script below serves as a template for creating a step in your Azure DevOps Pipeline for testing your APIs with API Fortress. If you’d like to take a look at the documentation for APIF-Auto, click here.


It’s important to note that this is an 
example of an Azure DevOps Pipeline. Experienced users are free to configure their workflow as best suits their needs.

trigger:
- master
jobs:
- job: 'apif'
pool:
vmImage: 'ubuntu-latest'
strategy:
matrix:
Python37:
python.version: '3.7'

steps:
- script: |
python -m pip install --upgrade pip
python -m pip install -r requirements.txt
displayName: 'Install dependencies'

- script: |
python apif-run.py run-all security -S -f junit -o results/TEST-junit.xml
displayName: 'Run APIF Tests'

- task: PublishTestResults@2
inputs:
testRestultFiles: 'result/junit.xml'
testRunTitle: 'APIF Test Results'
condition: succeededOrFailed()

First, it’s worth mentioning that in this example we have the APIF-Auto files in our Azure DevOps repository. Let’s break down what’s happening in the script above:

  • First, we are defining the OS image we would like to use as the testing environment. In our case we chose the latest Ubuntu which has support for the latest Python version.
  • Next, in the same scope we are defining which version of Python we will be using for the test (Apif-Auto is a Python script)
  • Then, in the part labeled “steps” there are a few things happening:
    • In the first section labeled “script” we are installing “pip,” and then installing the dependencies from our “requirements.txt” file
    • In the second section labeled “script” we are running “apif-run.py” to execute all of the tests in our project called “security”
    • Finally, there is a section labeled “task,” this is where we are evaluating the outputted results from the “apif-run” execution. 
Below is a sample output from the above execution: