Skip to content

[issue_tracker] Add stress testing tool#10880

Open
Montekkundan wants to merge 2 commits into
aces:mainfrom
Montekkundan:montek/10811-issue-tracker-stress-test
Open

[issue_tracker] Add stress testing tool#10880
Montekkundan wants to merge 2 commits into
aces:mainfrom
Montekkundan:montek/10811-issue-tracker-stress-test

Conversation

@Montekkundan

Copy link
Copy Markdown
Contributor

Brief summary of changes

  • Adds a sandbox-only CLI tool for generating Issue Tracker stress-test data.
  • Supports generating up to 100,000 issues with configurable comment distributions and batch sizes.
  • Generates varied statuses, priorities, categories, and assignees.
  • Adds dry-run, tagged-run, and targeted cleanup support.
  • Adds a manual test plan covering 1,000 through 100,000 issues.

Testing instructions

  • Confirm dev.sandbox is enabled in the local LORIS configuration.
  • Preview a run:
    php tools/issue_tracker_stress_test.php --issues=1000 --comments=0,1,5 --run-id=stress-1
  • Generate the data by adding --confirm.
  • Open http://localhost:8080/issue_tracker/.
  • Filter the Title field by stress-1 and confirm the generated issues load.
  • Open generated issues and confirm their configured comments appear.
  • Test filtering, sorting, pagination, and issue-detail loading.
  • Remove the generated data:
    php tools/issue_tracker_stress_test.php --cleanup=stress-1 --confirm
  • Run npm run lint:php.

Link(s) to related issue(s)

@Montekkundan Montekkundan self-assigned this Jul 13, 2026
@github-actions github-actions Bot added Language: PHP PR or issue that update PHP code Module: issue_tracker PR or issue related to issue tracker module labels Jul 13, 2026
@skarya22
skarya22 requested a review from regisoc July 13, 2026 15:17
@skarya22

Copy link
Copy Markdown
Contributor

Thanks for trying this! Can you also try performing the stress test on the frontend ui for both regular and batch edit to see if it works still ?

@regisoc regisoc left a comment

Copy link
Copy Markdown
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Thanks for this PR! Nice work.
I am not able to test the test plan fully as I have some issues with my VM, but at high numbers of issues/comments, it correlates with errors we have in HBCD. I will try to have my VM in shape for a more thorough pass.
For now, my comments included below.

Minors blocks to change, the global logic makes sense:

  • dry-run/confirm: pick one. It will be easier to understand and remove some checks.
  • extract both main feature (insert issue and clean issues) into clear functions.
  • Do we need to keep track of the attachments?

Comment thread tools/issue_tracker_stress_test.php Outdated
Comment thread tools/issue_tracker_stress_test.php Outdated
Comment thread tools/issue_tracker_stress_test.php Outdated
Comment thread tools/issue_tracker_stress_test.php Outdated
Comment thread tools/issue_tracker_stress_test.php Outdated
Comment thread tools/issue_tracker_stress_test.php Outdated
Comment thread modules/issue_tracker/test/issue_tracker_test_plan.md
Comment thread tools/issue_tracker_stress_test.php Outdated
Comment thread tools/issue_tracker_stress_test.php Outdated
Comment thread tools/issue_tracker_stress_test.php Outdated
@Montekkundan

Copy link
Copy Markdown
Contributor Author
  • Reused generic_includes.php.
  • Removed the redundant --dry-run option.
  • Simplified generation and cleanup dispatch.
  • Removed the hardcoded lorisadmin username and unnecessary attachment handling.
  • Added the requested helper and validation updates.
  • Expanded the frontend test plan.

Tested with 1,000 issues and 1,998 comments. Browse Issues and issue details worked correctly. Batch Edit still failed after all generated data was removed, including with the normal raisinbread issues, so that appears to be a pre-existing issue.
Ready for another review, thanks!

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

Language: PHP PR or issue that update PHP code Module: issue_tracker PR or issue related to issue tracker module

Projects

None yet

Development

Successfully merging this pull request may close these issues.

[issue_tracker] Stress Testing

4 participants