我是 Apache Jmeter 的新手。基本上我想对我们的几个 thrift API 进行负载测试,但不知道从哪里开始。在 java 中,api 接受 2 个参数,然后发送 java 对象作为响应。
任何指针都会非常有帮助。
我是 Apache Jmeter 的新手。基本上我想对我们的几个 thrift API 进行负载测试,但不知道从哪里开始。在 java 中,api 接受 2 个参数,然后发送 java 对象作为响应。
任何指针都会非常有帮助。
JMeter 并不是特别适合它,但它足够灵活以支持您的用例。
有一种使用 BeanShell 的可扩展机制。JMeter 提供了 BeanShell Sampler,它能够调用 Java 代码,包括使用外部 jars。
简单用法:
使用以下代码添加 BeanShell 采样器:
Thread.sleep(2000L);
添加查看结果树侦听器
您应该会看到一个基于您的线程和循环数的绿色三角形(或多个三角形),其输出如下:
Thread Name: Thread Group 1-1
Sample Start: 2013-11-02 14:48:11 GMT+03:00
Load time: 5030
Latency: 0
Size in bytes: 0
Headers size in bytes: 0
Body size in bytes: 0
Sample Count: 1
Error Count: 0
Response code: 200
Response message: OK
如果您使用任何技术来分析结果,即
您将看到您的请求成功率、最小/最大/平均时间(我猜大概是 2 秒)和更多信息(取决于您的配置)。
特别是您的用例假设
导入需要在 BeanShell Sampler 中某处测试的类
导入你的包。你的类;
从 BeanShell Sampler 调用要测试的方法
(可选)对响应做一些断言。IE
if (yourresponse != yourexpectedresponse){
IsSuccess=false;
ResponseMessage= "Test Failed";
}
希望这可以帮助
您可以使用 JSR223 Sampler + Groovy(在 jmeter/lib 中添加 groovy-all.jar)并查看此客户端示例,请参阅 NonblockingClient 代码以获取示例:
让您的 groovy 代码最后至少调用以下代码:
SampleResult.setSuccessful(true/false)
SampleResult.setResponseCode("code")
SampleResult.setResponseMessage("message")
看:
当然,确保在 jmeter/lib 中添加所需的依赖项。
我已经为 JMeter 编写了一个 CustomThriftSampler 来通过 thrift 服务加载测试 HBase。您可以在我的博客上获得有关它的详细信息 - http://1-st.blogspot.in/2013/12/load-testing-thrift-services-custom.html。无法创建通用代码。无论如何,它简单明了的java代码。任何人都可以尝试。如果时间允许,我将编写一个通用代码并提交到 github !