java - 在 JSF 应用程序中保存来自 JMeter 的表单输入
问题描述
我目前的任务是使用 JMeter 对 JSF 应用程序进行负载测试。出于测试目的,我正在尝试使用 localhost 创建测试脚本。
我一直在尝试制作脚本的场景是当用户在文本字段中输入内容并单击“另存为草稿”时。然后该值将持久保存到数据库中。
我已经成功地获取了视图状态值(使用 CSS/JQuery 提取器),但是在执行脚本时,Jmeter 说它是成功的,但它无法将输入保存到 DB。检查本地主机服务器日志时,错误是索引超出范围:
这是通过 BlazeMeter Recording 生成的 http 请求,并带有已编辑的 VIEWSTATE 变量:
这是我第一次使用 JMeter 和 JSF(我是一名开发人员,但目前的任务是进行负载测试,而且我以前没有使用过 JSF)......我在设置中错过了什么吗?任何帮助将不胜感激,谢谢!
解决方案
很可能您的${VIEWSTATE}
变量与您的服务器期望的不匹配,请使用Debug Sampler 和 View Results Tree侦听器组合仔细检查其值。
参数值必须 100% 匹配来自上一页的javax.facex.ViewState
值,因此您需要确保它们相同。您可能还需要取消选中 ViewState 框,因为 JMeter 可以用 URL 编码Encode
的等效字符替换非 ASCII 字符,从而导致不匹配。
推荐阅读
- java - 队列中的消息位置/索引(SQS 或 RabbitMQ)
- logstash - 当消息在 Logstash 中为多行时如何添加标签
- c# - 将代理服务器与 BigQueryClient C# 一起使用
- mysql - 在 mysql 社区服务器/工作台上加载本地数据
- javascript - 如何在类中搜索id,每次页面重新加载时id都会改变
- javascript - 无法使用 Java 在 Selenium WebDriver 中定位/填充文本框
- swift - 最合适的语法来消除警告和正确的编码技术
- android-glide - 升级到 Glide 4.9.0 时如何解决 AbstractMethodError
- javascript - Twitter OAuth 请求令牌失败
- ansible - ansible:如何显示使用 with_items 的任务的输出?