-
Notifications
You must be signed in to change notification settings - Fork 25
Release Notes
Lucas Pouzac edited this page Jan 24, 2014
·
4 revisions
- #5 : Exceptions are given priority even without @Required
- #6 : @PerfTest could not be use on SuperClass
### Enhancements
- #3 : HTML Report update with exception report
-
#4 : Choice thread number with ParallelRunner (
@Parallel(count=x)
to use)
- #2 : Exceptions are given priority over the @Required
- warmup time measurement handling fails with custom clock
- client application hangs when finished
- Created MemorySensor which logs the maximum amount of used heap memory
### Enhancements
- Reporting the invocation characteristics (thread count, warm up, ramp up)
### Changes
- Changed ReportModule interface to enable reporting of execution config
### Enhancements
- Using the system's most exact clock by default
- Supporting custom clock implementations
- Supporting multiple different clocks at the same time
- Implemented alternative clocks:
- system (the system's clock)
- cpu (the thread's CPU time)
- user (the thread's user time)
- NullPointerException in reports during parallel test execution
### Enhancements
- Ramp-up time to specify the time to wait before adding a new thread, e.g.
@PerfTest(rampUp = 1000)
- Supporting warm-up time to start measurement and requirement checking after an initial time period is over,
e.g.
@PerfTest(warmUp = 1000)
- Supporting wait timers to induce wait time between invocations
- usage e.g.
@PerfTest(timer = RandomTimer.class, timerParams = { 200, 400 })
- predefined timers: None, ConstantTimer, RandomTimer, CumulatedTimer
- custom timers by implementing the WaitTimer interface
- new method LatencyCounter.percentileAboveLatency(latency)
-
@RunWith(ParallelRunner.class)
to execute all tests of a class concurrently - Javadoc for tooltip help on
@PerfTest
and@Requirement
- new method
CounterRepository.printSummary()
- Method
StopWatch.stop()
returns the elapsed time in milliseconds
- #3486460: CSVSummaryReportModule causes FileNotFoundException
- #3486461: HTML report displays the wrong date
### Enhancements
- Consistent behaviour on all JUnit versions from JUnit 4.7 to 4.9
- HTML report with distribution chart
### Changes
- Dropped ExecutionLogger concept
### Bug fixes
-
@Before
and@After
behaviour on JUnit 4.8+
### Enhancements
- Name of CSV log file is configurable
## Version 1.07
### Bug fix
- #3030070: max latency failure message uses incorrect value
## Version 1.06
### Improvements
- Avoiding Windows' time resolution problem by using the most precise timer available on the system
- Reduced the impact of single slow threads on the total execution time: Threads do not need to perform the same number of execution, each one runs as long as invocations are pending.
- Improved thread handling and statistics allocation for reducing memory impact
- Reduced the performance impact of the framework
## Version 1.05
@PerfTest
and @Required
can now be specified on class level
and provide defaults for all test methods that have not been
annotated themselves.
Example
@PerfTest(invocations = 5)
@Required(max = 1200, average = 250)
public class SmokeTest {
@Rule
public ContiPerfRule i = new ContiPerfRule();
@Test
public void test1() throws Exception {
Thread.sleep(200);
}
@Test
public void test2() throws Exception {
Thread.sleep(150);
}
}
### Test suite mechanism
Use @RunWith(ContiPerfSuiteRunner.class)
to make use of ContiPerf's suite runner
and specify all test classes as comma-separated list in a @SuiteClasses
annotation.
Any @PerfTest
or @Required
annotation applied to the suite class is used for any
contained test that has now annotation of same type.
Example
@RunWith(ContiPerfSuiteRunner.class)
@SuiteClasses(MyApplicationTest.class)
@PerfTest(invocations = 1000, threads = 30)
public static class PeakLoadTest {
}
### Bug fixes
- Verification of the 'max' requirement was broken in 1.03
### New Features
- Allowing for concurrency tests, using
@PerfTest(treads = 3)
- Introduced
cancelOnViolation()
in@PerfTest
, which makes it configurable whether a test run shall be canceled if the 'max' requirement is violated. The default is 'true'.
### Internal Changes
- Redesigned test runners
- Introduced PerfTestException and child classes:
- PerfTestFailure
- PerfTestExecutionError
- PerfTestConfigurationError
- Former releases expected a Maven-like project structure, other structures were causing NullPointerExceptions.
### New Features
- New EmptyExecutionLogger
- Preventing NullPointerException in programmatic use without percentile requirements