{"id":16183771,"url":"https://github.com/quick-perf/quickperf-live","last_synced_at":"2025-03-19T02:30:54.051Z","repository":{"id":43835000,"uuid":"411697865","full_name":"quick-perf/quickperf-live","owner":"quick-perf","description":"Ease your work on Spring Boot applications: quickly generate functional non-regression tests, diagnose performance and generate non-regression tests on performance-related properties.","archived":false,"fork":false,"pushed_at":"2023-01-10T13:01:39.000Z","size":224,"stargazers_count":12,"open_issues_count":8,"forks_count":8,"subscribers_count":2,"default_branch":"main","last_synced_at":"2025-03-17T01:51:12.779Z","etag":null,"topics":["allocation","java","n-plus-1","nplus1","performance","performance-metrics","performance-monitoring","spring","spring-boot","test-automation","test-generation","test-generator","testing-tools"],"latest_commit_sha":null,"homepage":"","language":"Java","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"apache-2.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/quick-perf.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE.txt","code_of_conduct":"CODE_OF_CONDUCT.md","threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null}},"created_at":"2021-09-29T14:03:06.000Z","updated_at":"2025-03-08T01:25:54.000Z","dependencies_parsed_at":"2023-02-08T18:46:13.216Z","dependency_job_id":null,"html_url":"https://github.com/quick-perf/quickperf-live","commit_stats":null,"previous_names":[],"tags_count":3,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/quick-perf%2Fquickperf-live","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/quick-perf%2Fquickperf-live/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/quick-perf%2Fquickperf-live/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/quick-perf%2Fquickperf-live/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/quick-perf","download_url":"https://codeload.github.com/quick-perf/quickperf-live/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":244341441,"owners_count":20437649,"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":["allocation","java","n-plus-1","nplus1","performance","performance-metrics","performance-monitoring","spring","spring-boot","test-automation","test-generation","test-generator","testing-tools"],"created_at":"2024-10-10T07:06:45.901Z","updated_at":"2025-03-19T02:30:53.762Z","avatar_url":"https://github.com/quick-perf.png","language":"Java","readme":"# QuickPerf live\n\n\u003cstrong\u003eA tool to ease your work as a developer\u003c/strong\u003e, not only regarding performance. \u003cem\u003eMake your developer job easier.\u003c/em\u003e\u003c/strong\u003e\n\n---\n\u003cp\u003e\n    \u003ca  href=\"https://www.youtube.com/watch?v=4Sbvaewrm6A\u0026t=913s\"\u003e\n    \u003cstrong\u003e📺 \u003cem\u003eQuickPerf live\u003c/em\u003e demo\u003c/strong\u003e (in French)\n    \u003c/a\u003e\n    \u0026nbsp;\u0026nbsp;\n   \u003ca href=\"https://twitter.com/quickperf\"\u003e       \n        \u003cimg alt=\"@QuickPerf\" src=\"https://img.shields.io/twitter/url?label=Twitter\u0026style=social\u0026url=https%3A%2F%2Ftwitter.com%2Fquickperf\"\u003e\n   \u003c/a\u003e\n    \u0026nbsp;\u0026nbsp;\n    \u003ca href=\"https://github.com/quick-perf/quickperf-live/blob/master/LICENSE.txt\"\u003e\n        \u003cimg src=\"https://img.shields.io/badge/license-Apache2-blue.svg\"\n             alt = \"License\"\u003e\n    \u003c/a\u003e\n    \u0026nbsp;\u0026nbsp;\n    \u003ca href=\"https://github.com/quick-perf/quickperf-live/actions?query=workflow%3ACI\"\u003e\n    \u003cimg src=\"https://img.shields.io/github/workflow/status/quick-perf/quickperf-live/CI\"\n         alt = \"Build Status\"\u003e\n    \u003c/a\u003e\n\u003c/p\u003e\n\n---\n\n## Main features\n\n### Diagnose performance-related properties\n```\nGET 200 http://localhost:8080/owners?lastName=\n* [WARNING] N+1 select suspicion - 453 SELECT\n```\n\n```\nGET 200 http://localhost:8080/owners/2/edit\n* [WARNING] Heap allocation is greater than 10 000 000 bytes: 17 509 888 bytes\n```\n👉 [Learn more](./doc/performance_diagnostics.md)\n\n💡 You can use the performance diagnostic features during development or to help you diagnose the performance of a deployed application.\n\n### Generate non-regression tests\n\nThe generated tests ensure a non-regression on:\n* ***functional behavior***\n* ***performance-related properties***\n\n👉 [Learn more](./doc/test_generation.md)\n\n## Some use cases\n\nYou have many things to do or think about in your daily job.\nYou may not have enough time to improve the following issues that would ease your daily job or improve the user experience. _QuickPerf live_ could help you!\n\n### You work on an application lacking automated tests on business behavior\nAre you not confident that your new development will not break another feature? _QuickPerf live_ allows you to generate automated tests!\nMore [here](./doc/test_generation.md).\n\n### You want to fix an N+1 select\n_QuickPerf live_ can generate an automatic test reproducing the N+1 select. You can use it to investigate the cause of the N+1 select. The produced test will also ensure non-regression on the absence of N+1 select as well as on the functional behavior.\n\n### Your application allocates a lot\n_QuickPerf live_ allows you to measure the heap allocation generated by each HTTP call.\n\n### You want to know how a web service handles the business data\nFinding out what types of business data a web service handles may be challenging.\nSometimes, as a developer, we may also be tempted to load more data than necessary to implement a business behavior, potentially impacting performance. In both cases, _QuickPerf live_ can help you by displaying the selected columns from the database (cf. *Selected columns* part in [Database diagnostics](./doc/database_diagnostics.md)), or  [creating the database dataset\nof a generated web service test](./doc/test_generation.md).\n\n\n## Add _QuickPerf live_ to your project \n\n### Current limitations\n_QuickPerf live_ works today for web applications developed with Spring Boot 2.\n\n⚠ _Today, we don't recommend enabling the tool in a production environment._\n\n### Add _QuickPerf live_ dependency\n```xml\n\u003cdependency\u003e\n    \u003cgroupId\u003eorg.quickperf\u003c/groupId\u003e\n    \u003cartifactId\u003equick-perf-live-springboot2\u003c/artifactId\u003e\n    \u003cversion\u003e0.12\u003c/version\u003e\n\u003c/dependency\u003e\n```\n\n### Enable _QuickPerf live_\n\nFrom a _yaml_ file:\n\n```yaml\nquickperf:\n  enabled: true\n```\n\nFrom a _.properties_ file:\n\n```\nquickperf.enabled=true\n```\n\n## Enable _QuickPerf live_ features\n\n### Enable the performance diagnostic and test generation features\n\nYou can configure the performance diagnostics and the test generation with properties.\nYou can also update the configuration after the application startup with the help of MBeans.\n\n👉 [**Performance diagnostics**](./doc/performance_diagnostics.md)\n\n👉 [**Test generation**](./doc/test_generation.md)\n\n### Tip\nQuickPerf MBeans are unavailable? Read [this](./doc/faq.md).\n\n### Configuration examples\n\n👉 [A _yaml_ file example](./spring-boot-2/src/test/resources/quickperf-properties-test.yml)\n\n👉 [A _.properties_ file example](./spring-boot-2/src/test/resources/quickperf-properties-test.properties)\n\n\n## Export _QuickPerf live_ information\n\n### Display info on application logs\n\n```properties\nlogging.level.org.quickperf.*=INFO\n```\n\n### Implement custom exports\nCreate Spring beans implementing ```QuickPerfHttpCallInfoWriter``` or ```QuickPerfHttpCallWarningWriter``` interfaces.\nYou can use this feature to generate a performance diagnostic report or record the history of performance-related properties.\n","funding_links":[],"categories":[],"sub_categories":[],"project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fquick-perf%2Fquickperf-live","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fquick-perf%2Fquickperf-live","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fquick-perf%2Fquickperf-live/lists"}