如何覆盖JMeter WebDriver采样器测试中的响应内容?

如何覆盖JMeter WebDriver采样器测试中的响应内容?,jmeter,jmeter-plugins,beanshell,Jmeter,Jmeter Plugins,Beanshell,如何覆盖JMeter WebDriver采样器测试中的响应内容?当我运行以下代码时,WebDriver Sampler的response选项卡中显示的响应是网页的完整内容,而不是我期望看到的内容,一个字符串值“a message”。知道我做错了什么吗 var pkg = JavaImporter(org.openqa.selenium) WDS.sampleResult.sampleStart() WDS.log.info("Start...") WDS.browser.get('http://

如何覆盖JMeter WebDriver采样器测试中的响应内容?当我运行以下代码时,WebDriver Sampler的response选项卡中显示的响应是网页的完整内容,而不是我期望看到的内容,一个字符串值“a message”。知道我做错了什么吗

var pkg = JavaImporter(org.openqa.selenium)
WDS.sampleResult.sampleStart()
WDS.log.info("Start...")
WDS.browser.get('http://google.com')
WDS.sampleResult.sampleEnd()
java.lang.Thread.sleep( 500 )
WDS.sampleResult.setResponseMessage( "a message" )
WDS.sampleResult.setSuccessful(true) 
要再现这一点,您需要下载JMeter的WebDriver插件包,并在测试计划中添加“WebDriver Sampler”步骤和“Firefix驱动程序配置”

这也不起作用:

WDS.sampleResult.responseMessage = 'a message'
WDS.sampleResult.successful = true 
这也不是:

WDS.sampleResult.setResponseData("a message", "utf-8")
WDS.sampleResult.setSuccessful(true)
var message = "Hello World".split('')
WDS.sampleResult.setResponseData( message, 'utf-8' )
WDS.sampleResult.setSuccessful(true)
这也不是:

WDS.sampleResult.setResponseData("a message", "utf-8")
WDS.sampleResult.setSuccessful(true)
var message = "Hello World".split('')
WDS.sampleResult.setResponseData( message, 'utf-8' )
WDS.sampleResult.setSuccessful(true)
我只是尝试设置一个值,以便在后续测试步骤中检索。

根据代码:

调用脚本代码后,采样器将覆盖ResponseMessage和ResponseData


所以你不能做你想做的事。

谢谢你的代码参考。这很有帮助。我可以通过使用WDS.sampleResult.setResponseHeaders()来解决这个问题,它的行为实际上与我预期的一样。因此,即使我不能覆盖响应数据内容,我也可以在采样器完成后使用WDS.sampleResult.setHeaders()修改标题,然后在随后的Beanshell调用中获取值。@djangofan感谢您的提示!我已经走了很多路,试图从我的webdriver采样器中获取一些数据,这解决了我的问题!我使用正则表达式提取器来检索响应头,它工作得非常好。@jlunatgrad非常好。很高兴这有帮助。