-
Notifications
You must be signed in to change notification settings - Fork 4
QuickPerf
QuickPerf is a testing library for Java providing annotations to quickly evaluate some performance properties.
QuickPerf works with JUnit 4, JUnit 5, TestNG and a JDK 1.7+.
π Β Project examples using QuickPerf available here and here (Maven)
Sometimes, QuickPerf can display a web url in the console. It is useful to have a clickable web url in your IDE, to be able to open it by a simple click.
Example of clickable web url
Web URL are clickable since IntelliJ 2019.
For oldest versions, you can use Awesome console plugin.
π‘ If links are displayed on more one line, uncheck Use soft wraps in console (Editor -> General -> Console).
An annotation can have three scopes:
-
Global scope
An annotation having a global scope applies on each test.
You can define annotations with global scope by creating a class implementing SpecifiableGlobalAnnotations interface. This class has to be in org.quickperf package. -
Test class scope
An annotation having a test class scope overrides the configuration of the same annotation with global scope. -
Test method scope
An annotation having a test method scope overrides the configuration of the same annotation with test class and global scopes.
Example illustrating how annotation scopes work
Configure your test JVM
Verify heap allocation
Profile or check your JVM
Easily detect N+1 select, JDBC batching disabled and other things.
To disable QuickPerf features you can pass -DdisableQuickPerf=true to your JVM or use some core annotations (@DisableQuickPerf, @FunctionalIteration, @DisableGlobalAnnotations).
Maven performance
Spring Boot - JUnit 4
Spring Boot - JUnit 5
Micronaut - JUnit 5
π Β Core
π Β JVM
π Β SQL
π Β Scopes
π Β Create an annotation
π Β JUnit 4
π Β JUnit 5
π Β TestNG
π Β Spring
π Β Detect and fix N+1 SELECT
π Β Maven performance
π Β Spring Boot - JUnit 4
π Β Spring Boot - JUnit 5
π Β Micronaut Data - JUnit 5
π Β Micronaut - Spring - JUnit 5
π Β Quarkus - JUnit 5
π Β FAQ
π Β QuickPerf code