<p>I want to stress test a web service method by calling it several thousand times in quick succession. The method has a single string parameter that I will vary on each call.</p>

<p>I'm planning on writing a Powershell script to loop and call this method a number of times.</p>

<p>Is there a better way to do this?</p>

If you run call after call - it's not going to help you too much, as it will not show you how the service behaves under a heavy load of many simultaneous connections.
Go with some multi-threaded solution (I do not know if powershell has this).
Some opensource testing tools are listed
here
. Just set your web service to accept GET requests as well, not only SOAP(default), so you can form the urls.