JMeter在ASP MVC 5项目中未对RequestVerificationToken进行识别/未将其分配给变量
问题内容:
我目前需要针对Web解决方案的负载测试,该测试需要在首页(欢迎页面)中进行用户身份验证。
当我寻找在FireFox中使用FireBug与登录凭据一起传递的POST登录参数时,我发现Password,TenantName,UserName和__RequestVerificationToken是随其成功登录而传递的参数。
我需要使用JMETER模拟此过程。
因此,我已经进行了HTTP REQUEST(访问登录页面)以使用JMETER导航到该页面,该页面可以成功工作。
在HTTP REQUEST(访问登录页面)中,我添加了一个正则表达式提取器以提取令牌,因为必须将令牌与登录信息一起传递。
- 参考名称:REQUEST_VERIFICATION_TOKEN
- Reg表达式:输入名称=“ __ RequestVerificationToken”类型=“隐藏” value =“([[A-Za-z0-9 + = /-\ ] +?)”_
- 模板:$ 1 $
- 比赛编号:1
- 默认值:(空白)
并且我添加了一个单独的HTTP请求(登录到Web)和参数,如下所示;
- 密码: $ {Password}
- 租户名称: $ {TenantName}
- 使用者名称: $ {Username}
- __RequestVerificationToken: $ {REQUEST_VERIFICATION_TOKEN}
但是当我运行它时,在“查看结果树”下,响应数据生成为“无法解密反伪造令牌…”
当我检查“查看结果树”下的“请求”显示时,它显示为
POST数据:
密码= 123456&TenantName = tenant&Username = admin&__ RequestVerificationToken
=%24%7BREQUEST_VERIFICATION_TOKEN%7D *
我在“请求”中意识到未初始化RequestVerificationToken的值的位置。
我过去两天都在通过博客寻找解决方案,但最终在没有适当帮助的情况下,我倾向于在此处发布此问题。
这是一个有用的参考链接,在一定程度上是我使用的参考链接:http :
//build-failed.blogspot.com/2012/07/load-testing-aspnet-mvc-
part-3-jmeter.html?showComment =
1417672985397#c6427302313332055578
有人可以协助我解释为什么RequestVerificationToken无法正确提取或初始化为变量吗?
(附言:老实说,在您提供宝贵的答复时,请足够好以为我是JMeter的初学者)
问题答案:
在正则表达式中,“-”具有含义,并且必须在__RequestVerificationToken值中正确进行转义。
因此,正确的正则表达式为
input name="__RequestVerificationToken" type="hidden" value="([A-Za-z0-9+=/\-\_]+?)"
我创建了一个临时变量并在正则表达式上方进行了验证。它工作正常。如果对您不起作用,请尽可能提供HTTP响应。