gk6


Namegk6 JSON
Version 2.0.12 PyPI version JSON
download
home_pageNone
SummaryPostman to k6 converter
upload_time2025-08-03 13:52:17
maintainerNone
docs_urlNone
authorGopi Krishna
requires_python<4.0,>=3.9
licenseMIT
keywords postman k6 converter
VCS
bugtrack_url
requirements No requirements were recorded.
Travis-CI No Travis.
coveralls test coverage No coveralls.
            # โšก gk6 โ€“ Generate k6 Load Tests from Postman Collections

[![License: MIT](https://img.shields.io/badge/License-MIT-yellow.svg)](/LICENSE)
[![Python](https://img.shields.io/badge/Python-3.8%2B-blue)](https://www.python.org/)
[![Docs](https://img.shields.io/badge/Docs-GitHub%20Pages-blue)](https://gopikrishna4595.github.io/gk6/)

**gk6** is a Python CLI tool that converts Postman collections into dynamic [k6](https://k6.io) performance testing scripts โ€” with support for chaining variables, environment parsing, automated metrics, and HTML reporting. Built to automate what you shouldnโ€™t have to hand-code.

---

## ๐ŸŽฏ Why gk6?

If you use Postman for API testing and k6 for performance testing, this tool connects the dots:

- โœ… No need to rewrite each request manually
- ๐Ÿ” It respects your chaining logic (`pm.environment.set`)
- ๐ŸŒ Supports environments and headers out of the box
- ๐Ÿ“Š Visibility with built-in checks and trend metrics

---

## โœ… Features

- โœ… Converts any Postman Collection to a runnable k6 script
- โœ… Supports `GET`, `POST`, `PUT`, `DELETE` methods
- ๐Ÿ”„ Recognizes and converts environment variables (`{{var}}`)
- ๐Ÿ” Detects request chaining via `pm.environment.set()`
- ๐Ÿ“Š Auto-generates `Trend` metrics and `check()` assertions
- ๐Ÿ–ฅ CLI-friendly with `argparse`
- ๐Ÿ“„ Optional `.env` and HTML summary output with `k6-reporter`

---

## ๐Ÿงฑ Limitations

* โ— Currently supports only `pm.environment.set()` for chaining โ€” `pm.variables.set()` is not yet handled.
* โš ๏ธ Does not parse pre-request scripts or tests written in advanced Postman JavaScript.
* ๐Ÿ”’ Sensitive auth flows (e.g., OAuth2 with token rotation) require manual setup.
* ๐Ÿ“„ HTML reporting requires `k6-reporter` installed and configured separately.
* ๐Ÿ“ฆ Limited to JSON-based Postman collections (v2.1+).

---

## ๐Ÿš€ Quick Start

### 1. Install

No extra packages needed โ€” just Python 3.8+ and [k6](https://k6.io/docs/getting-started/installation)

```bash
pip install poetry
poetry install
```

### 2. Run the CLI

```bash
poetry run gk6 --help
```

Convert a Postman collection and environment:

```bash
poetry run gk6 convert --collection postman.json --env environment.json
```

---

## ๐Ÿ›  Development

### Local Dev Commands

```bash
make test          # Run unit tests
make lint          # Run all linters
make format        # Apply black, isort formatting
make release       # Bump version and tag release
```

### GitHub Actions

Includes CI for:

* โœ… Linting (black, ruff)
* โœ… Type checking (mypy)
* โœ… Security scan (bandit, detect-secrets)
* โœ… Version bump & release tagging


---

## ๐Ÿ”— Links

* ๐Ÿ“„ [Live Docs on GitHub Pages](https://gopikrishna4595.github.io/gk6/)
* ๐Ÿ™ [Project Repo](https://github.com/gopikrishna4595/gk6)
* โš™๏ธ [k6 Docs](https://k6.io/docs/)
* ๐Ÿงช [Postman Docs](https://learning.postman.com/docs/)

---

## ๐Ÿ“„ License

MIT License โ€” see the [LICENSE](LICENSE) file for full text.


            

Raw data

            {
    "_id": null,
    "home_page": null,
    "name": "gk6",
    "maintainer": null,
    "docs_url": null,
    "requires_python": "<4.0,>=3.9",
    "maintainer_email": null,
    "keywords": "postman, k6, converter",
    "author": "Gopi Krishna",
    "author_email": "gopikrishna4595@gmail.com",
    "download_url": "https://files.pythonhosted.org/packages/9a/ba/b6e576142b17c29f14397443be50a33974b93bc99d80dbdb4b880a94cace/gk6-2.0.12.tar.gz",
    "platform": null,
    "description": "# \u26a1 gk6 \u2013 Generate k6 Load Tests from Postman Collections\n\n[![License: MIT](https://img.shields.io/badge/License-MIT-yellow.svg)](/LICENSE)\n[![Python](https://img.shields.io/badge/Python-3.8%2B-blue)](https://www.python.org/)\n[![Docs](https://img.shields.io/badge/Docs-GitHub%20Pages-blue)](https://gopikrishna4595.github.io/gk6/)\n\n**gk6** is a Python CLI tool that converts Postman collections into dynamic [k6](https://k6.io) performance testing scripts \u2014 with support for chaining variables, environment parsing, automated metrics, and HTML reporting. Built to automate what you shouldn\u2019t have to hand-code.\n\n---\n\n## \ud83c\udfaf Why gk6?\n\nIf you use Postman for API testing and k6 for performance testing, this tool connects the dots:\n\n- \u2705 No need to rewrite each request manually\n- \ud83d\udd01 It respects your chaining logic (`pm.environment.set`)\n- \ud83c\udf10 Supports environments and headers out of the box\n- \ud83d\udcca Visibility with built-in checks and trend metrics\n\n---\n\n## \u2705 Features\n\n- \u2705 Converts any Postman Collection to a runnable k6 script\n- \u2705 Supports `GET`, `POST`, `PUT`, `DELETE` methods\n- \ud83d\udd04 Recognizes and converts environment variables (`{{var}}`)\n- \ud83d\udd01 Detects request chaining via `pm.environment.set()`\n- \ud83d\udcca Auto-generates `Trend` metrics and `check()` assertions\n- \ud83d\udda5 CLI-friendly with `argparse`\n- \ud83d\udcc4 Optional `.env` and HTML summary output with `k6-reporter`\n\n---\n\n## \ud83e\uddf1 Limitations\n\n* \u2757 Currently supports only `pm.environment.set()` for chaining \u2014 `pm.variables.set()` is not yet handled.\n* \u26a0\ufe0f Does not parse pre-request scripts or tests written in advanced Postman JavaScript.\n* \ud83d\udd12 Sensitive auth flows (e.g., OAuth2 with token rotation) require manual setup.\n* \ud83d\udcc4 HTML reporting requires `k6-reporter` installed and configured separately.\n* \ud83d\udce6 Limited to JSON-based Postman collections (v2.1+).\n\n---\n\n## \ud83d\ude80 Quick Start\n\n### 1. Install\n\nNo extra packages needed \u2014 just Python 3.8+ and [k6](https://k6.io/docs/getting-started/installation)\n\n```bash\npip install poetry\npoetry install\n```\n\n### 2. Run the CLI\n\n```bash\npoetry run gk6 --help\n```\n\nConvert a Postman collection and environment:\n\n```bash\npoetry run gk6 convert --collection postman.json --env environment.json\n```\n\n---\n\n## \ud83d\udee0 Development\n\n### Local Dev Commands\n\n```bash\nmake test          # Run unit tests\nmake lint          # Run all linters\nmake format        # Apply black, isort formatting\nmake release       # Bump version and tag release\n```\n\n### GitHub Actions\n\nIncludes CI for:\n\n* \u2705 Linting (black, ruff)\n* \u2705 Type checking (mypy)\n* \u2705 Security scan (bandit, detect-secrets)\n* \u2705 Version bump & release tagging\n\n\n---\n\n## \ud83d\udd17 Links\n\n* \ud83d\udcc4 [Live Docs on GitHub Pages](https://gopikrishna4595.github.io/gk6/)\n* \ud83d\udc19 [Project Repo](https://github.com/gopikrishna4595/gk6)\n* \u2699\ufe0f [k6 Docs](https://k6.io/docs/)\n* \ud83e\uddea [Postman Docs](https://learning.postman.com/docs/)\n\n---\n\n## \ud83d\udcc4 License\n\nMIT License \u2014 see the [LICENSE](LICENSE) file for full text.\n\n",
    "bugtrack_url": null,
    "license": "MIT",
    "summary": "Postman to k6 converter",
    "version": "2.0.12",
    "project_urls": {
        "Documentation": "https://gopikrishna4595.github.io/gk6/",
        "Homepage": "https://github.com/gopikrishna4595/gk6",
        "Repository": "https://github.com/gopikrishna4595/gk6"
    },
    "split_keywords": [
        "postman",
        " k6",
        " converter"
    ],
    "urls": [
        {
            "comment_text": null,
            "digests": {
                "blake2b_256": "b53f1c9ebc01dd9bb84e68348bf132af9758c2a4e7d9c420ab6381996e6c8e06",
                "md5": "3a4e59610d8440bef43c5ca93e2afd61",
                "sha256": "a41db0ee67df261de526f639615f464b9f5a9029b1d10d0f0ac1010a9a483cdf"
            },
            "downloads": -1,
            "filename": "gk6-2.0.12-py3-none-any.whl",
            "has_sig": false,
            "md5_digest": "3a4e59610d8440bef43c5ca93e2afd61",
            "packagetype": "bdist_wheel",
            "python_version": "py3",
            "requires_python": "<4.0,>=3.9",
            "size": 8206,
            "upload_time": "2025-08-03T13:52:16",
            "upload_time_iso_8601": "2025-08-03T13:52:16.980681Z",
            "url": "https://files.pythonhosted.org/packages/b5/3f/1c9ebc01dd9bb84e68348bf132af9758c2a4e7d9c420ab6381996e6c8e06/gk6-2.0.12-py3-none-any.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": null,
            "digests": {
                "blake2b_256": "9abab6e576142b17c29f14397443be50a33974b93bc99d80dbdb4b880a94cace",
                "md5": "c8a74492fdf8d00a1cccfebbff3e34c9",
                "sha256": "55a54abbfff437ec8d0d2ad0a212c1b9a99ed17956647ec91d06bc12ef32f5e2"
            },
            "downloads": -1,
            "filename": "gk6-2.0.12.tar.gz",
            "has_sig": false,
            "md5_digest": "c8a74492fdf8d00a1cccfebbff3e34c9",
            "packagetype": "sdist",
            "python_version": "source",
            "requires_python": "<4.0,>=3.9",
            "size": 7234,
            "upload_time": "2025-08-03T13:52:17",
            "upload_time_iso_8601": "2025-08-03T13:52:17.777576Z",
            "url": "https://files.pythonhosted.org/packages/9a/ba/b6e576142b17c29f14397443be50a33974b93bc99d80dbdb4b880a94cace/gk6-2.0.12.tar.gz",
            "yanked": false,
            "yanked_reason": null
        }
    ],
    "upload_time": "2025-08-03 13:52:17",
    "github": true,
    "gitlab": false,
    "bitbucket": false,
    "codeberg": false,
    "github_user": "gopikrishna4595",
    "github_project": "gk6",
    "travis_ci": false,
    "coveralls": false,
    "github_actions": true,
    "lcname": "gk6"
}
        
Elapsed time: 1.18545s