Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Anti forgery token and web testing

I am trying to do a web test in VS2012 for an MVC site. One of the scenarios is to login and go through a list of products, select the one you want and follow through to the purchase page.

Problem is that when the web test is run, I get an error about the anti forgery token and that it does not match.

How on earth is it possible to do the testing with the anti forgery token? The user must login - there will be thousands of users for the load test (eventually) but need to make it work for 1 user first.

the login view/action does do an AntiForgeryToken in the view and validation on the controller.

any advice and tips are appreciated.

like image 983
Ahmed ilyas Avatar asked Nov 14 '13 22:11

Ahmed ilyas


1 Answers

Once you run your script and it fails, go to the call proceeding the one that fails.

  • Go to the response tab

  • In the body, find the __RequestVerificationToken name which is in an input tag and extract everything in between the value attribute.

  • Select the value and right click > add extraction rule and press OK.

  • You will find an Extraction rules folder and underneath it, the Extraction rule we just created. Feel free to rename the Context Parameter Name.

  • Go to the next page , which should be the one that failed, and find the Form Post Parameter named "__RequestVerificationToken". View it's properties

  • Bind it to the Context Parameter Name created previously. To do so, view the properties of this post parameter and set the "Value" to be:

{{Name Of Context Parameter}}

(Include the 2x curly braces)

  • Press enter to confirm/save

Next time you run the script - all works

This is how it worked for me...

like image 85
Ahmed ilyas Avatar answered Sep 27 '22 22:09

Ahmed ilyas