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