https://github.com/DaGeRe/KoPeMe
KoPeMe is a framework for executing a performance measurement of a performance unit test (which can be easily created from a regular JUnit test) inside *one* vm execution. Since using the measurement values from one vm execution is not sufficient, the measurement needs to be repeated e.g. using Peass (or by writing own small bash scripts).
https://github.com/DaGeRe/KoPeMe
Last synced: about 2 months ago
JSON representation
KoPeMe is a framework for executing a performance measurement of a performance unit test (which can be easily created from a regular JUnit test) inside *one* vm execution. Since using the measurement values from one vm execution is not sufficient, the measurement needs to be repeated e.g. using Peass (or by writing own small bash scripts).
- Host: GitHub
- URL: https://github.com/DaGeRe/KoPeMe
- Owner: DaGeRe
- License: gpl-3.0
- Created: 2013-10-03T12:52:09.000Z (over 11 years ago)
- Default Branch: main
- Last Pushed: 2024-04-15T07:32:23.000Z (about 1 year ago)
- Last Synced: 2024-04-16T07:06:11.622Z (about 1 year ago)
- Language: Java
- Homepage:
- Size: 72.5 MB
- Stars: 3
- Watchers: 5
- Forks: 6
- Open Issues: 3
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
- awesome-java - KoPeMe
README
# KoPeMe
KoPeMe is a framework for enabling performance tests in Java. This makes it possible to live a software development process where performance measures are taken continously and therefore react continously to changes in performance. With continous performance testing, one avoids refactorings after performance problems occured in a big testing phase before releasing the software.
## Usage
KoPeMe got three possibilities to enable performance tests in Java:
- Using JUnit 4 with the performance test runner, by adding `@RunWith(PerformanceTestRunnerJUnit.class)` as annotation at class level
- Using JUnit 4 with the rule, by adding `@Rule public TestRule rule = new KoPeMeRule(this);` as instance variable to the class
- Using Junit 5 with the extension, by adding `@ExtendWith(KoPeMeExtension.class)` as annotation at class level
- Using JUnit 3, using `extends KoPeMeTestcase` (instead `extends TestCase`). This is mainly for compatibility with old software and is not recommended for daily use.
- Using kopeme-core, by running `PerformanceTestRunnerKoPeMe` for a class with performance testsOne of these variants should be enabled.
Additionally, the test should be annotated, e.g. like
```xml
@Test
@PerformanceTest(iterations = 500, warmup = 500, repetitions = 100)
public void measureMe() {
```The usual JUnit test annotation should still be added if JUnit tests are measured.
The workload inside the test is repeated `repetitions*iterations` times, and `iterations` duration measurements are done (each after `repetitions` executions). Before this, `repetitions*warmup` workload executions are done without measurement (for warming up the current VM).
## Dependencies
For JUnit 4 or 5 tests, please add
```xml
de.dagere.kopeme
kopeme-junit
0.13```
to your build.
For JUnit 3 tests, please add
```xml
de.dagere.kopeme
kopeme-junit3
0.13```
to your build.
## Results
After measurement, in your KOPEME\_HOME-folder, a result-file will be placed. It will be extended by new results in every new run. If you don't define KOPEME\_HOME-folder, the file will be placed in your HOME-Folder in .KoPeMe.