Event ordering in Web Tests
Web tests have a number of extensibility points before and after a request. What order do they run in?
The hooks are:
WebTestPlugin.PreRequest
WebTestRequestPlugin.PreRequest
ExtractionRule.Extract
ValidationRule.Validate
Here is a sequence diagram that shows what order things fire:
There is no guaranteed order of firing for WebTestPlugin.PreRequest and RequestPlugin.PreRequest. Also if you have >1 Extraction or Validation rule on a request there is no guaranteed order they are run in.
Also note that Pre and Post request events do not fire by default for dependents. You can hook the PostRequest call on a top level request and iterate through dependents to wire up event handlers if you need that functionality.
Ed.