在 JSF 应用程序中保存来自 JMeter 的表单输入

Saving form input from JMeter in a JSF app

我目前的任务是使用 JMeter 对 JSF 应用程序进行负载测试。出于测试目的,我正在尝试使用本地主机创建测试脚本。

我一直在尝试编写脚本的场景是当用户在文本字段中输入内容并单击 "save as draft" 时。然后该值将保存到数据库中。

我已经成功获取视图状态值(使用 CSS/JQuery Extractor),但是在执行脚本时,Jmeter 说它成功但无法将输入保存到数据库。检查本地主机服务器日志时,错误是索引超出范围:

Index out of range picture

这是使用经过编辑的 VIEWSTATE 变量通过 BlazeMeter 记录生成的 http 请求:

HTTP request sample

这是我第一次使用 JMeter 和 JSF(我是一名开发人员,但目前的任务是进行负载测试,而且我之前没有使用过 JSF)...我是否遗漏了一些设置?任何帮助将不胜感激,谢谢!

很可能您的 ${VIEWSTATE} 变量与您的服务器期望的不匹配,请使用 Debug Sampler and View Results Tree 侦听器组合仔细检查其值。

javax.facex.ViewState 参数值必须 100% 匹配来自上一页的值,因此您需要确保它们相同。您可能还需要 untick Encode ViewState 框,因为 JMeter 可以用 URL-Encoded 等价物替换非 ASCII 字符,从而导致不匹配。