当我尝试在ASP.net Web应用程序上运行性能测试时,总是出现“防伪Cookie令牌和表单字段令牌不匹配”的情况。 要么 “防伪令牌无法解密。如果此应用程序由Web场或群集托管,请确保所有计算机都运行相同版本的ASP.NET Web页,并且确保配置指定了显式的加密和验证密钥。自动生成不能在群集中使用。”
能否请您帮我解决这个问题。我尝试了多种方法,例如添加正则表达式提取器以提取“ __RequestVerificationToken”,但没有解决。
注意:这仅在我从Jmeter运行时才发生。如果我直接在Web上浏览应用程序,则看不到任何问题。
谢谢, 帕尼
答案 0 :(得分:1)
调查XSRF/CSRF Prevention in ASP.NET MVC and Web Pages似乎是您发送了错误的__RequestVerificationToken
参数值或完全错过了该步骤。
如果当前HTTP请求已经包含反XSRF会话令牌(反XSRF cookie __RequestVerificationToken),则从中提取安全令牌。如果HTTP请求不包含抗XSRF会话令牌,或者如果安全令牌提取失败,则会生成新的随机抗XSRF令牌。
因此您的测试应如下所示:
打开登录页面(HTTP获取请求)
使用适当的JMeter PostProcessor提取__RequestVerificationToken
动态参数值,我建议使用CSS Selector Extractor,配置如下:
完成后,您可以在下一个请求中将提取的值引用为${token}
查看ASP.NET Login Testing with JMeter文章以获取更多详细信息和分步说明(如果需要)