HTTP 5xx 代码与服务器或应用程序错误有关。首先搜索日志文件。
您的脚本不需要“用户定义的变量”组件,因为没有真正需要为每个线程/用户评估的变量表达式。
“正则表达式提取器”组件足以提取 JSF ViewState 值。我建议您删除表达式的最后一部分“/>”,并将正则表达式分组 (.+?) 更改为 (\w+?),因为它将评估为几个匹配项(可能只有 2 个)。更改“匹配号”的值。字段为 1(如果匹配的所有值都相同,则无需使用随机)。
我不明白您为什么同时使用“XPath Extractor”和“Regular Expression Extractor”组件来提取相同的值。在以 html 开头时,我更喜欢使用最后一个。XPath 在处理格式良好的 xml 字符串/文件时效果更好。
要从头开始捕获脚本,我建议您在 Workbench 中添加“HTTP 代理服务器”,对其进行配置、启动、配置浏览器以使用此代理并使用浏览器浏览这些页面。这样,您将捕获您选择的浏览器使用的所有请求和请求标头。在此之后,删除不必要的请求并将查询参数(如 javax.faces.ViewState)更改为相应的变量。
考虑在 HTTP 采样器中使用提取器(Pos-Processors),然后再使用参数值中的变量。例如:如果 /EBS 请求首先出现并且 /EBS/login.xhtml 请求有一个 javax.faces.ViewState 参数,那么 /EBS 响应可能会包含一个带有 javax.faces.ViewState 值的隐藏输入。
这是我使用的 JSF 应用程序测试脚本的常见组成。提供有关 HTTP 500 错误原因的更多信息应该阐明找到更好解决方案的方法。