While investigating ways to control parameterised web servers in Visual Studio web tests yesterday I found out that you can use environment variables to set the values of context parameters within your test.  If you have a context parameter called, for example, 'WebServer1' (original I know), then you can use an environment variable called 'Test.WebServer1' to pass a value in to the test.  This is of course not limited to web server names and can be used where appropriate for any other environment specific context values by specifying an environment variable of the format 'Test.ContextParameterName'.

This problem can also be addressed using data binding or test plug-ins, depending on your requirements.

The use of environment variables for this scenario is mentioned in a note on the following MSDN page.