Commit eb1b7ec9 eb1b7ec90450b9225e0f9a28f8bc35a315ad7556 by Christian Gerdes

New WebTest Plugin: AddParameterToReportingName

1 parent f9846f3e
...@@ -23,6 +23,37 @@ using Microsoft.VisualStudio.TestTools.LoadTesting; ...@@ -23,6 +23,37 @@ using Microsoft.VisualStudio.TestTools.LoadTesting;
23 23
24 namespace LIL_VSTT_Plugins 24 namespace LIL_VSTT_Plugins
25 { 25 {
26 [DisplayName("Add Parameter To Reporting Name")]
27 [Description("This request plugin will add the specified parameter to the end of the reporting name of the request")]
28 public class AddParameterToReportingName : WebTestRequestPlugin
29 {
30 [DisplayName("Parameter Name"), DefaultValue(""), Description("Name of the parameter which value should be added to the reporting name.")]
31 public string ParameterName { get; set; }
32 [DisplayName("Add to empty Report Name"), DefaultValue(false), Description("The parameter value will be added to report name even if it not set. Warning, will also set all redirects to the same name.")]
33 public bool AddToEmptyReportName { get; set; }
34 [DisplayName("Run on dependent requests"), DefaultValue(false), Description("The parameter value will be set as the report name on all dependent requests (only works in loadtests)")]
35 public bool RunOnDependents { get; set; }
36 public override void PreRequest(object sender, PreRequestEventArgs e)
37 {
38 base.PreRequest(sender, e);
39 if (e.WebTest.Context.ContainsKey(ParameterName) && (!String.IsNullOrEmpty(e.Request.ReportingName) || AddToEmptyReportName))
40 {
41 e.Request.ReportingName = e.Request.ReportingName + e.WebTest.Context[ParameterName].ToString();
42 }
43 }
44 public override void PostRequest(object sender, PostRequestEventArgs e)
45 {
46 base.PostRequest(sender, e);
47 if (RunOnDependents && e.WebTest.Context.ContainsKey(ParameterName))
48 {
49 foreach (WebTestRequest w in e.Request.DependentRequests)
50 {
51 w.ReportingName = e.WebTest.Context[ParameterName].ToString();
52 }
53 }
54 }
55 }
56
26 [DisplayName("Stop Here After")] 57 [DisplayName("Stop Here After")]
27 [Description("Add this plugin to a request in order to force the webtest to stop after the request has finished.")] 58 [Description("Add this plugin to a request in order to force the webtest to stop after the request has finished.")]
28 public class StopHereAfter : WebTestRequestPlugin 59 public class StopHereAfter : WebTestRequestPlugin
......
...@@ -35,6 +35,7 @@ ...@@ -35,6 +35,7 @@
35 <Prefer32Bit>false</Prefer32Bit> 35 <Prefer32Bit>false</Prefer32Bit>
36 <CodeAnalysisRuleSet>C:\Program Files (x86)\Microsoft Visual Studio 14.0\Team Tools\Static Analysis Tools\Rule Sets\MinimumRecommendedRules.ruleset</CodeAnalysisRuleSet> 36 <CodeAnalysisRuleSet>C:\Program Files (x86)\Microsoft Visual Studio 14.0\Team Tools\Static Analysis Tools\Rule Sets\MinimumRecommendedRules.ruleset</CodeAnalysisRuleSet>
37 <RunCodeAnalysis>false</RunCodeAnalysis> 37 <RunCodeAnalysis>false</RunCodeAnalysis>
38 <NoWarn>1692;0618;3021</NoWarn>
38 </PropertyGroup> 39 </PropertyGroup>
39 <ItemGroup> 40 <ItemGroup>
40 <Reference Include="Microsoft.VisualStudio.QualityTools.LoadTestFramework, Version=10.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a, processorArchitecture=MSIL" /> 41 <Reference Include="Microsoft.VisualStudio.QualityTools.LoadTestFramework, Version=10.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a, processorArchitecture=MSIL" />
......
...@@ -344,7 +344,6 @@ namespace LIL_VSTT_Plugins ...@@ -344,7 +344,6 @@ namespace LIL_VSTT_Plugins
344 { 344 {
345 345
346 if (e.ResponseExists && (int)e.Response.StatusCode >= 500) e.Request.Outcome = Outcome.Fail; 346 if (e.ResponseExists && (int)e.Response.StatusCode >= 500) e.Request.Outcome = Outcome.Fail;
347 WebTestRequestCollection depsToRemove = new WebTestRequestCollection();
348 347
349 foreach (WebTestRequest r in e.Request.DependentRequests) 348 foreach (WebTestRequest r in e.Request.DependentRequests)
350 { 349 {
......