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

httpbin_demo.jsondata/

{
  "info": {
    "name": "HTTPBin Demo",
    "_postman_id": "httpbin-demo-001",
    "schema": "https://schema.getpostman.com/json/collection/v2.1.0/collection.json"
  },
  "item": [
    {
      "name": "Get endpoint",
      "request": {
        "method": "GET",
        "header": [],
        "url": {
          "raw": "{{base_url}}/get",
          "host": ["{{base_url}}"],
          "path": ["get"]
        }
      },
      "event": [
        {
          "listen": "test",
          "script": {
            "exec": ["pm.test('Status is 200', function() { pm.response.to.have.status(200); });"]
          }
        }
      ]
    },
    {
      "name": "Post endpoint with JSON body",
      "request": {
        "method": "POST",
        "header": [{"key": "Content-Type", "value": "application/json"}],
        "body": {
          "mode": "raw",
          "raw": "{\"name\": \"Mikhail\", \"role\": \"QA Engineer\"}"
        },
        "url": {
          "raw": "{{base_url}}/post",
          "host": ["{{base_url}}"],
          "path": ["post"]
        }
      },
      "event": [
        {
          "listen": "test",
          "script": {
            "exec": ["pm.test('Status is 200', function() { pm.response.to.have.status(200); });"]
          }
        }
      ]
    },
    {
      "name": "Status check",
      "request": {
        "method": "GET",
        "header": [],
        "url": {
          "raw": "{{base_url}}/status/204",
          "host": ["{{base_url}}"],
          "path": ["status", "204"]
        }
      },
      "event": [
        {
          "listen": "test",
          "script": {
            "exec": ["pm.test('Status is 204', function() { pm.response.to.have.status(204); });"]
          }
        }
      ]
    }
  ]
}

CHANGELOG.md

CONTRIBUTING.md

main.py

README.md

REFERENCE.md

SECURITY.md

SKILL.md

tessl.json

tile.json