首页 > 解决方案 > 在 JSF 应用程序中保存来自 JMeter 的表单输入

问题描述

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

我一直在尝试制作脚本的场景是当用户在文本字段中输入内容并单击“另存为草稿”时。然后该值将持久保存到数据库中。

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

索引超出范围图片

这是通过 BlazeMeter Recording 生成的 http 请求,并带有已编辑的 VIEWSTATE 变量:

HTTP 请求示例

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

标签: javajsftestingjmeterload

解决方案


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

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

在此处输入图像描述


推荐阅读