CtrlK
BlogDocsLog inGet started
Tessl Logo

golikovichev/postman2pytest

Convert a Postman Collection v2.1 JSON file into a runnable pytest test suite using the postman2pytest CLI. Use when the user has a Postman collection (a .postman_collection.json or v2.1 JSON export) and wants to run it as pytest in CI, when migrating from Postman/Newman to a Python-native test stack, when bridging Postman-documented APIs into a pytest-based regression suite, when the user asks to generate pytest tests from Postman, or when the user mentions wanting to keep Postman as the source of truth but run the suite with pytest.

93

1.00x
Quality

100%

Does it follow best practices?

Impact

100%

1.00x

Average score across 2 eval scenarios

SecuritybySnyk

Passed

No known issues

Overview
Quality
Evals
Security
Files

criteria.jsonevals/scenario-2/

{
  "context": "Tests whether the agent uses the postman2pytest CLI to convert a ten-request, four-folder Postman Collection v2.1 into a runnable pytest module, getting the request count exactly right and scrubbing all seven Authorization tokens to environment variables. Doing this reliably across ten requests is the tool's value; a hand-written conversion tends to miss a request or leave a token hard-coded.",
  "type": "weighted_checklist",
  "checklist": [
    {
      "name": "Installs and runs postman2pytest CLI",
      "description": "Installs the tool from PyPI and invokes the postman2pytest CLI with --collection and --out, rather than hand-writing the pytest module",
      "max_score": 14
    },
    {
      "name": "Exactly ten test functions",
      "description": "The generated module defines exactly ten test_ functions, one per request across all four folders (Auth, Products, Orders, Profile). Not nine, not eleven.",
      "max_score": 20
    },
    {
      "name": "All four folders represented",
      "description": "Test functions cover requests from every folder: Auth (Login, Refresh token), Products (List, Get, Create), Orders (List, Create, Cancel), Profile (Get, Update)",
      "max_score": 14
    },
    {
      "name": "No bearer token appears verbatim",
      "description": "None of the seven 'Bearer secret-...' tokens appear verbatim anywhere in the generated file (grep for 'secret-' returns zero matches)",
      "max_score": 20
    },
    {
      "name": "Authorization read from environment",
      "description": "Each Authorization header value in the generated tests is read from an environment variable (os.environ / os.getenv), not hard coded",
      "max_score": 12
    },
    {
      "name": "Module parses and is self-contained",
      "description": "The generated module is valid Python (ast.parse succeeds) and imports only os, pytest, and requests; no conftest.py required",
      "max_score": 12
    },
    {
      "name": "results.txt verifies count and zero leaks",
      "description": "results.txt is produced and shows the test count (10), the 'secret-' grep count (0), and the parse confirmation",
      "max_score": 8
    }
  ]
}

CHANGELOG.md

CONTRIBUTING.md

main.py

README.md

REFERENCE.md

SECURITY.md

SKILL.md

tessl.json

tile.json