devdox-ai-locust


Namedevdox-ai-locust JSON
Version 0.1.3.post1 PyPI version JSON
download
home_pageNone
SummaryAI-powered Locust load test generator from API documentation
upload_time2025-10-14 10:38:25
maintainerNone
docs_urlNone
authorNone
requires_python>=3.12
licenseApache-2.0
keywords locust load-testing api testing performance ai openapi swagger
VCS
bugtrack_url
requirements No requirements were recorded.
Travis-CI No Travis.
coveralls test coverage No coveralls.
            # DevDox AI Locust

[![License: Apache 2.0](https://img.shields.io/badge/License-Apache%202.0-blue.svg)](https://opensource.org/licenses/Apache-2.0)
[![Python 3.12+](https://img.shields.io/badge/python-3.12+-blue.svg)](https://www.python.org/downloads/)
[![Code style: black](https://img.shields.io/badge/code%20style-black-000000.svg)](https://github.com/psf/black)

> **AI-powered Locust load test generator from API documentation**

DevDox AI Locust automatically generates comprehensive Locust load testing scripts from your API documentation (OpenAPI/Swagger specs). Using advanced AI capabilities, it creates realistic test scenarios, handles complex authentication flows, and generates production-ready performance tests.


## ๐Ÿ†• What's New in 0.1.3.post1

### Performance & Reliability Improvements

- **๐Ÿš€ Asynchronous API Calls**: Migrated from `Together` to `AsyncTogether` for non-blocking API interactions, significantly improving generation speed and responsiveness
- **โšก Enhanced Timeout Handling**: Implemented robust timeout logic with configurable retry mechanisms for better error resilience
- **๐Ÿ”ง Improved Code Extraction**: Enhanced `<code>` block parsing with detailed validation, multiple fallback scenarios, and better error messages
- **๐Ÿ›ก๏ธ Better Error Management**: Comprehensive error handling throughout the AI generation pipeline with graceful degradation

### Bug Fixes & Stability

- Fixed edge cases in code block extraction where malformed responses could cause generation failures
- Improved retry logic to handle transient API errors without interrupting the generation process

## โœจ Features

- ๐Ÿค– **AI-Enhanced Generation**: Uses Together AI to create intelligent, realistic load test scenarios
- ๐Ÿ“š **OpenAPI/Swagger Support**: Automatically parses OpenAPI 3.0 and Swagger 2.0 specifications  
- ๐Ÿ”ง **Production-Ready Code**: Generates clean, maintainable Locust test files
- ๐ŸŽฏ **Smart Test Scenarios**: Creates CRUD workflows, authentication flows, and error handling
- ๐Ÿ“Š **Realistic Data**: Generates appropriate test data using Faker
- ๐Ÿ› ๏ธ **Template-Based**: Highly customizable Jinja2 templates for different testing needs
- ๐Ÿ”„ **Hybrid Approach**: Combines rule-based generation with AI enhancement
- ๐Ÿ“ˆ **Comprehensive Coverage**: Handles various HTTP methods, content types, and response scenarios
- โšก **Asynchronous Processing**: Fast, non-blocking test generation with async/await

## ๐Ÿš€ Quick Start

### Installation

```bash
# Install from PyPI (when published)
pip install devdox-ai-locust

# Or install from source
git clone https://github.com/montymobile1/devdox-ai-locust.git
cd devdox-ai-locust
pip install -e .
```

### Prerequisites

1. **Python 3.12+** - Required for modern async/await syntax and type hints
2. **Together AI API Key** - For AI-enhanced generation capabilities

### Configuration

1. Get your Together AI API key from [Together AI](https://api.together.xyz/)
2. Set up your environment:

```bash
# Copy example environment file
cp .env.example .env

# Edit .env and add your API key
echo "API_KEY=your_together_ai_api_key_here" > .env
```

### Basic Usage

```bash
# Generate from OpenAPI URL
devdox_ai_locust generate --openapi-url https://api.example.com/openapi.json --output ./tests

# Generate with custom configuration
devdox_ai_locust generate \
   https://petstore.swagger.io/v3/swagger.json \
  --output ./petstore-tests \
  --together-api-key your_api_key \
  
```



## ๐Ÿ“– Documentation

### Command Line Interface

```bash
devdox_ai_locust generate [OPTIONS] SWAGGER_URL
```

| Option | Short | Type | Description | Default |
|--------|--------|------|-------------|---------|
| `--output` | `-o` | Path | Output directory for generated tests | `output` |
| `--users` | `-u` | Integer | Number of simulated users | `10` |
| `--spawn-rate` | `-r` | Float | User spawn rate (users/second) | `2` |
| `--run-time` | `-t` | String | Test duration (e.g., 5m, 1h) | `5m` |
| `--host` | `-H` | String | Target host URL | None |
| `--auth/--no-auth` | | Boolean | Include authentication | `True` |
| `--dry-run` | | Flag | Generate without running | `False` |
| `--custom-requirement` | | String | Custom AI instructions | None |
| `--together-api-key` | | String | Together AI API key | From env |




### Generated Test Structure

```
locust_tests/
โ”œโ”€โ”€ locust.py              # Main Locust test file
โ”œโ”€โ”€ config.py              # Test configuration
โ”œโ”€โ”€ test_data.py           # Test data generators
โ”œโ”€โ”€ utils.py               # Utility functions
โ”œโ”€โ”€ requirements.txt       # Python dependencies
โ”œโ”€โ”€ .env.example          # Environment variables template
โ”œโ”€โ”€ README.md             # Test documentation
โ”œโ”€โ”€ workflows/
โ”‚   โ”œโ”€โ”€ user_workflow.py   # User-related test scenarios
โ”‚   โ”œโ”€โ”€ auth_workflow.py   # Authentication workflows
โ”‚   โ””โ”€โ”€ crud_workflow.py   # CRUD operation workflows
โ””โ”€โ”€ data/
    โ”œโ”€โ”€ users.json         # Sample user data
    โ””โ”€โ”€ test_cases.json    # Predefined test cases
```

## ๐Ÿ”ง Advanced Usage

### Custom Templates

Create custom Jinja2 templates for specialized test generation:

```python
# custom_template.py.j2
from locust import HttpUser, task, between

class {{ class_name }}User(HttpUser):
    wait_time = between(1, 3)
    
    def on_start(self):
        """Setup method called before tasks"""
        self.token = self.login()
    
    {% for endpoint in endpoints %}
    @task({{ endpoint.weight | default(1) }})
    def {{ endpoint.method_name }}(self):
        """{{ endpoint.description }}"""
        # Custom task implementation
        {{ endpoint.ai_generated_code | indent(8) }}
    {% endfor %}
```

### Programmatic Usage

```python
from devdox_ai_locust import HybridLocustGenerator
from devdox_ai_locust.config import Settings

# Initialize generator
config = Settings()
generator = HybridLocustGenerator(config)

# Generate from OpenAPI spec
async def generate_tests():
    files, workflows = await generator.generate_from_url(
        "https://api.example.com/openapi.json",
        output_dir="./tests",
        ai_enhanced=True
    )
    
    print(f"Generated {len(files)} test files")
    print(f"Created {len(workflows)} workflows")

# Run generation
import asyncio
asyncio.run(generate_tests())
```


## ๐Ÿงช Development

### Setup Development Environment

```bash
# Clone repository
git clone https://github.com/montymobile1/devdox-ai-locust.git
cd devdox-ai-locust

# Create virtual environment
python -m venv venv
source venv/bin/activate  # On Windows: venv\Scripts\activate

# Install in development mode
pip install -e ".[dev,test,ai]"

# Install pre-commit hooks
pre-commit install
```

### Running Tests

```bash

# Use the test runner script
coverage run -m pytest tests/
```



### Project Structure

```
src/devdox_ai_locust/
โ”œโ”€โ”€ __init__.py
โ”œโ”€โ”€ cli.py                      # Command line interface
โ”œโ”€โ”€ config.py                   # Configuration management
โ”œโ”€โ”€ locust_generator.py         # Basic test generation
โ”œโ”€โ”€ hybrid_loctus_generator.py  # AI-enhanced generation
โ”œโ”€โ”€ templates/                  # Jinja2 templates
โ”‚   โ”œโ”€โ”€ locust.py.j2
โ”‚   โ”œโ”€โ”€ config.py.j2
โ”‚   โ””โ”€โ”€ workflow.py.j2
โ”œโ”€โ”€ schemas/                    # Data models and validation
โ”‚   โ”œโ”€โ”€ processing_result.py
โ”‚   โ””โ”€โ”€ endpoint_schema.py
โ”œโ”€โ”€ utils/                      # Utility modules
โ”‚   โ”œโ”€โ”€ swagger_utils.py
โ”‚   โ”œโ”€โ”€ open_ai_parser.py
โ”‚   โ””โ”€โ”€ file_creation.py
โ””โ”€โ”€ prompt/                     # AI prompt templates
    โ”œโ”€โ”€ system_prompts.py
    โ””โ”€โ”€ enhancement_prompts.py
```

### Development Workflow

1. **Fork** the repository
2. **Create** a feature branch (`git checkout -b feature/amazing-feature`)
3. **Make** your changes
4. **Add** tests for new functionality
5. **Run** the test suite (`make test`)
6. **Commit** your changes (`git commit -m 'Add amazing feature'`)
7. **Push** to the branch (`git push origin feature/amazing-feature`)
8. **Open** a Pull Request

### Code Standards

- **Python 3.12+** with type hints
- **Black** for code formatting
- **isort** for import sorting
- **pytest** for testing
- **mypy** for type checking
- **Pre-commit hooks** for quality gates

## ๐Ÿ“‹ Requirements

### System Requirements

- **Python**: 3.12 or higher
- **Memory**: 512MB RAM minimum, 1GB recommended
- **Storage**: 100MB for installation, additional space for generated tests

### Dependencies

#### Core Dependencies
- `locust` - Load testing framework
- `click` - CLI framework
- `pyyaml` - YAML parsing
- `requests` - HTTP client
- `pydantic` - Data validation
- `jinja2` - Template engine
- `rich` - Rich text output
- `faker` - Test data generation

#### AI Dependencies
- `langchain-together` - Together AI integration
- `together` - Together AI Python client

#### Development Dependencies
- `pytest` - Testing framework
- `black` - Code formatter
- `mypy` - Type checker
- `pre-commit` - Git hooks

## ๐Ÿ” Examples

### Example 1: E-commerce API

```bash
# Generate tests for an e-commerce API
devdox_ai_locust generate \
   https://api.shop.example.com/v1/openapi.json \
  --output ./ecommerce-tests 

# The generator will create:
# - Product browsing scenarios
# - Shopping cart workflows  
# - Checkout and payment flows
# - User registration and login
# - Order management tests
```

## โ“ FAQ

**Q: What API specification formats are supported?**
A: We support OpenAPI 3.0+ and Swagger 2.0 specifications in JSON and YAML formats.

**Q: Do I need an AI API key?**
A: Yes, for AI-enhanced generation you need a Together AI API key. Basic generation works without AI.

**Q: Can I customize the generated test templates?**
A: Absolutely! You can provide custom Jinja2 templates using the `--template-dir` option.

**Q: How do I handle authentication in generated tests?**
A: The generator automatically detects authentication schemes from your OpenAPI spec and creates appropriate test flows.

**Q: Can I run tests against different environments?**
A: Yes, use environment variables or configuration files to specify different target hosts and settings.

**Q: What if my API has complex business logic?**
A: The AI enhancement feature analyzes your API patterns and generates realistic business workflows, not just individual endpoint tests.

## ๐Ÿ› Troubleshooting

### Common Issues

**Import Errors**
```bash
# Ensure proper installation
pip install -e .

# Check Python path
python -c "import devdox_ai_locust; print('OK')"
```

**API Key Issues**
```bash
# Verify API key is set
echo $API_KEY

# Test API connectivity
python -c "from together import Together; print(Together(api_key='your_key').models.list())"
```


**Template Errors**
```bash
# Validate your OpenAPI spec
# Use online validators like swagger.io/tools/swagger-editor/

# Check template syntax
# Ensure custom templates use valid Jinja2 syntax
```

## ๐Ÿ“„ License

This project is licensed under the Apache License 2.0 - see the [LICENSE](LICENSE) file for details.

## ๐Ÿ™ Acknowledgments

- **Locust** - The amazing load testing framework that powers our generated tests
- **Together AI** - Providing the AI capabilities for intelligent test generation  
- **OpenAPI Initiative** - For standardizing API documentation
- **Python Community** - For the excellent libraries and tools


---

**Made with โค๏ธ by the DevDox team**

Transform your API documentation into powerful load tests with the magic of AI! ๐Ÿš€

            

Raw data

            {
    "_id": null,
    "home_page": null,
    "name": "devdox-ai-locust",
    "maintainer": null,
    "docs_url": null,
    "requires_python": ">=3.12",
    "maintainer_email": "Hayat Bourji <hayat.bourgi@montyholding.com>",
    "keywords": "locust, load-testing, api, testing, performance, ai, openapi, swagger",
    "author": null,
    "author_email": "Hayat Bourji <hayat.bourgi@montyholding.com>",
    "download_url": "https://files.pythonhosted.org/packages/c8/f7/818999570dd6fa54583c88d018d743ea03ecf305ed7cd05effb5c18e23f3/devdox_ai_locust-0.1.3.post1.tar.gz",
    "platform": null,
    "description": "# DevDox AI Locust\n\n[![License: Apache 2.0](https://img.shields.io/badge/License-Apache%202.0-blue.svg)](https://opensource.org/licenses/Apache-2.0)\n[![Python 3.12+](https://img.shields.io/badge/python-3.12+-blue.svg)](https://www.python.org/downloads/)\n[![Code style: black](https://img.shields.io/badge/code%20style-black-000000.svg)](https://github.com/psf/black)\n\n> **AI-powered Locust load test generator from API documentation**\n\nDevDox AI Locust automatically generates comprehensive Locust load testing scripts from your API documentation (OpenAPI/Swagger specs). Using advanced AI capabilities, it creates realistic test scenarios, handles complex authentication flows, and generates production-ready performance tests.\n\n\n## \ud83c\udd95 What's New in 0.1.3.post1\n\n### Performance & Reliability Improvements\n\n- **\ud83d\ude80 Asynchronous API Calls**: Migrated from `Together` to `AsyncTogether` for non-blocking API interactions, significantly improving generation speed and responsiveness\n- **\u26a1 Enhanced Timeout Handling**: Implemented robust timeout logic with configurable retry mechanisms for better error resilience\n- **\ud83d\udd27 Improved Code Extraction**: Enhanced `<code>` block parsing with detailed validation, multiple fallback scenarios, and better error messages\n- **\ud83d\udee1\ufe0f Better Error Management**: Comprehensive error handling throughout the AI generation pipeline with graceful degradation\n\n### Bug Fixes & Stability\n\n- Fixed edge cases in code block extraction where malformed responses could cause generation failures\n- Improved retry logic to handle transient API errors without interrupting the generation process\n\n## \u2728 Features\n\n- \ud83e\udd16 **AI-Enhanced Generation**: Uses Together AI to create intelligent, realistic load test scenarios\n- \ud83d\udcda **OpenAPI/Swagger Support**: Automatically parses OpenAPI 3.0 and Swagger 2.0 specifications  \n- \ud83d\udd27 **Production-Ready Code**: Generates clean, maintainable Locust test files\n- \ud83c\udfaf **Smart Test Scenarios**: Creates CRUD workflows, authentication flows, and error handling\n- \ud83d\udcca **Realistic Data**: Generates appropriate test data using Faker\n- \ud83d\udee0\ufe0f **Template-Based**: Highly customizable Jinja2 templates for different testing needs\n- \ud83d\udd04 **Hybrid Approach**: Combines rule-based generation with AI enhancement\n- \ud83d\udcc8 **Comprehensive Coverage**: Handles various HTTP methods, content types, and response scenarios\n- \u26a1 **Asynchronous Processing**: Fast, non-blocking test generation with async/await\n\n## \ud83d\ude80 Quick Start\n\n### Installation\n\n```bash\n# Install from PyPI (when published)\npip install devdox-ai-locust\n\n# Or install from source\ngit clone https://github.com/montymobile1/devdox-ai-locust.git\ncd devdox-ai-locust\npip install -e .\n```\n\n### Prerequisites\n\n1. **Python 3.12+** - Required for modern async/await syntax and type hints\n2. **Together AI API Key** - For AI-enhanced generation capabilities\n\n### Configuration\n\n1. Get your Together AI API key from [Together AI](https://api.together.xyz/)\n2. Set up your environment:\n\n```bash\n# Copy example environment file\ncp .env.example .env\n\n# Edit .env and add your API key\necho \"API_KEY=your_together_ai_api_key_here\" > .env\n```\n\n### Basic Usage\n\n```bash\n# Generate from OpenAPI URL\ndevdox_ai_locust generate --openapi-url https://api.example.com/openapi.json --output ./tests\n\n# Generate with custom configuration\ndevdox_ai_locust generate \\\n   https://petstore.swagger.io/v3/swagger.json \\\n  --output ./petstore-tests \\\n  --together-api-key your_api_key \\\n  \n```\n\n\n\n## \ud83d\udcd6 Documentation\n\n### Command Line Interface\n\n```bash\ndevdox_ai_locust generate [OPTIONS] SWAGGER_URL\n```\n\n| Option | Short | Type | Description | Default |\n|--------|--------|------|-------------|---------|\n| `--output` | `-o` | Path | Output directory for generated tests | `output` |\n| `--users` | `-u` | Integer | Number of simulated users | `10` |\n| `--spawn-rate` | `-r` | Float | User spawn rate (users/second) | `2` |\n| `--run-time` | `-t` | String | Test duration (e.g., 5m, 1h) | `5m` |\n| `--host` | `-H` | String | Target host URL | None |\n| `--auth/--no-auth` | | Boolean | Include authentication | `True` |\n| `--dry-run` | | Flag | Generate without running | `False` |\n| `--custom-requirement` | | String | Custom AI instructions | None |\n| `--together-api-key` | | String | Together AI API key | From env |\n\n\n\n\n### Generated Test Structure\n\n```\nlocust_tests/\n\u251c\u2500\u2500 locust.py              # Main Locust test file\n\u251c\u2500\u2500 config.py              # Test configuration\n\u251c\u2500\u2500 test_data.py           # Test data generators\n\u251c\u2500\u2500 utils.py               # Utility functions\n\u251c\u2500\u2500 requirements.txt       # Python dependencies\n\u251c\u2500\u2500 .env.example          # Environment variables template\n\u251c\u2500\u2500 README.md             # Test documentation\n\u251c\u2500\u2500 workflows/\n\u2502   \u251c\u2500\u2500 user_workflow.py   # User-related test scenarios\n\u2502   \u251c\u2500\u2500 auth_workflow.py   # Authentication workflows\n\u2502   \u2514\u2500\u2500 crud_workflow.py   # CRUD operation workflows\n\u2514\u2500\u2500 data/\n    \u251c\u2500\u2500 users.json         # Sample user data\n    \u2514\u2500\u2500 test_cases.json    # Predefined test cases\n```\n\n## \ud83d\udd27 Advanced Usage\n\n### Custom Templates\n\nCreate custom Jinja2 templates for specialized test generation:\n\n```python\n# custom_template.py.j2\nfrom locust import HttpUser, task, between\n\nclass {{ class_name }}User(HttpUser):\n    wait_time = between(1, 3)\n    \n    def on_start(self):\n        \"\"\"Setup method called before tasks\"\"\"\n        self.token = self.login()\n    \n    {% for endpoint in endpoints %}\n    @task({{ endpoint.weight | default(1) }})\n    def {{ endpoint.method_name }}(self):\n        \"\"\"{{ endpoint.description }}\"\"\"\n        # Custom task implementation\n        {{ endpoint.ai_generated_code | indent(8) }}\n    {% endfor %}\n```\n\n### Programmatic Usage\n\n```python\nfrom devdox_ai_locust import HybridLocustGenerator\nfrom devdox_ai_locust.config import Settings\n\n# Initialize generator\nconfig = Settings()\ngenerator = HybridLocustGenerator(config)\n\n# Generate from OpenAPI spec\nasync def generate_tests():\n    files, workflows = await generator.generate_from_url(\n        \"https://api.example.com/openapi.json\",\n        output_dir=\"./tests\",\n        ai_enhanced=True\n    )\n    \n    print(f\"Generated {len(files)} test files\")\n    print(f\"Created {len(workflows)} workflows\")\n\n# Run generation\nimport asyncio\nasyncio.run(generate_tests())\n```\n\n\n## \ud83e\uddea Development\n\n### Setup Development Environment\n\n```bash\n# Clone repository\ngit clone https://github.com/montymobile1/devdox-ai-locust.git\ncd devdox-ai-locust\n\n# Create virtual environment\npython -m venv venv\nsource venv/bin/activate  # On Windows: venv\\Scripts\\activate\n\n# Install in development mode\npip install -e \".[dev,test,ai]\"\n\n# Install pre-commit hooks\npre-commit install\n```\n\n### Running Tests\n\n```bash\n\n# Use the test runner script\ncoverage run -m pytest tests/\n```\n\n\n\n### Project Structure\n\n```\nsrc/devdox_ai_locust/\n\u251c\u2500\u2500 __init__.py\n\u251c\u2500\u2500 cli.py                      # Command line interface\n\u251c\u2500\u2500 config.py                   # Configuration management\n\u251c\u2500\u2500 locust_generator.py         # Basic test generation\n\u251c\u2500\u2500 hybrid_loctus_generator.py  # AI-enhanced generation\n\u251c\u2500\u2500 templates/                  # Jinja2 templates\n\u2502   \u251c\u2500\u2500 locust.py.j2\n\u2502   \u251c\u2500\u2500 config.py.j2\n\u2502   \u2514\u2500\u2500 workflow.py.j2\n\u251c\u2500\u2500 schemas/                    # Data models and validation\n\u2502   \u251c\u2500\u2500 processing_result.py\n\u2502   \u2514\u2500\u2500 endpoint_schema.py\n\u251c\u2500\u2500 utils/                      # Utility modules\n\u2502   \u251c\u2500\u2500 swagger_utils.py\n\u2502   \u251c\u2500\u2500 open_ai_parser.py\n\u2502   \u2514\u2500\u2500 file_creation.py\n\u2514\u2500\u2500 prompt/                     # AI prompt templates\n    \u251c\u2500\u2500 system_prompts.py\n    \u2514\u2500\u2500 enhancement_prompts.py\n```\n\n### Development Workflow\n\n1. **Fork** the repository\n2. **Create** a feature branch (`git checkout -b feature/amazing-feature`)\n3. **Make** your changes\n4. **Add** tests for new functionality\n5. **Run** the test suite (`make test`)\n6. **Commit** your changes (`git commit -m 'Add amazing feature'`)\n7. **Push** to the branch (`git push origin feature/amazing-feature`)\n8. **Open** a Pull Request\n\n### Code Standards\n\n- **Python 3.12+** with type hints\n- **Black** for code formatting\n- **isort** for import sorting\n- **pytest** for testing\n- **mypy** for type checking\n- **Pre-commit hooks** for quality gates\n\n## \ud83d\udccb Requirements\n\n### System Requirements\n\n- **Python**: 3.12 or higher\n- **Memory**: 512MB RAM minimum, 1GB recommended\n- **Storage**: 100MB for installation, additional space for generated tests\n\n### Dependencies\n\n#### Core Dependencies\n- `locust` - Load testing framework\n- `click` - CLI framework\n- `pyyaml` - YAML parsing\n- `requests` - HTTP client\n- `pydantic` - Data validation\n- `jinja2` - Template engine\n- `rich` - Rich text output\n- `faker` - Test data generation\n\n#### AI Dependencies\n- `langchain-together` - Together AI integration\n- `together` - Together AI Python client\n\n#### Development Dependencies\n- `pytest` - Testing framework\n- `black` - Code formatter\n- `mypy` - Type checker\n- `pre-commit` - Git hooks\n\n## \ud83d\udd0d Examples\n\n### Example 1: E-commerce API\n\n```bash\n# Generate tests for an e-commerce API\ndevdox_ai_locust generate \\\n   https://api.shop.example.com/v1/openapi.json \\\n  --output ./ecommerce-tests \n\n# The generator will create:\n# - Product browsing scenarios\n# - Shopping cart workflows  \n# - Checkout and payment flows\n# - User registration and login\n# - Order management tests\n```\n\n## \u2753 FAQ\n\n**Q: What API specification formats are supported?**\nA: We support OpenAPI 3.0+ and Swagger 2.0 specifications in JSON and YAML formats.\n\n**Q: Do I need an AI API key?**\nA: Yes, for AI-enhanced generation you need a Together AI API key. Basic generation works without AI.\n\n**Q: Can I customize the generated test templates?**\nA: Absolutely! You can provide custom Jinja2 templates using the `--template-dir` option.\n\n**Q: How do I handle authentication in generated tests?**\nA: The generator automatically detects authentication schemes from your OpenAPI spec and creates appropriate test flows.\n\n**Q: Can I run tests against different environments?**\nA: Yes, use environment variables or configuration files to specify different target hosts and settings.\n\n**Q: What if my API has complex business logic?**\nA: The AI enhancement feature analyzes your API patterns and generates realistic business workflows, not just individual endpoint tests.\n\n## \ud83d\udc1b Troubleshooting\n\n### Common Issues\n\n**Import Errors**\n```bash\n# Ensure proper installation\npip install -e .\n\n# Check Python path\npython -c \"import devdox_ai_locust; print('OK')\"\n```\n\n**API Key Issues**\n```bash\n# Verify API key is set\necho $API_KEY\n\n# Test API connectivity\npython -c \"from together import Together; print(Together(api_key='your_key').models.list())\"\n```\n\n\n**Template Errors**\n```bash\n# Validate your OpenAPI spec\n# Use online validators like swagger.io/tools/swagger-editor/\n\n# Check template syntax\n# Ensure custom templates use valid Jinja2 syntax\n```\n\n## \ud83d\udcc4 License\n\nThis project is licensed under the Apache License 2.0 - see the [LICENSE](LICENSE) file for details.\n\n## \ud83d\ude4f Acknowledgments\n\n- **Locust** - The amazing load testing framework that powers our generated tests\n- **Together AI** - Providing the AI capabilities for intelligent test generation  \n- **OpenAPI Initiative** - For standardizing API documentation\n- **Python Community** - For the excellent libraries and tools\n\n\n---\n\n**Made with \u2764\ufe0f by the DevDox team**\n\nTransform your API documentation into powerful load tests with the magic of AI! \ud83d\ude80\n",
    "bugtrack_url": null,
    "license": "Apache-2.0",
    "summary": "AI-powered Locust load test generator from API documentation",
    "version": "0.1.3.post1",
    "project_urls": {
        "Homepage": "https://github.com/montymobile1/devdox-ai-locust",
        "Repository": "https://github.com/montymobile1/devdox-ai-locust"
    },
    "split_keywords": [
        "locust",
        " load-testing",
        " api",
        " testing",
        " performance",
        " ai",
        " openapi",
        " swagger"
    ],
    "urls": [
        {
            "comment_text": null,
            "digests": {
                "blake2b_256": "5786298e48fddcba03336e4daf15c96d8dc718a6683a733b5315475393a72a33",
                "md5": "10081b5668a1692b1c2ec42477c1ea25",
                "sha256": "7a7b0399eb5e17b639f519fecdb7179f6ca9dd5ac8cb0455d9fbd846a3eabd97"
            },
            "downloads": -1,
            "filename": "devdox_ai_locust-0.1.3.post1-py3-none-any.whl",
            "has_sig": false,
            "md5_digest": "10081b5668a1692b1c2ec42477c1ea25",
            "packagetype": "bdist_wheel",
            "python_version": "py3",
            "requires_python": ">=3.12",
            "size": 58831,
            "upload_time": "2025-10-14T10:38:24",
            "upload_time_iso_8601": "2025-10-14T10:38:24.418187Z",
            "url": "https://files.pythonhosted.org/packages/57/86/298e48fddcba03336e4daf15c96d8dc718a6683a733b5315475393a72a33/devdox_ai_locust-0.1.3.post1-py3-none-any.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": null,
            "digests": {
                "blake2b_256": "c8f7818999570dd6fa54583c88d018d743ea03ecf305ed7cd05effb5c18e23f3",
                "md5": "dc1241b8cd0f59b0bd8c25b23ae53f91",
                "sha256": "46e8ce05ca97360f1cb78211857bbb455c028a934891f9263a2b653095d205aa"
            },
            "downloads": -1,
            "filename": "devdox_ai_locust-0.1.3.post1.tar.gz",
            "has_sig": false,
            "md5_digest": "dc1241b8cd0f59b0bd8c25b23ae53f91",
            "packagetype": "sdist",
            "python_version": "source",
            "requires_python": ">=3.12",
            "size": 73217,
            "upload_time": "2025-10-14T10:38:25",
            "upload_time_iso_8601": "2025-10-14T10:38:25.679054Z",
            "url": "https://files.pythonhosted.org/packages/c8/f7/818999570dd6fa54583c88d018d743ea03ecf305ed7cd05effb5c18e23f3/devdox_ai_locust-0.1.3.post1.tar.gz",
            "yanked": false,
            "yanked_reason": null
        }
    ],
    "upload_time": "2025-10-14 10:38:25",
    "github": true,
    "gitlab": false,
    "bitbucket": false,
    "codeberg": false,
    "github_user": "montymobile1",
    "github_project": "devdox-ai-locust",
    "travis_ci": false,
    "coveralls": false,
    "github_actions": true,
    "lcname": "devdox-ai-locust"
}
        
Elapsed time: 2.96982s