【问题标题】:How do I override the response content in a JMeter WebDriver sampler test?如何覆盖 JMeter WebDriver 采样器测试中的响应内容?
【发布时间】:2014-08-08 21:25:17
【问题描述】:

如何在 JMeter WebDriver 采样器测试中覆盖响应内容?当我运行以下代码时,WebDriver Sampler 的响应选项卡中显示的响应是网页的完整内容而不是我期望看到的,字符串值“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)

我只是想设置一个可以在后续测试步骤中检索的值。

【问题讨论】:

    标签: jmeter jmeter-plugins beanshell


    【解决方案1】:

    根据代码:

    ResponseMessage 和 ResponseData 在调用您的脚本代码后被采样器覆盖。

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

    【讨论】:

    • 感谢代码参考。这有帮助。我可以通过使用 WDS.sampleResult.setResponseHeaders() 来解决这个问题,它的行为实际上符合我的预期。因此,即使我无法覆盖响应数据内容,我也可以在采样器完成后使用 WDS.sampleResult.setHeaders() 修改标头,然后在后续的 Beanshell 调用中获取值。跨度>
    • @djangofan 感谢您的注意!我已经走了很多路,试图从我的 webdriver 采样器中获取一些数据,这解决了我的问题!我使用正则表达式提取器来检索响应标头,它运行良好。
    • @jlunavtgrad 非常好。很高兴它有帮助。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-08-09
    相关资源
    最近更新 更多