6

MVC サイトの VS2012 で Web テストを実行しようとしています。シナリオの 1 つは、ログインして製品のリストを調べ、必要な製品を選択して購入ページに進むことです。

問題は、Web テストを実行すると、偽造防止トークンに関するエラーが発生し、それが一致しないことです。

偽造防止トークンでテストを行うことは一体どのように可能ですか? ユーザーログインする必要があります - 負荷テストには (最終的には) 何千ものユーザーが存在しますが、最初に 1 人のユーザーに対して機能させる必要があります。

ログインビュー/アクションは、ビューで AntiForgeryToken を実行し、コントローラーで検証を行います。

アドバイスやヒントをいただければ幸いです。

4

3 に答える 3

1

私は同様の問題を見ていました。Web テスト スクリプトを記録した後、スクリプトはログインの時点で失敗し、次のメッセージが表示されます。

提供された偽造防止トークンはユーザー "Domain\UserName" 用でしたが、現在のユーザーは "" です。

解決策は、テスト プロパティで PreAuthenticate プロパティを false に設定することでした。デフォルトでは、Web テストは、トークンの生成に使用されていた認証ヘッダーをサーバーに渡します。

于 2014-12-18T16:37:23.073 に答える
0

私は「VS2012 での Web テスト」に精通していませんが、「偽造防止トークンではブラウザーからサーバーにトークンを送信する必要があることを知っています。

私はSelenium-Webdriverを使用した経験があり、実際のユーザーと同じようにサポートされているブラウザーと対話するための API を提供するため、これを使用することをお勧めします。

Selenium WebDriver 2.37.0 NuGet パッケージをテスト プロジェクトに追加すると、Selenium WebDriver の使用を簡単に開始できます。

Selenium-WebDriverは、自動化のための各ブラウザーのネイティブ サポートを使用して、ブラウザーへの直接呼び出しを行います。これらの直接呼び出しがどのように行われるか、およびそれらがサポートする機能は、使用しているブラウザーによって異なります。

Selenium-webdriver は現在、次のドライバーをサポートしています。

于 2013-11-14T23:20:19.867 に答える