是否有一个负载测试框架,可以在其中提供我自己的Java类并测试该类的性能。因此,基本上,该框架实质上会生成线程并记录这些线程何时完成运行,然后生成带有最终结果的报告。
Apache JMeter正是您想要的项目。您可以将它指向正在运行的进程,也可以让它启动每个进程启动的多个线程。它将监视吞吐量,错误率以及您感兴趣的任何其他内容,并将其全部呈现在一组图表中。
查看指标(http://metrics.codahale.com/)。您可以使用它来检测您的应用程序,并在运行测试套件甚至将其发布到指标服务器后获得有趣的报告。
假设您有一个Java类和一个Test方法,如下所示:
import org.junit.Test;
public class AnyTestEndPoint {
@Test
public void anyTestMethod() throws Exception {
...
your code goes here for a single user
...
}
}
您可以通过以下配置将上述测试馈送到负载生成器。
您可以从如下所示的简单virtual-users
配置文件中生成properties
。
# my_load_config.properties
#############################
number.of.threads=50
ramp.up.period.in.seconds=10
loop.count=1
在上述配置中,number.of.threads
表示要同时增加的虚拟用户。
然后您的负载测试如下所示,它指向上面的Test
:
@LoadWith("my_load_config.properties")
@TestMapping(testClass = AnyTestEndPoint.class, testMethod = "anyTestMethod")
@RunWith(ZeroCodeLoadRunner.class)
public class LoadTest {
}
[JUnit4 load generation和JUnit5 load generation可以实现。请参阅HelloWorld GitHub存储库中正在运行的示例。
您可以尝试JUnit或TestNG。我过去曾经使用过它们。不确定是否正是您要的内容。