{"id":19967647,"url":"https://github.com/oaslananka/loadtestcyrex","last_synced_at":"2025-12-31T01:06:03.328Z","repository":{"id":244407476,"uuid":"815142255","full_name":"oaslananka/LoadTestCyrex","owner":"oaslananka","description":"LoadTestCyrex is a comprehensive performance testing tool for gRPC services. It leverages Locust for load testing and includes scripts for various client operations such as authentication, vacancy creation, and user management. The project is designed to be easily deployable using Docker, ensuring consistent test environments.","archived":false,"fork":false,"pushed_at":"2024-06-14T13:35:18.000Z","size":202,"stargazers_count":0,"open_issues_count":0,"forks_count":0,"subscribers_count":1,"default_branch":"main","last_synced_at":"2025-01-12T08:44:15.126Z","etag":null,"topics":["api-testing","docker","docker-grpc","grpc","grpc-load-testing","grpc-performance-testing","load-testing","locust","locust-grpc","microservices","performance-testing","python","python-grpc"],"latest_commit_sha":null,"homepage":"","language":"Python","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/oaslananka.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2024-06-14T12:48:53.000Z","updated_at":"2024-09-19T15:31:35.000Z","dependencies_parsed_at":"2024-06-14T15:10:18.859Z","dependency_job_id":null,"html_url":"https://github.com/oaslananka/LoadTestCyrex","commit_stats":null,"previous_names":["oaslananka/loadtestcyrex"],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/oaslananka%2FLoadTestCyrex","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/oaslananka%2FLoadTestCyrex/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/oaslananka%2FLoadTestCyrex/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/oaslananka%2FLoadTestCyrex/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/oaslananka","download_url":"https://codeload.github.com/oaslananka/LoadTestCyrex/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":241404207,"owners_count":19957650,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["api-testing","docker","docker-grpc","grpc","grpc-load-testing","grpc-performance-testing","load-testing","locust","locust-grpc","microservices","performance-testing","python","python-grpc"],"created_at":"2024-11-13T02:43:17.580Z","updated_at":"2025-12-31T01:06:03.275Z","avatar_url":"https://github.com/oaslananka.png","language":"Python","readme":"\n# LoadTestCyrex\n\nLoadTestCyrex is a performance testing tool for gRPC services using Locust. This project provides various client scripts and configurations for testing authentication, vacancy creation, and other operations through gRPC.\n\n![Alt Text](assets/chart.png)\n\n\n## Project Structure\n\n```\nLoadTestCyrex/\n├── config/\n│   └── task.config\n├── src/\n│   ├── __init__.py\n│   ├── clients/\n│   │   ├── __init__.py\n│   │   ├── locust_client.py\n│   │   ├── messages_client.py\n│   │   ├── service_client.py\n│   ├── protos/\n│   │   ├── __init__.py\n│   │   ├── proto/\n│   │   ├── auth_service_pb2_grpc.py\n│   │   ├── auth_service_pb2.py\n│   │   ├── rpc_create_vacancy_pb2_grpc.py\n│   │   ├── rpc_create_vacancy_pb2.py\n│   │   ├── rpc_signin_user_pb2_grpc.py\n│   │   ├── rpc_signin_user_pb2.py\n│   │   ├── rpc_signup_user_pb2_grpc.py\n│   │   ├── rpc_signup_user_pb2.py\n│   │   ├── rpc_update_vacancy_pb2_grpc.py\n│   │   ├── rpc_update_vacancy_pb2.py\n│   │   ├── user_pb2_grpc.py\n│   │   ├── user_pb2.py\n│   │   ├── user_service_pb2_grpc.py\n│   │   ├── user_service_pb2.py\n│   ├── utils/\n│   │   ├── __init__.py\n│   │   ├── utils.py\n│   └── main.py\n├── playgrounds/\n│   ├── auth_client.py\n│   ├── auto_create_mail_and_sign_up.py\n│   ├── create_vacancy.py\n│   ├── delete_vacancy.py\n│   ├── email_listener.py\n│   ├── get_me.py\n│   ├── get_vacancies.py\n│   ├── get_vacancy.py\n│   ├── signin_from_json.py\n│   ├── update_vacancy.py\n├── .env\n├── README.md\n├── requirements.txt\n├── generate_protos.py\n├── Dockerfile\n└── docker-compose.yml\n```\n\n## Setup\n\n1. Clone the repository:\n    ```sh\n    git clone https://github.com/oaslananka/LoadTestCyrex.git\n    cd LoadTestCyrex\n    ```\n\n2. Create and activate a virtual environment:\n    ```sh\n    python -m venv venv\n    source venv/bin/activate  # On Windows use `venv\\Scripts\\activate`\n    ```\n\n3. Install the required packages:\n    ```sh\n    pip install -r requirements.txt\n    ```\n\n4. Set up environment variables:\n    Create a `.env` file in the root directory and add the following:\n    ```ini\n    TestUser_1_Email=user1@example.com\n    TestUser_1_Password=pass1\n    TestUser_2_Email=user2@example.com\n    TestUser_2_Password=pass2\n    TestUser_3_Email=user3@example.com\n    TestUser_3_Password=pass3\n    ```\n\n5. Compile the `.proto` files:\n    ```sh\n    python generate_protos.py\n    ```\n\n## Running Tests\n\nTo run the performance tests using Locust, use the following command:\n```sh\nlocust -f src/main.py --config config/task.config\n```\n\n## Docker Setup\n\nTo run the project using Docker, follow these steps:\n\n1. Ensure Docker is installed on your system.\n\n2. Build the Docker image and start the container:\n    ```sh\n    docker-compose build\n    docker-compose up\n    ```\n\n3. Access the Locust web interface:\n   Open your browser and navigate to [http://localhost:8089](http://localhost:8089)\n\n### Dockerfile\n\nThe `Dockerfile` is used to create the Docker image for the project:\n\n```dockerfile\n# Base image\nFROM python:3.9-slim\n\n# Set environment variables\nENV PYTHONDONTWRITEBYTECODE 1\nENV PYTHONUNBUFFERED 1\n\n# Set work directory\nWORKDIR /usr/src/app\n\n# Install dependencies\nCOPY requirements.txt /usr/src/app/\nRUN pip install --no-cache-dir -r requirements.txt\n\n# Copy project\nCOPY . /usr/src/app/\n\n# Compile proto files\nRUN python generate_protos.py\n\n# Expose the port for Locust\nEXPOSE 8089\n\n# Run Locust\nCMD [\"locust\", \"-f\", \"src/main.py\", \"--config\", \"config/task.config\"]\n```\n\n### docker-compose.yml\n\nThe `docker-compose.yml` file defines the Docker services for the project:\n\n```yaml\nversion: '3.8'\n\nservices:\n  loadtestcyrex:\n    build: .\n    ports:\n      - \"8089:8089\"\n    volumes:\n      - .:/usr/src/app\n    environment:\n      - TestUser_1_Email=user1@example.com\n      - TestUser_1_Password=pass1\n      - TestUser_2_Email=user2@example.com\n      - TestUser_2_Password=pass2\n      - TestUser_3_Email=user3@example.com\n      - TestUser_3_Password=pass3\n```\n\n## Playground Scripts\n\nThe `playgrounds` directory contains various scripts for testing and experimenting with the LoadTestCyrex project. Each script is well-documented and can be run individually to test different functionalities of the project.\n\n## Contributing\n\nContributions are welcome! Please feel free to submit a Pull Request.\n\n## License\n\nThis project is licensed under the MIT License.\n","funding_links":[],"categories":[],"sub_categories":[],"project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Foaslananka%2Floadtestcyrex","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Foaslananka%2Floadtestcyrex","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Foaslananka%2Floadtestcyrex/lists"}