Nya plugins för filtrering och hantering av dependents
Showing
1 changed file
with
103 additions
and
0 deletions
... | @@ -7,6 +7,7 @@ using Microsoft.VisualStudio.TestTools.WebTesting; | ... | @@ -7,6 +7,7 @@ using Microsoft.VisualStudio.TestTools.WebTesting; |
7 | using Microsoft.VisualStudio.TestTools.LoadTesting; | 7 | using Microsoft.VisualStudio.TestTools.LoadTesting; |
8 | using System.IO; | 8 | using System.IO; |
9 | using System.ComponentModel; | 9 | using System.ComponentModel; |
10 | using System.Text.RegularExpressions; | ||
10 | 11 | ||
11 | namespace LIL_VSTT_Plugins | 12 | namespace LIL_VSTT_Plugins |
12 | { | 13 | { |
... | @@ -62,6 +63,69 @@ namespace LIL_VSTT_Plugins | ... | @@ -62,6 +63,69 @@ namespace LIL_VSTT_Plugins |
62 | /// Filtrar bort oönskade objekt från sidor. | 63 | /// Filtrar bort oönskade objekt från sidor. |
63 | /// Samtliga objekt vars URL börjar med den angivna strängen kommer ignoreras och inte laddas ner. | 64 | /// Samtliga objekt vars URL börjar med den angivna strängen kommer ignoreras och inte laddas ner. |
64 | /// </summary> | 65 | /// </summary> |
66 | [DisplayName("Dynamisk URL Regex filter")] | ||
67 | [Description("(C) Copyright 2011 LIGHTS IN LINE AB\r\nFilter för att ignorera vissa objekt på websidor så de inte laddas ner automatiskt.")] | ||
68 | public class WebTestDependentRegexFilter : WebTestPlugin | ||
69 | { | ||
70 | string m_regex; | ||
71 | bool m_exclude = true; | ||
72 | |||
73 | /// <summary> | ||
74 | /// Fullständig URL (inkl http://) som börjar med FilterString kommer att ignoreras. | ||
75 | |||
76 | [DisplayName("RegEx")] | ||
77 | [Description("Dynamiska (dependent) request kommer att filtreras om de matchar detta uttryck.\r\nTex: www.adsite.com eller *.png")] | ||
78 | public string FilterString | ||
79 | { | ||
80 | get { return m_regex; } | ||
81 | set { m_regex = value; } | ||
82 | } | ||
83 | |||
84 | [DisplayName("Exclude")] | ||
85 | [DefaultValue(true)] | ||
86 | [Description("Om satt till true kommer matchande requests att tas bort/exkluderas. Om satt till false kommer alla request utom de som matchar att tas bort/exkluderas")] | ||
87 | public bool Exclude | ||
88 | { | ||
89 | get { return m_exclude; } | ||
90 | set { m_exclude = value; } | ||
91 | } | ||
92 | |||
93 | public override void PostRequest(object sender, PostRequestEventArgs e) | ||
94 | { | ||
95 | if (!string.IsNullOrEmpty(m_regex)) | ||
96 | { | ||
97 | WebTestRequestCollection depsToRemove = new WebTestRequestCollection(); | ||
98 | Regex regex = new Regex(m_regex); | ||
99 | |||
100 | foreach (WebTestRequest r in e.Request.DependentRequests) | ||
101 | { | ||
102 | if (m_exclude) | ||
103 | { | ||
104 | if (regex.IsMatch(r.Url)) | ||
105 | { | ||
106 | depsToRemove.Add(r); | ||
107 | } | ||
108 | } | ||
109 | else | ||
110 | { | ||
111 | if (!regex.IsMatch(r.Url)) | ||
112 | { | ||
113 | depsToRemove.Add(r); | ||
114 | } | ||
115 | } | ||
116 | } | ||
117 | foreach (WebTestRequest r in depsToRemove) | ||
118 | { | ||
119 | e.Request.DependentRequests.Remove(r); | ||
120 | } | ||
121 | } | ||
122 | } | ||
123 | } | ||
124 | |||
125 | /// <summary> | ||
126 | /// Filtrar bort oönskade objekt från sidor. | ||
127 | /// Samtliga objekt vars URL börjar med den angivna strängen kommer ignoreras och inte laddas ner. | ||
128 | /// </summary> | ||
65 | [DisplayName("Dynamisk URL exclude filter")] | 129 | [DisplayName("Dynamisk URL exclude filter")] |
66 | [Description("(C) Copyright 2011 LIGHTS IN LINE AB\r\nFilter för att ignorera vissa objekt på websidor så de inte laddas ner automatiskt.")] | 130 | [Description("(C) Copyright 2011 LIGHTS IN LINE AB\r\nFilter för att ignorera vissa objekt på websidor så de inte laddas ner automatiskt.")] |
67 | public class WebTestDependentFilter : WebTestPlugin | 131 | public class WebTestDependentFilter : WebTestPlugin |
... | @@ -152,7 +216,46 @@ namespace LIL_VSTT_Plugins | ... | @@ -152,7 +216,46 @@ namespace LIL_VSTT_Plugins |
152 | } | 216 | } |
153 | } | 217 | } |
154 | 218 | ||
219 | /// <summary> | ||
220 | /// Ignorerar status koder under 500. | ||
221 | /// </summary> | ||
222 | [DisplayName("Ignore 4xx status codes")] | ||
223 | [Description("(C) Copyright 2011 LIGHTS IN LINE AB\r\nDetta plugin ändrar alla request så de inte går fel på grund av 4xx status koder i svaret samt ignorerar statuskoden helt på alla dependent requests")] | ||
224 | public class WebTestIgnore4xx : WebTestPlugin | ||
225 | { | ||
226 | public override void PostRequest(object sender, PostRequestEventArgs e) | ||
227 | { | ||
228 | |||
229 | if (e.ResponseExists && (int)e.Response.StatusCode >= 500) e.Request.Outcome = Outcome.Fail; | ||
230 | WebTestRequestCollection depsToRemove = new WebTestRequestCollection(); | ||
231 | |||
232 | foreach (WebTestRequest r in e.Request.DependentRequests) | ||
233 | { | ||
234 | r.IgnoreHttpStatusCode = true; | ||
235 | } | ||
236 | } | ||
237 | |||
238 | public override void PreRequest(object sender, PreRequestEventArgs e) | ||
239 | { | ||
240 | e.Request.IgnoreHttpStatusCode = true; | ||
241 | } | ||
242 | } | ||
155 | 243 | ||
244 | /// <summary> | ||
245 | /// Ignorerar status koder under 500. | ||
246 | /// </summary> | ||
247 | [DisplayName("Ignore Dependent Results")] | ||
248 | [Description("(C) Copyright 2011 LIGHTS IN LINE AB\r\nDependent requests kommer laddas ner men ej mätas individuellt. Alla kommer enbart mätas gemensamt som [dependent]")] | ||
249 | public class WebTestIgnoreDependentResults : WebTestPlugin | ||
250 | { | ||
251 | public override void PostRequest(object sender, PostRequestEventArgs e) | ||
252 | { | ||
253 | foreach (WebTestRequest r in e.Request.DependentRequests) | ||
254 | { | ||
255 | r.ReportingName = "[dependent request]"; | ||
256 | } | ||
257 | } | ||
258 | } | ||
156 | 259 | ||
157 | /// <summary> | 260 | /// <summary> |
158 | /// Service Manager Plugin | 261 | /// Service Manager Plugin | ... | ... |
-
Please register or sign in to post a comment