我正在尝试测试http请求,但是该服务不可用,是否可以在JMeter中创建虚拟响应?目的是测试实际发送的请求
但是建议使用虚拟采样器,如果另一个测试器没有此插件,则他们将无法对其进行测试。是否已经有另一个内置的采样器或工具可以使用?
我正在尝试测试http请求,但是该服务不可用,是否可以在JMeter中创建虚拟响应?目的是测试实际发送的请求
但是建议使用虚拟采样器,如果另一个测试器没有此插件,则他们将无法对其进行测试。是否已经有另一个内置的采样器或工具可以使用?
实际上,您最终可以使用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)的“高级”选项卡下
以上配置将“告诉” JMeter尝试建立连接,并且如果在1秒钟内没有响应-采样器将标记为失败:
如果这是您期望的行为,则可以通过将Response Assertion添加为请求的子项并将其配置为以下方式来配置JMeter接受该响应:
Response Code
Equals
Non HTTP response code: org.apache.http.conn.ConnectTimeoutException
Ignore Status
框通过这种方式,JMeter将超时请求视为成功: