使用JMeterAPI调用GET/POST请求

使用JMeterAPI调用GET/POST请求,jmeter,Jmeter,我需要使用JMeterAPI调用get/post/put请求。有人能建议如何从JSR223/beanshell/java sampler调用get、post请求吗 正在尝试以下代码。但我不是JMeterAPI的专家 import org.apache.jmeter.protocol.http.sampler.* HTTPSampler httpSampler = new HTTPSampler(); httpSampler.sample("http://example.com", "GE

我需要使用JMeterAPI调用get/post/put请求。有人能建议如何从JSR223/beanshell/java sampler调用get、post请求吗

正在尝试以下代码。但我不是JMeterAPI的专家

import org.apache.jmeter.protocol.http.sampler.*    
HTTPSampler httpSampler = new HTTPSampler();
httpSampler.sample("http://example.com", "GET", true, 0);

如果您真的需要通过,下面是一个示例代码(它使用,请参阅以获取更多示例)



然而,我建议不要重新发明轮子和使用取样器。与之结合,您可以使用它对任何基于HTTP的API进行负载测试,JMeter将自动收集延迟、空闲时间、连接时间、处理响应代码等指标。有关更多详细信息,请参阅文章。

您是否特别面临任何问题?有什么理由不使用Http采样器吗?非常感谢Dmitri。现在,我明白你的意思了。在results.csv文件中,我看到了JSR223采样器信息。但是,需要记录获取呼叫指标信息。比如什么?您有
SampleResult
速记功能,可以填充所有必需的指标,但是您需要自己计算这些指标。我正在测试一个应用程序,其中每个页面都包含REST调用(有些是重复的),不同客户的页面导航顺序会有所不同。因此,页面随机导航逻辑是用java开发的,并作为jar文件导入。我想把上面建议的代码放在一个方法中,相关信息如URL、标题、帖子正文(对于帖子请求)将作为参数发送。在这种情况下,SampleResult是否仍然专门收集REST调用的度量并在.jtl文件中报告?请不要介意这个愚蠢的问题。这对我来说确实很重要。在编写脚本时,您需要手动处理标题、cookie、变量等。
SampleResult
将自动只记录其开始和结束时间。你们可能会发现这篇文章很有趣。
import org.apache.http.HttpEntity
import org.apache.http.HttpResponse
import org.apache.http.client.methods.HttpGet
import org.apache.http.impl.client.CloseableHttpClient
import org.apache.http.impl.client.HttpClientBuilder
import org.apache.http.util.EntityUtils

CloseableHttpClient client = HttpClientBuilder.create().build()
HttpGet get = new HttpGet("http://10.195.78.185")
HttpResponse response = client.execute(get)

HttpEntity entity = response.getEntity()
byte [] responseData = EntityUtils.toByteArray(entity)
def statusCode = response.getStatusLine().statusCode
if (statusCode >= 400) {
    SampleResult.setSuccessful(false)
}
SampleResult.setResponseCode(statusCode as String)
SampleResult.setResponseMessage(response.getStatusLine().reasonPhrase)
SampleResult.setResponseData(responseData)