Custom parameters

Custom parameters allow you to avoid hardcoding sensitive information like passwords or environment-specific values in your YAML configuration files.

Syntax

Use the $var. syntax in your YAML files to reference a custom parameter.

Passing values

Command line

Pass the parameter value using --pname>:

ploosh --connections connections.yml --cases testcases --pdbpassword "mysecret" --p_environment "production"

Python API

Pass variables as a dictionary:

from ploosh import execute_cases

execute_cases( cases="test_cases", connections="connections.yml", variables={ "dbpassword": "mysecret", "environment": "production" } )

Usage in connections

connections:
  my_database:
    type: mysql
    hostname: my-server.database.windows.net
    database: my_database
    username: my_user
    password: $var.db_password

Usage in test cases

Test with parameter:
  source:
    type: mysql
    connection: my_database
    query: |
      SELECT *
      FROM $var.environment.employees
  expected:
    type: empty

CI/CD usage

In CI/CD pipelines, pass parameters from secure variable groups or secrets:

Azure DevOps

- task: CmdLine@2
  inputs:
    script: ploosh --connections connections.yml --cases testcases --pdbpassword "$(dbpassword)"

GitHub Actions

- run: ploosh --connections connections.yml --cases testcases --pdbpassword "${{ secrets.DBPASSWORD }}"

Security

  • Never commit sensitive values (passwords, tokens) in YAML files
  • Always use $var references and pass values at runtime
  • In CI/CD, store secrets in variable groups or secret stores