当服务不可用时,如何在JMeter中测试http请求

我正在尝试测试http请求,但是该服务不可用,是否可以在JMeter中创建虚拟响应?目的是测试实际发送的请求

但是建议使用虚拟采样器,如果另一个测试器没有此插件,则他们将无法对其进行测试。是否已经有另一个内置的采样器或工具可以使用?

sl0359 回答:当服务不可用时,如何在JMeter中测试http请求

实际上,您最终可以使用JSR223 Sampler做任何您想做的事情。

用Groovy编写HTTP请求相当容易,因为HTTP客户端功能已有效地嵌入到环境中,例如:

def urlString = 'http://' + restHost + ':' + restPort + '/' + restPath + '?' + paramString.toString()
def url = urlString.toURL()
def response = url.getText()

就这么简单。

然后您可以捕获协议错误,并根据需要进行响应-您可以通过脚本完全访问SampleResult对象:

try {
   ...
} catch(IOException ioe) {
    SampleResult.setResponseCode("200")
    SampleResult.setResponseMessage("FAKE OK")
    SampleResult.setResponseData("My dummy response!","UTF-8") 
    SampleResult.setSuccessful(true)
}

P.S。不确定我是否真正理解这样的请求背后的原因。

如果情况很不幸,负责测试的服务团队拒绝进行糟糕的合作,我宁愿迅速提供模拟服务,并让测试纯净,简单而通用。

,

请求将不会发送,因为您需要先建立基础TCP connection,然后再通过网络发送任何数据。

如果要测试服务器已关闭的事实,可以定义连接和响应超时,这些设置位于HTTP Request采样器(甚至更好的HTTP Request Defaults)的“高级”选项卡下

enter image description here

以上配置将“告诉” JMeter尝试建立连接,并且如果在1秒钟内没有响应-采样器将标记为失败:

enter image description here

如果这是您期望的行为,则可以通过将Response Assertion添加为请求的子项并将其配置为以下方式来配置JMeter接受该响应:

  • 要测试的字段:Response Code
  • 模式匹配规则:Equals
  • 要测试的模式:Non HTTP response code: org.apache.http.conn.ConnectTimeoutException
  • 勾选Ignore Status

enter image description here

通过这种方式,JMeter将超时请求视为成功:

enter image description here

本文链接:https://www.f2er.com/3145204.html

大家都在问