Asp.net mvc 4 防伪令牌与web测试

Asp.net mvc 4 防伪令牌与web测试,asp.net-mvc-4,web-testing,antiforgerytoken,Asp.net Mvc 4,Web Testing,Antiforgerytoken,我正在尝试在VS2012中为一个MVC站点做一个web测试。 其中一个场景是登录并浏览产品列表,选择您想要的产品,然后进入购买页面 问题是,当运行web测试时,我得到一个关于防伪令牌的错误,并且它不匹配 究竟怎样才能用防伪令牌进行测试?用户必须登录-负载测试(最终)将有数千个用户,但需要首先让它为1个用户工作 登录视图/操作在控制器的视图和验证中执行AntiForgeryToken 非常感谢您的建议和提示。我不熟悉“VS2012中的web测试”,但据我所知,需要将令牌从浏览器发送回服务器 我有过

我正在尝试在VS2012中为一个MVC站点做一个web测试。 其中一个场景是登录并浏览产品列表,选择您想要的产品,然后进入购买页面

问题是,当运行web测试时,我得到一个关于防伪令牌的错误,并且它不匹配

究竟怎样才能用防伪令牌进行测试?用户必须登录-负载测试(最终)将有数千个用户,但需要首先让它为1个用户工作

登录视图/操作在控制器的视图和验证中执行AntiForgeryToken

非常感谢您的建议和提示。

我不熟悉“VS2012中的web测试”,但据我所知,需要将令牌从浏览器发送回服务器

我有过使用它的经验,并建议您使用它,因为它提供了一个API,可以像真正的用户一样与受支持的浏览器交互

如果添加到测试项目中,您可以很容易地开始使用SeleniumWebDriver

使用每个选项直接调用浏览器 浏览器对自动化的本机支持。这些直拨电话是怎么回事 它们支持的功能取决于您使用的浏览器 使用

Selenium webdriver目前支持以下驱动程序:


运行脚本失败后,转到继续调用失败脚本的调用

  • 转到“响应”选项卡

  • 在主体中,找到输入标记中的_RequestVerificationToken名称,并提取value属性之间的所有内容

  • 选择该值,右键单击>添加提取规则,然后按OK

  • 您将找到一个Extraction rules文件夹,它下面是我们刚刚创建的Extraction rules。请随意重命名上下文参数名称

  • 转到下一页,该页应该是失败的页,并找到名为“\uu RequestVerificationToken”的表单Post参数。查看它的属性

  • 将其绑定到先前创建的上下文参数名称。为此,请查看此post参数的属性并将“值”设置为:

{{上下文参数的名称}}

(包括2个花括号)

  • 按enter键确认/保存
下一次运行脚本时,一切正常


这就是我的工作方式

我也看到了类似的问题。记录web测试脚本后,脚本将在登录时失败,并显示以下消息:

提供的防伪令牌用于用户“域\用户名”,但当前用户为“.”


解决方案是在测试属性中将预验证属性设置为false。默认情况下,web测试将向生成令牌时使用的服务器传递身份验证标头。

我很感激,但使用其他任何东西都不是我的解决方案。我相信与真实浏览器交互只适用于回归/UI测试,而不适用于性能/负载测试。“防伪令牌”是什么?你能像对待其他动态参数一样对待它吗?也许是通过登录响应上的提取规则,然后在以后的请求中传递该值?是的,我设法修复了它。。。。马上发布答案