0

我目前正在对一个 .Net Web 应用程序进行负载测试。在这种情况下,用户将登录并执行某些导航步骤,然后他/她将填写一张评估表,提交,然后从应用程序中注销。

所以对于这种情况,有很多 GET 和 POST 请求。并且作为一个 .Net 应用程序服务器将使用 view-State 和 _Event-Validation 进行一些身份验证。但是为了处理这件事,我不确定我需要从哪个请求中获取这 2 个参数并将其传递给哪个请求,因为这种情况是 GET 和 POST 请求的组合。这里是请求的顺序。

登录 (GET) 登录 (POST) 主页 (GET) 主页 (POST) 评估 (GET) 评估 (POST) --> 它将根据客户端名称加载程序列表评估 (POST) --> 它将提交客户端和程序获取特定评估表的名称 评估 (GET) 评估 (POST) 评估 (GET) 注销 (GET)

所以大家帮我把这件事做空

4

4 回答 4

2

您需要使用以下后处理器之一来提取 VIEWSTATE 和 EVENTVALIDATION 值并将它们转换为 JMeter 变量:

有关提取器的真实示例和示例配置,请参阅使用 JMeter 进行 ASP.NET 登录测试指南。

另外不要忘记将HTTP Cookie 管理器添加到您的测试计划中,以表示浏览器 cookie、处理基于 cookie 的身份验证并模拟浏览器会话。

于 2015-10-09T14:59:05.593 回答
2

您可以非常轻松地在 JMeter 中处理请求之间的动态 POST 参数。对于视图状态和事件验证,将两个正则表达式提取器添加到您的 Web 负载测试中。

Name: Regex Extractor - ViewState
Reference Name: v
Regular Expression: name="__VIEWSTATE" id="__VIEWSTATE" value="(.+?)"
Template: $1$
Match No.(0 for Random): 1

Name: Regex Extractor - EventValidation
Reference Name: e
Regular Expression: name="__EVENTVALIDATION" id="__EVENTVALIDATION" value="(.+?)"
Template: $1$
Match No.(0 for Random): 1

录制后,您必须通过将__VIEWSTATEand的值__EVENTVALIDATION替换为${v}or来编辑录制控制器中的每个 HTTP 请求${e}

这将在您的下一个请求中有效地传递最新响应的视图状态和事件验证。

于 2015-10-09T10:11:07.913 回答
0

您可以使用正则表达式提取器来处理它,只需将您的视图状态和事件验证值从 GET 请求传递给 POST 请求。请记住,每个 POST 请求都需要不同的视图状态和事件验证值,这将从其上一个 GET 请求中获取,它肯定会对您有所帮助。

谢谢

于 2021-11-30T11:31:22.337 回答
0

您应该检查 view-State 和 _Event-Validation 参数何时更改。(您可以通过右键单击并查看页面源轻松地做到这一点)。因为这些识别您在哪个页面。

在我的上一个脚本中,我有 23 个不同的地方 viewState 发生了变化,我不得不提取并更改它 23 次。因此,没有人可以回答您应该在哪里更改它们,因为我们看不到响应和您正在测试的应用程序。

于 2015-10-09T08:19:47.520 回答