Skip to content

Load test creation #147

@Clubserg

Description

@Clubserg

Feature: Load Testing with Gatling

Description

Implement a load testing suite using Gatling to evaluate the system's performance and stability under stress. This issue focuses on simulating high-traffic scenarios to ensure the application remains available and responsive, fulfilling the "Load testing" requirement in the evaluation criteria.

Requirements

  • Gatling Setup: Configure the Gatling environment (Java/Scala/Kotlin) within the project repository.
  • Core Scenarios: Define simulation scripts that mimic typical user behavior, such as:
    • Multiple users registering and logging in simultaneously.
    • High frequency of 'play' API requests using YEN notation.
    • Concurrent access to user history and statistics.
  • Performance Metrics: Identify bottlenecks and measure response times, error rates, and requests per second.

Tasks

  • Set up the Gatling project structure and dependencies.
  • Write a simulation script for the User Authentication flow (Sign-up/Login).
  • Write a simulation script for Game Play (stress-testing the play method and the Rust module interface).
  • Write a simulation script for the external API used by bots.
  • Execute tests against a deployed environment and document the results.
  • Integrate a basic load test into the CI/CD pipeline (optional but recommended).

Technical Notes

  • Target: The tests should target both the TypeScript Web API and the Rust module's web service interface.
  • Data: Use representative board states in YEN notation to ensure the logic processing is accurately stressed.
  • Reporting: Gatling will automatically generate HTML reports; these should be saved for the project documentation.

Evaluation Criteria Alignment

  • Testing: Directly addresses the "Load testing" requirement.
  • Deployment: Ensures the system meets the "Availability" quality attribute.
  • Documentation: The results and ADRs regarding performance optimizations will be included in the final delivery.

Metadata

Metadata

Assignees

Labels

No labels
No labels

Type

No fields configured for Task.

Projects

No projects

Relationships

None yet

Development

No branches or pull requests

Issue actions