我们在我们的应用程序中使用JSF2。对于每个JSF页面请求,都有一个由服务器发出的隐藏字段javax.faces.ViewState
。这是每次每个页面请求的新ID。需要将此值传递回服务器以进行下一页请求。
<input id="javax.faces.ViewState" type="hidden"
autocomplete="off" value="3120911944178727151:-831154453296813769"
name="javax.faces.ViewState"/>
在负载测试中,我们在为HTTP请求传递此值时遇到问题。
我们正在使用QALoad工具进行负载测试,该工具模拟具有所有必需输入字段的页面的http请求。在这种情况下,如果我们传递旧的viewState Id值或传递空值或跳过传递字段,请求将抛出ViewExpiredException
。
有没有办法绕过这个viewStateId
字段进行负载测试或其他更好的方法?
由于 维杰
答案 0 :(得分:2)
使用Jmeter作为负载测试工具 在Jmeter中配置页面URL以进行测试 添加后处理器 - &gt; Jmeter中的XPath Extractor在运行时提取视图ID
在Jmeter中的每个页面中添加ViewState参数,该参数的值为$ {ViewState},这将获取每个页面的动态视图ID。
答案 1 :(得分:0)
您需要从先前的响应中提取此字段的值,并将其与请求一起传递。这允许服务器为当前会话获取正确的值。它可以来自标题(例如Set-Cookie标题),也可以在页面内容中找到。我不精通QA负载,但任何体面的负载测试工具都必须能够做到这一点。