Visual Studio has an out-of-the box plugin that generates GUIDs for you. However its a WebTest
plugin, so it will only generate them once per webtest. You can’t include that plugin into a loop.
Fortunately we can write a simple WebTestRequest
plugin that does what we want:
using System; using System.ComponentModel; using Microsoft.VisualStudio.TestTools.WebTesting; using Microsoft.VisualStudio.TestTools.WebTesting.Rules; namespace LoadTestPlugins { [DisplayNameAttribute("Generate GUID")] [DescriptionAttribute("Generates a GUID during a request")] public class GenerateGUID : WebTestRequestPlugin { #region Methods private void GenerateIt(WebTestContext Context) { Context[this.ContextParameterName] = Guid.NewGuid().ToString(); } public override void PostRequest(object sender, PostRequestEventArgs e) { if(this.BeforeRequest == false) { this.GenerateIt(e.WebTest.Context); } } public override void PreRequest(object sender, PreRequestEventArgs e) { if(this.BeforeRequest == true) { this.GenerateIt(e.WebTest.Context); } } #endregion #region Properties [Description("Name of context parameter to store the number in"), DisplayName("Context parameter"), IsContextParameterName(true)] public string ContextParameterName {get; set;} [Description("Whether to generate the number before or after the request has executed"), DisplayName("Apply before request"), DefaultValue(true)] public bool BeforeRequest { get; set; } #endregion } }