DEV Community

Damilare Ogundele
Damilare Ogundele

Posted on

3 1

Scheduled Test Workflow Documentation

Overview

This documentation provides a detailed explanation of the setup for a cron job scheduled test in a GitHub Actions workflow. The purpose of this setup is to automate the execution of test scripts against a Postman collection every 15 minutes, ensuring continuous testing and monitoring of the boilerplate repository's API endpoints.

GitHub Actions Workflow Configuration

name: Scheduled Test

on:
  schedule:
    - cron: '*/15 * * * *'

jobs:
  build:
    runs-on: ubuntu-latest

    steps:
      - name: Checkout repository
        uses: actions/checkout@v3

      - name: Run test script
        env:
          POSTMAN_API_KEY: ${{ secrets.POSTMAN_API_KEY }}
          API_URL: ${{ secrets.API_URL }}
        run: |
          cd qa
          chmod +x test.sh
          ./test.sh
Enter fullscreen mode Exit fullscreen mode

Key Components:

  • Schedule Trigger (on: schedule): The workflow is triggered every 15 minutes as specified by the cron expression '*/15 * * * *'.
  • Environment Variables:
    • POSTMAN_API_KEY: The API key for accessing the Postman collection (stored securely in GitHub Secrets).
    • API_URL: The base URL of the API under test.
  • Steps:
    • Checkout Repository: Uses the actions/checkout@v3 action to check out the repository code.
    • Run Test Script: Executes the test.sh script located in the qa directory, which handles the installation of necessary dependencies and triggers the test execution.

Test Script (test.sh)

npm install newman
npm install axios
npm install big-json
node ./index.js
Enter fullscreen mode Exit fullscreen mode

Explanation:

  • Dependency Installation:
    • newman: A command-line tool to run Postman collections.
    • axios: A promise-based HTTP client for making API requests.
    • big-json: A module to handle large JSON files.
  • Running index.js: Executes the main script that handles the Postman collection run, compression of results, and subsequent API requests.

Main Script (index.js) (Not included in this documentation)

The index.js script orchestrates the entire process, from executing the tests with Newman to compressing the results and sending them to the API.

Conclusion

This setup provides a robust mechanism for automated testing of the boilerplate repository. The workflow ensures that API endpoints are tested every 15 minutes, with detailed logs and results management, enhancing the overall quality and reliability of the project.

Image of Datadog

How to Diagram Your Cloud Architecture

Cloud architecture diagrams provide critical visibility into the resources in your environment and how they’re connected. In our latest eBook, AWS Solution Architects Jason Mimick and James Wenzel walk through best practices on how to build effective and professional diagrams.

Download the Free eBook

Top comments (0)

Sentry image

See why 4M developers consider Sentry, “not bad.”

Fixing code doesn’t have to be the worst part of your day. Learn how Sentry can help.

Learn more