Commit 51d0a85f 51d0a85ff1d8353648d889e7871aff099fa99b97 by Christian Gerdes

Merge with gitlab to commit f9846f3e

2 parents b3649492 f9846f3e
...@@ -6,10 +6,10 @@ MinimumVisualStudioVersion = 10.0.40219.1 ...@@ -6,10 +6,10 @@ MinimumVisualStudioVersion = 10.0.40219.1
6 Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "Solution Items", "Solution Items", "{8ADAFB91-C10D-42C8-8499-30B3692C27F3}" 6 Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "Solution Items", "Solution Items", "{8ADAFB91-C10D-42C8-8499-30B3692C27F3}"
7 ProjectSection(SolutionItems) = preProject 7 ProjectSection(SolutionItems) = preProject
8 LICENSE = LICENSE 8 LICENSE = LICENSE
9 LIL_VSTT_Plugins.vsmdi = LIL_VSTT_Plugins.vsmdi
10 Local.testsettings = Local.testsettings 9 Local.testsettings = Local.testsettings
11 Notes.md = Notes.md 10 Notes.md = Notes.md
12 README.md = README.md 11 README.md = README.md
12 WIN-62BJ8PRQ3MQ.testsettings = WIN-62BJ8PRQ3MQ.testsettings
13 EndProjectSection 13 EndProjectSection
14 EndProject 14 EndProject
15 Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "LIL_VSTT_Plugins", "LIL_VSTT_Plugins\LIL_VSTT_Plugins.csproj", "{06A22593-601E-4386-917A-9835DE30E14E}" 15 Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "LIL_VSTT_Plugins", "LIL_VSTT_Plugins\LIL_VSTT_Plugins.csproj", "{06A22593-601E-4386-917A-9835DE30E14E}"
......
...@@ -23,6 +23,25 @@ using Microsoft.VisualStudio.TestTools.LoadTesting; ...@@ -23,6 +23,25 @@ using Microsoft.VisualStudio.TestTools.LoadTesting;
23 23
24 namespace LIL_VSTT_Plugins 24 namespace LIL_VSTT_Plugins
25 { 25 {
26 [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.")]
28 public class StopHereAfter : WebTestRequestPlugin
29 {
30 [DisplayName("Fail the test"), DefaultValue(true), Description("If set to true will fail the test iteration.")]
31 public bool FailTest { get; set; }
32 public override void PostRequest(object sender, PostRequestEventArgs e)
33 {
34 base.PostRequest(sender, e);
35 e.WebTest.AddCommentToResult("STOP HERE AFTER: WebTest will stop after the next request because of Request Plugin 'Stop Here After' was added to it.");
36 if (FailTest)
37 {
38 e.WebTest.Outcome = Outcome.Fail;
39 e.WebTest.AddCommentToResult("FAIL THE TEST: WebTest will fail after the next request because of option to fail the test was set to true in the plugin.");
40 }
41 e.WebTest.Stop();
42 }
43 }
44
26 [DisplayName("Zip File Upload"), Description("Creates an ZIP archive of each of the files to be uploaded using the files name and adding .zip. Warning, uses %TEMP% for temp storage.")] 45 [DisplayName("Zip File Upload"), Description("Creates an ZIP archive of each of the files to be uploaded using the files name and adding .zip. Warning, uses %TEMP% for temp storage.")]
27 public class ZipFileUploadBeforePost : WebTestRequestPlugin 46 public class ZipFileUploadBeforePost : WebTestRequestPlugin
28 { 47 {
...@@ -91,16 +110,30 @@ namespace LIL_VSTT_Plugins ...@@ -91,16 +110,30 @@ namespace LIL_VSTT_Plugins
91 [DisplayName("Think Time Emulator 10/190"), Description("Sets a context parameter named ThinkTime in each starting test to a random value between 10%-190% of the specified value.")] 110 [DisplayName("Think Time Emulator 10/190"), Description("Sets a context parameter named ThinkTime in each starting test to a random value between 10%-190% of the specified value.")]
92 public class ThinkTimeEmulator10190 : ILoadTestPlugin 111 public class ThinkTimeEmulator10190 : ILoadTestPlugin
93 { 112 {
94 [DisplayName("Think Time"), DefaultValue(0), Description("The Think Time to be used seconds. Default is 0.")] 113 [DisplayName("ThinkTime"), DefaultValue(0), Description("The Think Time to be used seconds. Default is 0.")]
95 public int ThinkTime { get; set; } 114 public int ThinkTime { get; set; }
115 [DisplayName("Minimum"), DefaultValue(10), Description("Percentage of ThinkTime to be used as the minimum value")]
116 public int Min { get; set; }
117 [DisplayName("Maximum"), DefaultValue(190), Description("Percentage of ThinkTime to be used as the maximum value")]
118 public int Max { get; set; }
119 [DisplayName("Only on Tests matching"), DefaultValue(""), Description("Regular expression matching only the tests you want this plugin instance to work on. If it does not match the test name, the plugin instance will not set the ThinkTime")]
120 public string RegExTestName { get; set; }
121 [DisplayName("Only on Scenarios matching"), DefaultValue(""), Description("Regular expression matching only the scenarios you want this plugin instance to work on. If it does not match the scenario name, the plugin instance will not set the ThinkTime")]
122 public string RegExScenarioName { get; set; }
96 123
97 //store the load test object. 124 //store the load test object.
98 LoadTest mLoadTest; 125 LoadTest mLoadTest;
99 Random rnd = new Random(); 126 Random rnd = new Random();
127 Regex rxTestName = null;
128 Regex rxScenarioName = null;
100 129
101 public void Initialize(LoadTest loadTest) 130 public void Initialize(LoadTest loadTest)
102 { 131 {
103 mLoadTest = loadTest; 132 mLoadTest = loadTest;
133 if(!String.IsNullOrEmpty(RegExTestName))
134 rxTestName = new Regex(RegExTestName);
135 if (!String.IsNullOrEmpty(RegExScenarioName))
136 rxScenarioName = new Regex(RegExScenarioName);
104 137
105 //connect to the TestStarting event. 138 //connect to the TestStarting event.
106 mLoadTest.TestStarting += new EventHandler<TestStartingEventArgs>(mLoadTest_TestStarting); 139 mLoadTest.TestStarting += new EventHandler<TestStartingEventArgs>(mLoadTest_TestStarting);
...@@ -109,10 +142,16 @@ namespace LIL_VSTT_Plugins ...@@ -109,10 +142,16 @@ namespace LIL_VSTT_Plugins
109 142
110 void mLoadTest_TestStarting(object sender, TestStartingEventArgs e) 143 void mLoadTest_TestStarting(object sender, TestStartingEventArgs e)
111 { 144 {
145 if (rxTestName != null && rxTestName.IsMatch(e.TestName) != true) return;
146 if (rxScenarioName != null && rxScenarioName.IsMatch(e.ScenarioName) != true) return;
147
112 // Set the think time parameter in the tests context to a new value 148 // Set the think time parameter in the tests context to a new value
113 int min = ThinkTime/10; 149 double tt = ThinkTime;
114 int max = ThinkTime*2 - min; 150 double min = Min / 100d;
115 e.TestContextProperties.Add("ThinkTime", rnd.Next(min, max)); 151 min = tt * min;
152 double max = Max / 100d;
153 max = tt * max;
154 e.TestContextProperties.Add("ThinkTime", rnd.Next((int)min, (int)max));
116 } 155 }
117 } 156 }
118 157
......
...@@ -17,6 +17,7 @@ using Microsoft.VisualStudio.TestTools.LoadTesting; ...@@ -17,6 +17,7 @@ using Microsoft.VisualStudio.TestTools.LoadTesting;
17 using System.ComponentModel; 17 using System.ComponentModel;
18 using System.IO; 18 using System.IO;
19 using System.Collections.Specialized; 19 using System.Collections.Specialized;
20 using System.Net;
20 21
21 namespace LIL_VSTT_Plugins 22 namespace LIL_VSTT_Plugins
22 { 23 {
...@@ -83,35 +84,75 @@ namespace LIL_VSTT_Plugins ...@@ -83,35 +84,75 @@ namespace LIL_VSTT_Plugins
83 [Description("(C) Copyright 2015 LIGHTS IN LINE AB\r\nSätter config värden i Service Manager instansen för hela loadtestet. Finns även som WebTestPlugin som enbart slår på det webtestet.")] 84 [Description("(C) Copyright 2015 LIGHTS IN LINE AB\r\nSätter config värden i Service Manager instansen för hela loadtestet. Finns även som WebTestPlugin som enbart slår på det webtestet.")]
84 public class ServiceManagerPlugin : ILoadTestPlugin 85 public class ServiceManagerPlugin : ILoadTestPlugin
85 { 86 {
86 [DisplayName("Use Expect 100 Behaviour"), DefaultValue(true)] 87 [DisplayName("Enable Expect 100 Behaviour"), DefaultValue(false)]
88 [Description(".Net 4.5 default is true, plugin default is false")]
87 public bool exp100 { get; set; } 89 public bool exp100 { get; set; }
88 90
89 [DisplayName("Max Connection Idle Time"), DefaultValue(100)] 91 [DisplayName("Connection Pool Idle Time (s)"), DefaultValue(100)]
90 public int maxIdle { get; set; } 92 public int maxIdle { get; set; }
91 93
94 [DisplayName("DNS Refresh Timeout (s)"), DefaultValue(120)]
95 public int DnsRefreshTimeout { get; set; }
96
97 [DisplayName("Enable DNS Round Robin"), DefaultValue(false)]
98 public bool EnableDnsRoundRobin { get; set; }
99
100 [Category("Transport Control")]
92 [DisplayName("TCP Keep Alive"), DefaultValue(false)] 101 [DisplayName("TCP Keep Alive"), DefaultValue(false)]
93 public bool keepAlive { get; set; } 102 public bool keepAlive { get; set; }
94 103
104 [Category("Transport Control")]
95 [DisplayName("TCP Keep Alive Timeout (ms)"), DefaultValue(5000)] 105 [DisplayName("TCP Keep Alive Timeout (ms)"), DefaultValue(5000)]
96 public int timeOut { get; set; } 106 public int timeOut { get; set; }
97 107
108 [Category("Transport Control")]
98 [DisplayName("TCP Keep Alive Interval"), DefaultValue(1000)] 109 [DisplayName("TCP Keep Alive Interval"), DefaultValue(1000)]
99 public int interVal { get; set; } 110 public int interVal { get; set; }
100 111
112 [Category("Transport Control")]
101 [DisplayName("Use Nagle Algorithm"), DefaultValue(false)] 113 [DisplayName("Use Nagle Algorithm"), DefaultValue(false)]
102 public bool useNagle { get; set; } 114 public bool useNagle { get; set; }
103 115
104 [DisplayName("Force TLS 1.2"), DefaultValue(false)] 116 [Category("Secure Sockets")]
105 [Description("Kräver .NET 4.5 samt att TLS1.2 är aktiverat i SChannel (använd bifogad schannel_high.reg)")] 117 [DisplayName("Enable TLS 1.2"), DefaultValue(true)]
118 [Description(".Net 4.5 default is false, plugin default is true")]
106 public bool useTls12 { get; set; } 119 public bool useTls12 { get; set; }
107 120
121 [Category("Secure Sockets")]
122 [DisplayName("Enable TLS 1.1"), DefaultValue(true)]
123 [Description(".Net 4.5 default is false, plugin default is true")]
124 public bool useTls11 { get; set; }
125
126 [Category("Secure Sockets")]
127 [DisplayName("Enable TLS 1.0"), DefaultValue(true)]
128 public bool useTls10 { get; set; }
129
130 [Category("Secure Sockets")]
131 [DisplayName("Enable SSL 3.0"), DefaultValue(false)]
132 public bool useSsl3 { get; set; }
133
134 [Category("Secure Sockets")]
135 [DisplayName("Enable CRL checks"), DefaultValue(false)]
136 public bool useCrl { get; set; }
137
108 public void Initialize(LoadTest loadTest) 138 public void Initialize(LoadTest loadTest)
109 { 139 {
110 System.Net.ServicePointManager.Expect100Continue = exp100; 140 ServicePointManager.Expect100Continue = exp100;
111 System.Net.ServicePointManager.MaxServicePointIdleTime = maxIdle; 141 ServicePointManager.MaxServicePointIdleTime = maxIdle * 1000;
112 System.Net.ServicePointManager.SetTcpKeepAlive(keepAlive, timeOut, interVal); 142 ServicePointManager.DnsRefreshTimeout = DnsRefreshTimeout * 1000;
113 System.Net.ServicePointManager.UseNagleAlgorithm = useNagle; 143 ServicePointManager.EnableDnsRoundRobin = EnableDnsRoundRobin;
114 if (useTls12) System.Net.ServicePointManager.SecurityProtocol = System.Net.SecurityProtocolType.Tls12; 144 ServicePointManager.SetTcpKeepAlive(keepAlive, timeOut, interVal);
145 ServicePointManager.UseNagleAlgorithm = useNagle;
146 //if (useTls12) System.Net.ServicePointManager.SecurityProtocol = System.Net.SecurityProtocolType.Tls12;
147 if (useSsl3) ServicePointManager.SecurityProtocol |= SecurityProtocolType.Ssl3;
148 else ServicePointManager.SecurityProtocol &= SecurityProtocolType.Ssl3;
149 if (useTls10) ServicePointManager.SecurityProtocol |= SecurityProtocolType.Tls;
150 else ServicePointManager.SecurityProtocol &= SecurityProtocolType.Tls;
151 if (useTls11) ServicePointManager.SecurityProtocol |= SecurityProtocolType.Tls11;
152 else ServicePointManager.SecurityProtocol &= SecurityProtocolType.Tls11;
153 if (useTls12) ServicePointManager.SecurityProtocol |= SecurityProtocolType.Tls12;
154 else ServicePointManager.SecurityProtocol &= SecurityProtocolType.Tls12;
155 ServicePointManager.CheckCertificateRevocationList = useCrl;
115 } 156 }
116 157
117 } 158 }
...@@ -146,6 +187,9 @@ namespace LIL_VSTT_Plugins ...@@ -146,6 +187,9 @@ namespace LIL_VSTT_Plugins
146 private bool myUseAutoSplit = false; 187 private bool myUseAutoSplit = false;
147 private bool myIgnoreBlanks = true; 188 private bool myIgnoreBlanks = true;
148 189
190 private bool stop = false;
191 private int timeWait = 0;
192
149 private StringCollection myParams = new StringCollection(); 193 private StringCollection myParams = new StringCollection();
150 private Random random = new Random(); 194 private Random random = new Random();
151 private Dictionary<string, int> testIterations = new Dictionary<string, int>(); 195 private Dictionary<string, int> testIterations = new Dictionary<string, int>();
...@@ -262,7 +306,7 @@ namespace LIL_VSTT_Plugins ...@@ -262,7 +306,7 @@ namespace LIL_VSTT_Plugins
262 } 306 }
263 307
264 [DisplayName("Välj sekventiell loop?")] 308 [DisplayName("Välj sekventiell loop?")]
265 [Description("Ange true om du vill börja om från början om sekventiell läsning får slut på värden. Gäller även Unik läsning.")] 309 [Description("Ange true om du vill börja om från början om sekventiell läsning får slut på värden. Gäller även Unik läsning. Om data tar slut kommer sista värdet ges till alla om sekventiell loop inte tillåts")]
266 [DefaultValue(false)] 310 [DefaultValue(false)]
267 public bool Use_Loop 311 public bool Use_Loop
268 { 312 {
...@@ -270,6 +314,14 @@ namespace LIL_VSTT_Plugins ...@@ -270,6 +314,14 @@ namespace LIL_VSTT_Plugins
270 set { mySeqLoop = value; } 314 set { mySeqLoop = value; }
271 } 315 }
272 316
317 [DisplayName("OutOfTestDataException?")]
318 [Description("Ange true om du vill att ditt loadtest ska stoppas om testdata tar slut (och Sekventiell Loop är satt till false).")]
319 [DefaultValue(false)]
320 public bool ThrowException
321 {
322 get; set;
323 }
324
273 [DisplayName("Logga fungerande till fil?")] 325 [DisplayName("Logga fungerande till fil?")]
274 [Description("Ange True om du vill att poster vars tester slutar i Pass ska loggas till fil (c:\\fungerande.log). Om filen redan finns läggs de till i slutet.")] 326 [Description("Ange True om du vill att poster vars tester slutar i Pass ska loggas till fil (c:\\fungerande.log). Om filen redan finns läggs de till i slutet.")]
275 [DefaultValue(false)] 327 [DefaultValue(false)]
...@@ -310,6 +362,7 @@ namespace LIL_VSTT_Plugins ...@@ -310,6 +362,7 @@ namespace LIL_VSTT_Plugins
310 362
311 public void Initialize(LoadTest loadTest) 363 public void Initialize(LoadTest loadTest)
312 { 364 {
365 m_loadTest = loadTest;
313 // Only run on specific agents if specified 366 // Only run on specific agents if specified
314 if (myAgentNames.Length > 0 && !myAgentNames.ToLower().Contains(loadTest.Context.AgentName.ToLower())) return; 367 if (myAgentNames.Length > 0 && !myAgentNames.ToLower().Contains(loadTest.Context.AgentName.ToLower())) return;
315 368
...@@ -318,7 +371,6 @@ namespace LIL_VSTT_Plugins ...@@ -318,7 +371,6 @@ namespace LIL_VSTT_Plugins
318 371
319 if (myParams.Count > 0) 372 if (myParams.Count > 0)
320 { 373 {
321 m_loadTest = loadTest;
322 if (myUseUniqueIteration) 374 if (myUseUniqueIteration)
323 m_loadTest.TestStarting += new EventHandler<TestStartingEventArgs>(loadTestStartingUniqueIteration); 375 m_loadTest.TestStarting += new EventHandler<TestStartingEventArgs>(loadTestStartingUniqueIteration);
324 else if(myUseUniqueTestIteration) 376 else if(myUseUniqueTestIteration)
...@@ -334,6 +386,18 @@ namespace LIL_VSTT_Plugins ...@@ -334,6 +386,18 @@ namespace LIL_VSTT_Plugins
334 { 386 {
335 m_loadTest.TestFinished += new EventHandler<TestFinishedEventArgs>(loadTestEndLogger); 387 m_loadTest.TestFinished += new EventHandler<TestFinishedEventArgs>(loadTestEndLogger);
336 } 388 }
389 m_loadTest.Heartbeat += new EventHandler<HeartbeatEventArgs>(loadTestHeartBeat);
390 }
391
392 void loadTestHeartBeat(object sender, HeartbeatEventArgs e)
393 {
394 if (stop)
395 {
396 if (timeWait > 60)
397 m_loadTest.Abort(new Exception("Out of test data"));
398 else
399 timeWait++;
400 }
337 } 401 }
338 402
339 void loadTestEndLogger(object sender, TestFinishedEventArgs e) 403 void loadTestEndLogger(object sender, TestFinishedEventArgs e)
...@@ -468,8 +532,19 @@ namespace LIL_VSTT_Plugins ...@@ -468,8 +532,19 @@ namespace LIL_VSTT_Plugins
468 { 532 {
469 if (mySeqLoop) 533 if (mySeqLoop)
470 return myParams[seqIndex % myParams.Count]; 534 return myParams[seqIndex % myParams.Count];
471 else 535 else {
472 return myParams[myParams.Count - 1]; 536 // Handle out of testdata here
537 if (ThrowException)
538 {
539 foreach (LoadTestScenario s in m_loadTest.Scenarios)
540 {
541 s.CurrentLoad = 0;
542 }
543 this.stop = true;
544 return "OutOfData";
545 }
546 else return myParams[myParams.Count - 1];
547 }
473 } 548 }
474 } 549 }
475 550
......
...@@ -282,6 +282,58 @@ namespace LIL_VSTT_Plugins ...@@ -282,6 +282,58 @@ namespace LIL_VSTT_Plugins
282 } 282 }
283 283
284 /// <summary> 284 /// <summary>
285 /// Loggar alla transaktioners svarstider som context parametrar
286 /// </summary>
287 [DisplayName("Set Test Info As Header")]
288 [Description("(C) Copyright 2017 LIGHTS IN LINE AB\r\nAdds name information from transactions, pages, tests into a header in requests so that it can be used to group upon in tools like AppDynamics, DynaTrace, etc.")]
289 public class SetTestInfoAsHeader : WebTestPlugin
290 {
291 [DisplayName("Header Prefix")]
292 [Description("Prefix of the header to be added on requests")]
293 [DefaultValue("X-Sipoz")]
294 public String HeaderName { get; set; }
295
296 [DisplayName("Tests")]
297 [Description("Add the Test name as a header with <prefix>-TestName")]
298 [DefaultValue(true)]
299 public bool onTransaction { get; set; }
300
301 [DisplayName("Transactions")]
302 [Description("Add the transaction name as a header with <prefix>-TransactionName")]
303 [DefaultValue(true)]
304 public bool onTest { get; set; }
305
306 List<String> transactionPath = new List<string>();
307
308 public override void PreRequest(object sender, PreRequestEventArgs e)
309 {
310 base.PreRequest(sender, e);
311 if (onTest) e.Request.Headers.Add(HeaderName + "-TestName", e.WebTest.Name);
312 if (onTransaction && transactionPath.Count > 0)
313 {
314 String value = String.Empty;
315 foreach (string trans in transactionPath) {
316 if (value.Equals(String.Empty)) value = trans;
317 else value += "." + trans;
318 }
319 e.Request.Headers.Add(HeaderName + "-TransactionName", value);
320 }
321 }
322
323 public override void PreTransaction(object sender, PreTransactionEventArgs e)
324 {
325 base.PreTransaction(sender, e);
326 transactionPath.Add(e.TransactionName);
327 }
328
329 public override void PostTransaction(object sender, PostTransactionEventArgs e)
330 {
331 base.PostTransaction(sender, e);
332 transactionPath.Remove(e.TransactionName);
333 }
334 }
335
336 /// <summary>
285 /// Ignorerar status koder under 500. 337 /// Ignorerar status koder under 500.
286 /// </summary> 338 /// </summary>
287 [DisplayName("Ignore 4xx status codes")] 339 [DisplayName("Ignore 4xx status codes")]
...@@ -323,6 +375,72 @@ namespace LIL_VSTT_Plugins ...@@ -323,6 +375,72 @@ namespace LIL_VSTT_Plugins
323 } 375 }
324 376
325 /// <summary> 377 /// <summary>
378 /// Sätter Reporting name
379 /// </summary>
380 [DisplayName("Report Name Automator")]
381 [Description("(C) Copyright 2017 LIGHTS IN LINE AB\r\nSätter automatiskt Reporting Name på requests")]
382 public class WebTestReportingNameAutomator : WebTestPlugin
383 {
384 [DisplayName("Use RegEx with group")]
385 [Description("Will use the Set To Name as a regular expression with a group and use the matching group result as the Reporting Name. If no match, reporting name will not be set to \"no-match\"")]
386 [DefaultValue(false)]
387 public bool useRegGroup { get; set; }
388
389 [DisplayName("Run on Dependents")]
390 [Description("If set to true will run on dependents")]
391 [DefaultValue(false)]
392 public bool runOnDependents { get; set; }
393
394 [DisplayName("Run on Requests")]
395 [Description("If set to true will run on requests (default)")]
396 [DefaultValue(true)]
397 public bool runOnRequests { get; set; }
398
399 [DisplayName("Set to Name")]
400 [Description("The name to be set or the regular expression to be used. Groups are specified within () like (.+?) would match the shortest possible string")]
401 [DefaultValue(false)]
402 public string reportingName { get; set; }
403
404 private Regex regex = null;
405 public override void PostRequest(object sender, PostRequestEventArgs e)
406 {
407 if(runOnDependents)
408 foreach (WebTestRequest r in e.Request.DependentRequests)
409 {
410 r.ReportingName = getNameToSet(r.Url);
411 }
412 }
413
414 public override void PreRequest(object sender, PreRequestEventArgs e)
415 {
416 if (runOnRequests)
417 e.Request.ReportingName = getNameToSet(e.Request.Url);
418 }
419
420 private void createRegExOnce() {
421 if(regex == null) {
422 regex = new Regex(reportingName);
423 }
424 }
425
426 private string getNameToSet(string input) {
427 string result = "no-match";
428 if (useRegGroup == false)
429 result = reportingName;
430 else
431 {
432 createRegExOnce();
433 Match m = regex.Match(input);
434 if (m.Success && m.Groups.Count > 0)
435 {
436 result = m.Groups[0].Value;
437 }
438 }
439 return result;
440 }
441 }
442
443 /// <summary>
326 /// Service Manager Plugin 444 /// Service Manager Plugin
327 /// </summary> 445 /// </summary>
328 [DisplayName("Service Manager Config")] 446 [DisplayName("Service Manager Config")]
...@@ -784,9 +902,8 @@ namespace LIL_VSTT_Plugins ...@@ -784,9 +902,8 @@ namespace LIL_VSTT_Plugins
784 Org.BouncyCastle.Crypto.AsymmetricCipherKeyPair bcKey = null; 902 Org.BouncyCastle.Crypto.AsymmetricCipherKeyPair bcKey = null;
785 Org.BouncyCastle.X509.X509Certificate bcCert = null; 903 Org.BouncyCastle.X509.X509Certificate bcCert = null;
786 904
787 while (keyTextBeginPos != -1) 905 while (keyTextBeginPos != -1 && keyTextEndPos != -1)
788 { 906 {
789 text = text.Substring(keyTextBeginPos);
790 object obj; 907 object obj;
791 try 908 try
792 { 909 {
...@@ -818,6 +935,8 @@ namespace LIL_VSTT_Plugins ...@@ -818,6 +935,8 @@ namespace LIL_VSTT_Plugins
818 } 935 }
819 } 936 }
820 keyTextBeginPos = text.IndexOf("-----BEGIN", keyTextEndPos); 937 keyTextBeginPos = text.IndexOf("-----BEGIN", keyTextEndPos);
938 if(keyTextBeginPos >= 0) text = text.Substring(keyTextBeginPos);
939 keyTextEndPos = text.IndexOf("-----END");
821 } 940 }
822 if (bcCert == null) 941 if (bcCert == null)
823 { 942 {
......
...@@ -2,6 +2,7 @@ ...@@ -2,6 +2,7 @@
2 <TestSettings name="Local" id="f9146b42-ca07-41ed-9af4-6ec2afc90583" xmlns="http://microsoft.com/schemas/VisualStudio/TeamTest/2010"> 2 <TestSettings name="Local" id="f9146b42-ca07-41ed-9af4-6ec2afc90583" xmlns="http://microsoft.com/schemas/VisualStudio/TeamTest/2010">
3 <Description>These are default test settings for a local test run.</Description> 3 <Description>These are default test settings for a local test run.</Description>
4 <Deployment> 4 <Deployment>
5 <DeploymentItem filename="TestProject1\UserdataFew.csv" />
5 <DeploymentItem filename="TestProject1\Userdata.csv" /> 6 <DeploymentItem filename="TestProject1\Userdata.csv" />
6 </Deployment> 7 </Deployment>
7 <Execution hostProcessPlatform="MSIL"> 8 <Execution hostProcessPlatform="MSIL">
......
...@@ -6,3 +6,67 @@ DotNetUtilities.ToX509Certificate((Org.BouncyCastle.X509.X509Certificate)newCert ...@@ -6,3 +6,67 @@ DotNetUtilities.ToX509Certificate((Org.BouncyCastle.X509.X509Certificate)newCert
6 6
7 http://stackoverflow.com/questions/6128541/bouncycastle-privatekey-to-x509certificate2-privatekey 7 http://stackoverflow.com/questions/6128541/bouncycastle-privatekey-to-x509certificate2-privatekey
8 8
9 # IDEAS
10
11 ## Custom Counters
12
13 Custom counters can be created directly in the database.
14 The [LoadTestRunId] is needed, from the current load test run in the
15 [LoadTestRun] table. This id could be retreived by just getting the latest entry for a ControllerName (since a controller can only run one test at the time).
16 The question is how to get the datasource connection string.
17
18 ### Example 1
19
20 In this case the counter is created as a counter on the highest (root) level in the results counters, using the [CounterCategoryId] for LoadTest:Scenario
21 in the [LoadTestPerformanceCounterCategory] table (below it had the value 6).
22
23 INSERT INTO [dbo].[LoadTestPerformanceCounter] ([LoadTestRunId], [CounterCategoryId], [CounterId], [CounterName], [HigherIsBetter])
24 VALUES (4012, 6, 93, N'CustomCounter', 1)
25
26 The CounterId here is generated (last +1) and then used in the instance as well:
27
28 INSERT INTO [dbo].[LoadTestPerformanceCounterInstance] ([LoadTestRunId], [CounterId], [InstanceId], [LoadTestItemId], [InstanceName], [CumulativeValue], [OverallThresholdRuleResult])
29 VALUES (4012, 93, 622, NULL, N'Custom', 10, 0)
30
31 Here the InstanceId is generated (last +1). InstanceName is the root leef name in the results tree. If the same name as an existing Scenario is used, the counter
32 is placed in that Scenarios branch. If it doesnt exist, it will be placed by its own in the root (as a new Scenario).
33
34 ### Example 2
35
36 In this case we create a CUSTOM Computer in the Computers root list. It can have it's own categories, counters and instances or counters with a single instance.
37
38 INSERT INTO [dbo].[LoadTestPerformanceCounterCategory] ([LoadTestRunId], [CounterCategoryId], [CategoryName], [MachineName], [StartTimeStamp100nSec])
39 VALUES (4012, 13, N'Test', N'CUSTOM', 131293041616203688)
40
41 CounterCategoryId is generated (last +1)
42
43 INSERT INTO [dbo].[LoadTestPerformanceCounter] ([LoadTestRunId], [CounterCategoryId], [CounterId], [CounterName], [HigherIsBetter])
44 VALUES (4012, 13, 92, N'TestCounter', 1)
45
46 CounterCategory here is the one created above, CounterId is generated (last +1)
47
48 INSERT INTO [dbo].[LoadTestPerformanceCounterInstance] ([LoadTestRunId], [CounterId], [InstanceId], [LoadTestItemId], [InstanceName], [CumulativeValue], [OverallThresholdRuleResult])
49 VALUES (4012, 92, 621, NULL, N'systemdiagnosticsperfcounterlibsingleinstance', 100, 1)
50
51 CounterId from above, InstanceId is generated (last +1), InstanceName is a name for the instance or systemdiagnosticsperfcounterlibsingleinstance as above
52
53 CumulativeValue seems to have effect on the graphs max value for the y axis to calculate a range to be used.
54
55 ### Creating values
56
57 Once the counters and instances are set, values (measurements) can be created in the [LoadTestPerformanceCounterSample] table. Below an example for the "User Load" counter
58 for scenarios:
59
60 INSERT INTO [dbo].[LoadTestPerformanceCounterSample] ([LoadTestRunId], [TestRunIntervalId], [InstanceId], [ComputedValue], [RawValue], [BaseValue], [CounterFrequency], [SystemFrequency], [SampleTimeStamp], [SampleTimeStamp100nSec], [CounterType], [ThresholdRuleResult], [ThresholdRuleMessageId])
61 VALUES (4013, 1, 181, 10, 10, 0, 2636718, 2636718, 39550770, 150000000, 65536, 0, NULL)
62 INSERT INTO [dbo].[LoadTestPerformanceCounterSample] ([LoadTestRunId], [TestRunIntervalId], [InstanceId], [ComputedValue], [RawValue], [BaseValue], [CounterFrequency], [SystemFrequency], [SampleTimeStamp], [SampleTimeStamp100nSec], [CounterType], [ThresholdRuleResult], [ThresholdRuleMessageId])
63 VALUES (4013, 2, 181, 10, 10, 0, 2636718, 2636718, 79101540, 300000000, 65536, 0, NULL)
64
65 CounterFrequency seems to be set to the same as SystemFrequency and seems to be the local cpu clock frequency.
66
67 [CounterType] seems to be the int of the system.diagnostics.performancecountertype enum used, in this case probaly NumberOfItems32
68
69 [SampleTimeStamp] seems to be ticks, a multiple of CounterFrequency and the number of seconds of the measurement interval (above 15 seconds)
70
71 [SampleTimeStamp100nSec] seems to be the time passed since the beginning of the counter category timestamp in 100nSec (0,1 micro seconds)
72
......
1 <?xml version="1.0" encoding="utf-8"?> 1 <?xml version="1.0" encoding="utf-8"?>
2 <LoadTest Name="LoadTest1" Description="" Owner="" storage="d:\git\vstt-plugins\testproject1\loadtest1.loadtest" Priority="2147483647" Enabled="true" CssProjectStructure="" CssIteration="" DeploymentItemsEditable="" WorkItemIds="" TraceLevel="None" CurrentRunConfig="Run Settings1" Id="0e35c1c4-9214-4fc4-907f-42e11a00845a" xmlns="http://microsoft.com/schemas/VisualStudio/TeamTest/2010"> 2 <LoadTest Name="LoadTest1" Description="" Owner="" storage="d:\git\vstt-plugins\testproject1\loadtest1.loadtest" Priority="2147483647" Enabled="true" CssProjectStructure="" CssIteration="" DeploymentItemsEditable="" WorkItemIds="" TraceLevel="None" CurrentRunConfig="Run Settings1" Id="0e35c1c4-9214-4fc4-907f-42e11a00845a" xmlns="http://microsoft.com/schemas/VisualStudio/TeamTest/2010">
3 <Scenarios> 3 <Scenarios>
4 <Scenario Name="Scenario1" DelayBetweenIterations="1" PercentNewUsers="0" IPSwitching="true" TestMixType="PercentageOfUsersRunning" ApplyDistributionToPacingDelay="true" MaxTestIterations="0" DisableDuringWarmup="false" DelayStartTime="0" AllowedAgents=""> 4 <Scenario Name="Copy of Scenario1" DelayBetweenIterations="30" PercentNewUsers="0" IPSwitching="true" TestMixType="PercentageOfUsersRunning" ApplyDistributionToPacingDelay="true" MaxTestIterations="0" DisableDuringWarmup="false" DelayStartTime="0" AllowedAgents="">
5 <ThinkProfile Value="0.2" Pattern="NormalDistribution" /> 5 <ThinkProfile Value="0.2" Pattern="Off" />
6 <LoadProfile Pattern="Constant" InitialUsers="4" /> 6 <LoadProfile Pattern="Constant" InitialUsers="2" />
7 <TestMix> 7 <TestMix>
8 <TestProfile Name="WebTest21" Path="webtest21.webtest" Id="9af8354e-b982-4f5a-80f9-777eaed55003" Percentage="100" Type="Microsoft.VisualStudio.TestTools.WebStress.DeclarativeWebTestElement, Microsoft.VisualStudio.QualityTools.LoadTest, Version=14.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a" /> 8 <TestProfile Name="WebTest7 - Copy" Path="webtest7 - copy.webtest" Id="da8233d7-4410-4404-b5f9-76bdf9cf36f4" Percentage="50" Type="Microsoft.VisualStudio.TestTools.WebStress.DeclarativeWebTestElement, Microsoft.VisualStudio.QualityTools.LoadTest, Version=14.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a" />
9 <TestProfile Name="WebTest7" Path="webtest7.webtest" Id="b81f6de6-5ea8-4211-ac7b-3c0272942501" Percentage="50" Type="Microsoft.VisualStudio.TestTools.WebStress.DeclarativeWebTestElement, Microsoft.VisualStudio.QualityTools.LoadTest, Version=14.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a" />
10 </TestMix>
11 <BrowserMix>
12 <BrowserProfile Percentage="100">
13 <Browser Name="Internet Explorer 11.0" MaxConnections="6">
14 <Headers>
15 <Header Name="User-Agent" Value="Mozilla/5.0 (Windows NT 6.3; Trident/7.0; rv:11.0) like Gecko" />
16 <Header Name="Accept" Value="*/*" />
17 <Header Name="Accept-Language" Value="{{$IEAcceptLanguage}}" />
18 <Header Name="Accept-Encoding" Value="GZIP" />
19 </Headers>
20 </Browser>
21 </BrowserProfile>
22 </BrowserMix>
23 <NetworkMix>
24 <NetworkProfile Percentage="100">
25 <Network Name="LAN" BandwidthInKbps="1000000" NetworkProfileConfigurationXml="&lt;Emulation&gt;&lt;VirtualChannel name=&quot;defaultChannel&quot;&gt;&lt;FilterList/&gt;&lt;VirtualLink instances=&quot;1&quot; name=&quot;defaultLink&quot;&gt;&lt;LinkRule dir=&quot;upstream&quot;&gt;&lt;Bandwidth&gt;&lt;Speed unit=&quot;kbps&quot;&gt;1000000&lt;/Speed&gt;&lt;/Bandwidth&gt;&lt;/LinkRule&gt;&lt;LinkRule dir=&quot;downstream&quot;&gt;&lt;Bandwidth&gt;&lt;Speed unit=&quot;kbps&quot;&gt;1000000&lt;/Speed&gt;&lt;/Bandwidth&gt;&lt;/LinkRule&gt;&lt;/VirtualLink&gt;&lt;/VirtualChannel&gt;&lt;/Emulation&gt;" />
26 </NetworkProfile>
27 </NetworkMix>
28 </Scenario>
29 <Scenario Name="Scenario1" DelayBetweenIterations="30" PercentNewUsers="0" IPSwitching="true" TestMixType="PercentageOfUsersRunning" ApplyDistributionToPacingDelay="true" MaxTestIterations="0" DisableDuringWarmup="false" DelayStartTime="0" AllowedAgents="">
30 <ThinkProfile Value="0.2" Pattern="Off" />
31 <LoadProfile Pattern="Constant" InitialUsers="2" />
32 <TestMix>
33 <TestProfile Name="WebTest7 - Copy" Path="webtest7 - copy.webtest" Id="da8233d7-4410-4404-b5f9-76bdf9cf36f4" Percentage="50" Type="Microsoft.VisualStudio.TestTools.WebStress.DeclarativeWebTestElement, Microsoft.VisualStudio.QualityTools.LoadTest, Version=14.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a" />
34 <TestProfile Name="WebTest7" Path="webtest7.webtest" Id="b81f6de6-5ea8-4211-ac7b-3c0272942501" Percentage="50" Type="Microsoft.VisualStudio.TestTools.WebStress.DeclarativeWebTestElement, Microsoft.VisualStudio.QualityTools.LoadTest, Version=14.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a" />
9 </TestMix> 35 </TestMix>
10 <BrowserMix> 36 <BrowserMix>
11 <BrowserProfile Percentage="100"> 37 <BrowserProfile Percentage="100">
...@@ -433,25 +459,13 @@ ...@@ -433,25 +459,13 @@
433 </RunConfiguration> 459 </RunConfiguration>
434 </RunConfigurations> 460 </RunConfigurations>
435 <LoadTestPlugins> 461 <LoadTestPlugins>
436 <LoadTestPlugin Classname="LIL_VSTT_Plugins.SetTestParameter, LIL_VSTT_Plugins, Version=1.3.0.0, Culture=neutral, PublicKeyToken=null" DisplayName="Set Test Context Parameters" Description="(C) Copyright 2011 LIGHTS IN LINE AB&#xD;&#xA;Sätter parametrar i testcontextet för tester i mixen hämtat från en CSV fil"> 462 <LoadTestPlugin Classname="LIL_VSTT_Plugins.ThinkTimeEmulator10190, LIL_VSTT_Plugins, Version=1.3.0.0, Culture=neutral, PublicKeyToken=null" DisplayName="Think Time Emulator 10/190" Description="Sets a context parameter named ThinkTime in each starting test to a random value between 10%-190% of the specified value.">
437 <RuleParameters> 463 <RuleParameters>
438 <RuleParameter Name="Connection_String" Value="Userdata.csv" /> 464 <RuleParameter Name="ThinkTime" Value="35" />
439 <RuleParameter Name="Has_col_name" Value="False" /> 465 <RuleParameter Name="Min" Value="10" />
440 <RuleParameter Name="Autosplit" Value="False" /> 466 <RuleParameter Name="Max" Value="190" />
441 <RuleParameter Name="Parameter_Name" Value="Parameter1" /> 467 <RuleParameter Name="RegExTestName" Value="Copy" />
442 <RuleParameter Name="LogFilePathString" Value="C:\Temp\Fungerande.log" /> 468 <RuleParameter Name="RegExScenarioName" Value="Copy" />
443 <RuleParameter Name="LogFileAppendID" Value="False" />
444 <RuleParameter Name="LogFileAppendName" Value="False" />
445 <RuleParameter Name="Use_Random" Value="False" />
446 <RuleParameter Name="Use_Unique" Value="False" />
447 <RuleParameter Name="Use_UniqueIteration" Value="False" />
448 <RuleParameter Name="Use_Loop" Value="False" />
449 <RuleParameter Name="Log_To_File" Value="False" />
450 <RuleParameter Name="Test_Names" Value="" />
451 <RuleParameter Name="Scenario_Names" Value="" />
452 <RuleParameter Name="Agent_Names" Value="" />
453 <RuleParameter Name="Use_UniqueTestIteration" Value="True" />
454 <RuleParameter Name="IgnoreBlanks" Value="True" />
455 </RuleParameters> 469 </RuleParameters>
456 </LoadTestPlugin> 470 </LoadTestPlugin>
457 </LoadTestPlugins> 471 </LoadTestPlugins>
......
1 <?xml version="1.0" encoding="utf-8"?> 1 <?xml version="1.0" encoding="utf-8"?>
2 <LoadTest Name="LoadTest5" Description="" Owner="" storage="c:\ws\repos\vstt-plugins\testproject1\loadtest5.loadtest" Priority="2147483647" Enabled="true" CssProjectStructure="" CssIteration="" DeploymentItemsEditable="" WorkItemIds="" TraceLevel="None" CurrentRunConfig="Run Settings1" Id="67894cbd-a6dc-48d4-997b-05f60d87d6e7" xmlns="http://microsoft.com/schemas/VisualStudio/TeamTest/2010"> 2 <LoadTest Name="LoadTest5" Description="" Owner="" storage="c:\users\wflg\source\repos\vstt-plugins\testproject1\loadtest5.loadtest" Priority="2147483647" Enabled="true" CssProjectStructure="" CssIteration="" DeploymentItemsEditable="" WorkItemIds="" TraceLevel="None" CurrentRunConfig="Run Settings1" Id="67894cbd-a6dc-48d4-997b-05f60d87d6e7" xmlns="http://microsoft.com/schemas/VisualStudio/TeamTest/2010">
3 <Scenarios> 3 <Scenarios>
4 <Scenario Name="Scenario1" DelayBetweenIterations="0" PercentNewUsers="0" IPSwitching="false" TestMixType="PercentageOfTestsStarted" ApplyDistributionToPacingDelay="true" MaxTestIterations="0" DisableDuringWarmup="false" DelayStartTime="0" AllowedAgents=""> 4 <Scenario Name="Scenario1" DelayBetweenIterations="0" PercentNewUsers="0" IPSwitching="false" TestMixType="PercentageOfTestsStarted" ApplyDistributionToPacingDelay="true" MaxTestIterations="0" DisableDuringWarmup="false" DelayStartTime="0" AllowedAgents="">
5 <ThinkProfile Value="0.2" Pattern="Off" /> 5 <ThinkProfile Value="0.2" Pattern="Off" />
...@@ -440,4 +440,23 @@ ...@@ -440,4 +440,23 @@
440 </LoadGeneratorLocations> 440 </LoadGeneratorLocations>
441 </RunConfiguration> 441 </RunConfiguration>
442 </RunConfigurations> 442 </RunConfigurations>
443 <LoadTestPlugins>
444 <LoadTestPlugin Classname="LIL_VSTT_Plugins.ServiceManagerPlugin, LIL_VSTT_Plugins, Version=1.3.0.0, Culture=neutral, PublicKeyToken=null" DisplayName="Service Manager Config" Description="(C) Copyright 2015 LIGHTS IN LINE AB&#xD;&#xA;Sätter config värden i Service Manager instansen för hela loadtestet. Finns även som WebTestPlugin som enbart slår på det webtestet.">
445 <RuleParameters>
446 <RuleParameter Name="exp100" Value="True" />
447 <RuleParameter Name="maxIdle" Value="100" />
448 <RuleParameter Name="DnsRefreshTimeout" Value="120" />
449 <RuleParameter Name="EnableDnsRoundRobin" Value="False" />
450 <RuleParameter Name="keepAlive" Value="False" />
451 <RuleParameter Name="timeOut" Value="5000" />
452 <RuleParameter Name="interVal" Value="1000" />
453 <RuleParameter Name="useNagle" Value="False" />
454 <RuleParameter Name="useTls12" Value="False" />
455 <RuleParameter Name="useTls11" Value="False" />
456 <RuleParameter Name="useTls10" Value="True" />
457 <RuleParameter Name="useSsl3" Value="False" />
458 <RuleParameter Name="useCrl" Value="False" />
459 </RuleParameters>
460 </LoadTestPlugin>
461 </LoadTestPlugins>
443 </LoadTest> 462 </LoadTest>
...\ No newline at end of file ...\ No newline at end of file
......
...@@ -86,6 +86,15 @@ ...@@ -86,6 +86,15 @@
86 <None Include="LoadTest4.loadtest"> 86 <None Include="LoadTest4.loadtest">
87 <CopyToOutputDirectory>Always</CopyToOutputDirectory> 87 <CopyToOutputDirectory>Always</CopyToOutputDirectory>
88 </None> 88 </None>
89 <None Include="LoadTest6.loadtest">
90 <CopyToOutputDirectory>Always</CopyToOutputDirectory>
91 </None>
92 <Content Include="UserdataFew.csv">
93 <CopyToOutputDirectory>Always</CopyToOutputDirectory>
94 </Content>
95 <None Include="WebTest2.webtest">
96 <CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
97 </None>
89 <None Include="WebTest22.webtest"> 98 <None Include="WebTest22.webtest">
90 <CopyToOutputDirectory>Always</CopyToOutputDirectory> 99 <CopyToOutputDirectory>Always</CopyToOutputDirectory>
91 </None> 100 </None>
...@@ -93,19 +102,16 @@ ...@@ -93,19 +102,16 @@
93 <CopyToOutputDirectory>Always</CopyToOutputDirectory> 102 <CopyToOutputDirectory>Always</CopyToOutputDirectory>
94 </None> 103 </None>
95 <None Include="WebTest6.webtest"> 104 <None Include="WebTest6.webtest">
96 <SubType>Designer</SubType>
97 <CopyToOutputDirectory>Always</CopyToOutputDirectory> 105 <CopyToOutputDirectory>Always</CopyToOutputDirectory>
98 </None> 106 </None>
99 <None Include="WebTest5.webtest"> 107 <None Include="WebTest5.webtest">
100 <SubType>Designer</SubType>
101 <CopyToOutputDirectory>Always</CopyToOutputDirectory> 108 <CopyToOutputDirectory>Always</CopyToOutputDirectory>
102 </None> 109 </None>
103 <None Include="WebTest4.webtest"> 110 <None Include="WebTest4.webtest">
104 <CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory> 111 <CopyToOutputDirectory>Always</CopyToOutputDirectory>
105 <SubType>Designer</SubType>
106 </None> 112 </None>
107 <None Include="WebTest3.webtest"> 113 <None Include="WebTest3.webtest">
108 <CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory> 114 <CopyToOutputDirectory>Always</CopyToOutputDirectory>
109 </None> 115 </None>
110 <Content Include="Userdata.csv"> 116 <Content Include="Userdata.csv">
111 <CopyToOutputDirectory>Always</CopyToOutputDirectory> 117 <CopyToOutputDirectory>Always</CopyToOutputDirectory>
...@@ -113,6 +119,15 @@ ...@@ -113,6 +119,15 @@
113 <None Include="WebTest1.webtest"> 119 <None Include="WebTest1.webtest">
114 <CopyToOutputDirectory>Always</CopyToOutputDirectory> 120 <CopyToOutputDirectory>Always</CopyToOutputDirectory>
115 </None> 121 </None>
122 <None Include="WebTest7 - Copy.webtest">
123 <CopyToOutputDirectory>Always</CopyToOutputDirectory>
124 </None>
125 <None Include="WebTest7.webtest">
126 <CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
127 </None>
128 <None Include="WebTest8.webtest">
129 <CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
130 </None>
116 </ItemGroup> 131 </ItemGroup>
117 <ItemGroup> 132 <ItemGroup>
118 <ProjectReference Include="..\LIL_VSTT_Plugins\LIL_VSTT_Plugins.csproj"> 133 <ProjectReference Include="..\LIL_VSTT_Plugins\LIL_VSTT_Plugins.csproj">
......
...@@ -88,5 +88,25 @@ namespace TestProject1 ...@@ -88,5 +88,25 @@ namespace TestProject1
88 if (inLoadTest) TestContext.EndTimer("UnitTestTransaction1"); 88 if (inLoadTest) TestContext.EndTimer("UnitTestTransaction1");
89 89
90 } 90 }
91
92 [TestMethod]
93 public void GereratePnum()
94 {
95 String fromDateStr = "1950-01-01";
96 String toDateStr = "1990-01-01";
97
98 DateTime fDate = DateTime.Parse(fromDateStr);
99 DateTime tDate = DateTime.Parse(toDateStr);
100
101 int numDays = (int)tDate.Subtract(fDate).TotalDays;
102
103 Random rnd = new Random();
104
105 DateTime newDate = fDate.AddDays(rnd.Next(numDays));
106
107 string newDateStr = newDate.ToString("yyyyMMdd") + "-" + rnd.Next(999).ToString();
108
109 System.Console.WriteLine("Personnummer: " + newDateStr);
110 }
91 } 111 }
92 } 112 }
......
1 UserName
2 user1
3 user2
4 user3
...\ No newline at end of file ...\ No newline at end of file
1 <?xml version="1.0" encoding="utf-8"?> 1 <?xml version="1.0" encoding="utf-8"?>
2 <WebTest Name="WebTest1" Id="c649760b-6dd8-4210-8a6d-3c6596d08668" Owner="" Priority="2147483647" Enabled="True" CssProjectStructure="" CssIteration="" Timeout="0" WorkItemIds="" xmlns="http://microsoft.com/schemas/VisualStudio/TeamTest/2010" Description="" CredentialUserName="" CredentialPassword="" PreAuthenticate="True" Proxy="" StopOnError="False" RecordedResultFile="WebTest1.a5a27e2d-474c-43bb-be4d-1b12e85851a0.rec.webtestresult"> 2 <WebTest Name="WebTest1" Id="c649760b-6dd8-4210-8a6d-3c6596d08668" Owner="" Priority="2147483647" Enabled="True" CssProjectStructure="" CssIteration="" Timeout="0" WorkItemIds="" xmlns="http://microsoft.com/schemas/VisualStudio/TeamTest/2010" Description="" CredentialUserName="" CredentialPassword="" PreAuthenticate="True" Proxy="default" StopOnError="False" RecordedResultFile="WebTest1.a5a27e2d-474c-43bb-be4d-1b12e85851a0.rec.webtestresult" ResultsLocale="">
3 <Items> 3 <Items>
4 <Request Method="POST" Version="1.1" Url="http://www.lil.nu/" ThinkTime="0" Timeout="300" ParseDependentRequests="True" FollowRedirects="True" RecordResult="True" Cache="False" ResponseTimeGoal="0" Encoding="utf-8" ExpectedHttpStatusCode="0" ExpectedResponseUrl="" ReportingName=""> 4 <Request Method="POST" Guid="e57c04e5-b0f0-497a-bb41-3d4f42ea39cd" Version="1.1" Url="http://www.lil.nu/" ThinkTime="0" Timeout="300" ParseDependentRequests="True" FollowRedirects="True" RecordResult="True" Cache="False" ResponseTimeGoal="0" Encoding="utf-8" ExpectedHttpStatusCode="0" ExpectedResponseUrl="" ReportingName="" IgnoreHttpStatusCode="False">
5 <Headers> 5 <RequestPlugins>
6 <Header Name="Username" Value="{{DataSource1.Userdata#csv.UserName}}" /> 6 <RequestPlugin Classname="LIL_VSTT_Plugins.ZipFileUploadBeforePost, LIL_VSTT_Plugins, Version=1.3.0.0, Culture=neutral, PublicKeyToken=null" DisplayName="Zip File Upload" Description="Creates an ZIP archive of each of the files to be uploaded using the files name and adding .zip. Warning, uses %TEMP% for temp storage." />
7 </Headers> 7 </RequestPlugins>
8 <ExtractionRules>
9 <ExtractionRule Classname="LIL_VSTT_Plugins.NestedExtractionRule, LIL_VSTT_Plugins, Version=1.0.0.1, Culture=neutral, PublicKeyToken=null" VariableName="TableRowTest" DisplayName="Nested Extraction" Description="(C) Copyright 2011 LIGHTS IN LINE AB&#xD;&#xA;Kombination av två extractions där den andra söker i resultatet av den första.">
10 <RuleParameters>
11 <RuleParameter Name="Start1" Value="&lt;table width=&quot;100%&quot;" />
12 <RuleParameter Name="End1" Value="&lt;/tr&gt;&lt;/table&gt;" />
13 <RuleParameter Name="Start2" Value="&lt;td id=&quot;start&quot; class=&quot;" />
14 <RuleParameter Name="End2" Value="&quot; onMouseOver" />
15 </RuleParameters>
16 </ExtractionRule>
17 </ExtractionRules>
18 <FormPostHttpBody> 8 <FormPostHttpBody>
19 <FormPostParameter Name="TestParam" Value="LORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRR" RecordedValue="" CorrelationBinding="" UrlEncode="True" /> 9 <FileUploadParameter Name="file" FileName="V:\projekt\2017\idag\data\generated-aug14\generated-files\out\large0\0large.xml" ContentType="application/octet-stream" GenerateUniqueName="False" UseGuids="False" FileUploadName="0large.xml" HtmlEncodeFileName="True" />
10 <FormPostParameter Name="TestParam" Value="0" RecordedValue="" CorrelationBinding="" UrlEncode="True" />
20 </FormPostHttpBody> 11 </FormPostHttpBody>
21 </Request> 12 </Request>
22 </Items> 13 </Items>
...@@ -27,14 +18,4 @@ ...@@ -27,14 +18,4 @@
27 </Tables> 18 </Tables>
28 </DataSource> 19 </DataSource>
29 </DataSources> 20 </DataSources>
30 <WebTestPlugins>
31 <WebTestPlugin Classname="LIL_VSTT_Plugins.UniqueOnce, LIL_VSTT_Plugins, Version=1.0.0.1, Culture=neutral, PublicKeyToken=null" DisplayName="Datasource Unique Once" Description="(C) Copyright 2011 LIGHTS IN LINE AB&#xD;&#xA;OBS! Läs hela! Styr datasource selection till att endast göras en gång per iteration. Du måste ändra i din datasource Access Metod till Do Not Move Automatically! WebTestUserId används för att välja rad. Använder de datasources som finns definerade i webtestet. Använd test mix based on users starting tests samt 0 percent new users.">
32 <RuleParameters>
33 <RuleParameter Name="DataSourceName" Value="DataSource1" />
34 <RuleParameter Name="DataSourceTableName" Value="Userdata#csv" />
35 <RuleParameter Name="Offset" Value="0" />
36 </RuleParameters>
37 </WebTestPlugin>
38 <WebTestPlugin Classname="LIL_VSTT_Plugins.myPlugin, LIL_VSTT_Plugins, Version=1.0.0.1, Culture=neutral, PublicKeyToken=null" DisplayName="Expect 100 Off" Description="(C) Copyright 2011 LIGHTS IN LINE AB&#xD;&#xA;Stänger av .NET expected-100 headern i posts." />
39 </WebTestPlugins>
40 </WebTest> 21 </WebTest>
...\ No newline at end of file ...\ No newline at end of file
......
1 <?xml version="1.0" encoding="utf-8"?>
2 <WebTest Name="WebTest2" Id="97416298-3dc2-4f16-a28f-75470ee03ec8" Owner="" Priority="2147483647" Enabled="True" CssProjectStructure="" CssIteration="" Timeout="0" WorkItemIds="" xmlns="http://microsoft.com/schemas/VisualStudio/TeamTest/2010" Description="" CredentialUserName="" CredentialPassword="" PreAuthenticate="True" Proxy="default" StopOnError="False" RecordedResultFile="" ResultsLocale="">
3 <Items>
4 <Request Method="GET" Guid="b9a8ca3a-ceb3-4531-b567-9ee2dbd79c10" Version="1.1" Url="https://ort-api.dev.minpension.se/medborgare/197503140555" ThinkTime="0" Timeout="300" ParseDependentRequests="True" FollowRedirects="True" RecordResult="True" Cache="False" ResponseTimeGoal="0" Encoding="utf-8" ExpectedHttpStatusCode="0" ExpectedResponseUrl="" ReportingName="" IgnoreHttpStatusCode="False" />
5 </Items>
6 <WebTestPlugins>
7 <WebTestPlugin Classname="LIL_VSTT_Plugins.ClientCertificatePlugin, LIL_VSTT_Plugins, Version=1.3.0.0, Culture=neutral, PublicKeyToken=null" DisplayName="Client Certificate" Description="(C) Copyright 2016 LIGHTS IN LINE AB&#xD;&#xA;Sätter webtestet att använda ett specifikt client cert för SSL. Certifikatet installeras automatiskt i Windows User Certificate Store.">
8 <RuleParameters>
9 <RuleParameter Name="pCertificatePath" Value="C:\Temp\lightsinline.pfx" />
10 <RuleParameter Name="pCertificatePathParameter" Value="" />
11 <RuleParameter Name="pCertificatePassword" Value="ensfyr" />
12 <RuleParameter Name="pCertificatePasswordParameter" Value="" />
13 <RuleParameter Name="pDebug" Value="False" />
14 <RuleParameter Name="pInstallTrusted" Value="True" />
15 <RuleParameter Name="pInstallUntrusted" Value="True" />
16 </RuleParameters>
17 </WebTestPlugin>
18 </WebTestPlugins>
19 </WebTest>
...\ No newline at end of file ...\ No newline at end of file
1 <?xml version="1.0" encoding="utf-8"?> 1 <?xml version="1.0" encoding="utf-8"?>
2 <WebTest Name="WebTest3" Id="f36a8078-a24b-41a0-ac62-678ed0b4ac50" Owner="" Priority="2147483647" Enabled="True" CssProjectStructure="" CssIteration="" Timeout="0" WorkItemIds="" xmlns="http://microsoft.com/schemas/VisualStudio/TeamTest/2010" Description="" CredentialUserName="" CredentialPassword="" PreAuthenticate="True" Proxy="default" StopOnError="False" RecordedResultFile="" ResultsLocale=""> 2 <WebTest Name="WebTest3" Id="f36a8078-a24b-41a0-ac62-678ed0b4ac50" Owner="" Priority="2147483647" Enabled="True" CssProjectStructure="" CssIteration="" Timeout="0" WorkItemIds="" xmlns="http://microsoft.com/schemas/VisualStudio/TeamTest/2010" Description="" CredentialUserName="" CredentialPassword="" PreAuthenticate="True" Proxy="proxyvip:8080" StopOnError="False" RecordedResultFile="" ResultsLocale="">
3 <Items> 3 <Items>
4 <Request Method="GET" Guid="359feba0-105f-4dbf-a630-32d640c10817" Version="1.1" Url="https://new.vinnarum.com/" ThinkTime="0" Timeout="300" ParseDependentRequests="False" FollowRedirects="True" RecordResult="True" Cache="False" ResponseTimeGoal="0" Encoding="utf-8" ExpectedHttpStatusCode="0" ExpectedResponseUrl="" ReportingName="" IgnoreHttpStatusCode="False" /> 4 <Request Method="GET" Guid="359feba0-105f-4dbf-a630-32d640c10817" Version="1.1" Url="https://www.lightsinline.se/" ThinkTime="0" Timeout="300" ParseDependentRequests="True" FollowRedirects="True" RecordResult="True" Cache="False" ResponseTimeGoal="0" Encoding="utf-8" ExpectedHttpStatusCode="0" ExpectedResponseUrl="" ReportingName="" IgnoreHttpStatusCode="False" />
5 <Request Method="GET" Guid="359feba0-105f-4dbf-a630-32d640c10817" Version="1.1" Url="https://new.vinnarum.com/" ThinkTime="0" Timeout="300" ParseDependentRequests="False" FollowRedirects="True" RecordResult="True" Cache="False" ResponseTimeGoal="0" Encoding="utf-8" ExpectedHttpStatusCode="0" ExpectedResponseUrl="" ReportingName="" IgnoreHttpStatusCode="False" /> 5 <Request Method="GET" Guid="88ecadc7-6996-40c3-b058-eb2734863145" Version="1.1" Url="https://spg21.ws1.s02.ttm.swedbank.se/" ThinkTime="0" Timeout="300" ParseDependentRequests="True" FollowRedirects="True" RecordResult="True" Cache="False" ResponseTimeGoal="0" Encoding="utf-8" ExpectedHttpStatusCode="0" ExpectedResponseUrl="" ReportingName="" IgnoreHttpStatusCode="False" />
6 <Request Method="GET" Guid="359feba0-105f-4dbf-a630-32d640c10817" Version="1.1" Url="https://new.vinnarum.com/" ThinkTime="0" Timeout="300" ParseDependentRequests="False" FollowRedirects="True" RecordResult="True" Cache="False" ResponseTimeGoal="0" Encoding="utf-8" ExpectedHttpStatusCode="0" ExpectedResponseUrl="" ReportingName="" IgnoreHttpStatusCode="False" />
7 </Items> 6 </Items>
8 <WebTestPlugins> 7 <WebTestPlugins>
9 <WebTestPlugin Classname="LIL_VSTT_Plugins.ServiceManagerWebTestPlugin, LIL_VSTT_Plugins, Version=1.3.0.0, Culture=neutral, PublicKeyToken=null" DisplayName="Service Manager Config" Description="(C) Copyright 2015 LIGHTS IN LINE AB&#xD;&#xA;Sätter config värden i Service Manager instansen för hela testet."> 8 <WebTestPlugin Classname="LIL_VSTT_Plugins.ServiceManagerWebTestPlugin, LIL_VSTT_Plugins, Version=1.3.0.0, Culture=neutral, PublicKeyToken=null" DisplayName="Service Manager Config" Description="(C) Copyright 2015 LIGHTS IN LINE AB&#xD;&#xA;Sätter config värden i Service Manager instansen för hela testet.">
...@@ -14,12 +13,19 @@ ...@@ -14,12 +13,19 @@
14 <RuleParameter Name="timeOut" Value="5000" /> 13 <RuleParameter Name="timeOut" Value="5000" />
15 <RuleParameter Name="interVal" Value="1000" /> 14 <RuleParameter Name="interVal" Value="1000" />
16 <RuleParameter Name="useNagle" Value="False" /> 15 <RuleParameter Name="useNagle" Value="False" />
17 <RuleParameter Name="useTls12" Value="True" /> 16 <RuleParameter Name="useTls12" Value="False" />
17 <RuleParameter Name="useProxy" Value="True" />
18 <RuleParameter Name="proxyOverride" Value="True" />
19 <RuleParameter Name="proxyBypassLocal" Value="False" />
20 <RuleParameter Name="proxyBypass" Value="ttm.swedbank.se" />
21 <RuleParameter Name="proxyURI" Value="http://proxyvip:8080" />
22 <RuleParameter Name="proxyUser" Value="p950gec" />
23 <RuleParameter Name="proxyPass" Value="p950gec" />
18 </RuleParameters> 24 </RuleParameters>
19 </WebTestPlugin> 25 </WebTestPlugin>
20 <WebTestPlugin Classname="LIL_VSTT_Plugins.dataGenInteger, LIL_VSTT_Plugins, Version=1.3.0.0, Culture=neutral, PublicKeyToken=null" DisplayName="Data Generator Integer" Description="(C) Copyright 2016 LIGHTS IN LINE AB&#xD;&#xA;Genererar en slumpad integer som context parameter"> 26 <WebTestPlugin Classname="LIL_VSTT_Plugins.dataGenInteger, LIL_VSTT_Plugins, Version=1.3.0.0, Culture=neutral, PublicKeyToken=null" DisplayName="Data Generator Integer" Description="(C) Copyright 2016 LIGHTS IN LINE AB&#xD;&#xA;Genererar en slumpad integer som context parameter">
21 <RuleParameters> 27 <RuleParameters>
22 <RuleParameter Name="ParamNameVal" Value="TimeStampParameter1" /> 28 <RuleParameter Name="ParamNameVal" Value="RandomInteger" />
23 <RuleParameter Name="IntegerMin" Value="0" /> 29 <RuleParameter Name="IntegerMin" Value="0" />
24 <RuleParameter Name="IntegerMax" Value="100" /> 30 <RuleParameter Name="IntegerMax" Value="100" />
25 <RuleParameter Name="PrePageVal" Value="True" /> 31 <RuleParameter Name="PrePageVal" Value="True" />
...@@ -27,5 +33,11 @@ ...@@ -27,5 +33,11 @@
27 <RuleParameter Name="PreRequestVal" Value="False" /> 33 <RuleParameter Name="PreRequestVal" Value="False" />
28 </RuleParameters> 34 </RuleParameters>
29 </WebTestPlugin> 35 </WebTestPlugin>
36 <WebTestPlugin Classname="LIL_VSTT_Plugins.WebTestDependentRegexFilter, LIL_VSTT_Plugins, Version=1.3.0.0, Culture=neutral, PublicKeyToken=null" DisplayName="Dynamisk URL Regex filter" Description="(C) Copyright 2011 LIGHTS IN LINE AB&#xD;&#xA;Filter för att ignorera vissa objekt på websidor så de inte laddas ner automatiskt.">
37 <RuleParameters>
38 <RuleParameter Name="FilterString" Value="stat.swedbank.se" />
39 <RuleParameter Name="Exclude" Value="True" />
40 </RuleParameters>
41 </WebTestPlugin>
30 </WebTestPlugins> 42 </WebTestPlugins>
31 </WebTest> 43 </WebTest>
...\ No newline at end of file ...\ No newline at end of file
......
1 <?xml version="1.0" encoding="utf-8"?> 1 <?xml version="1.0" encoding="utf-8"?>
2 <WebTest Name="WebTest6" Id="122acb09-9cc2-4809-903b-a7fee7f1e5c3" Owner="" Priority="2147483647" Enabled="True" CssProjectStructure="" CssIteration="" Timeout="0" WorkItemIds="" xmlns="http://microsoft.com/schemas/VisualStudio/TeamTest/2010" Description="" CredentialUserName="" CredentialPassword="" PreAuthenticate="True" Proxy="default" StopOnError="False" RecordedResultFile="WebTest5.10d2bf93-1ab4-4a60-b4ff-f80b74d5d7e4.rec.webtestresult" ResultsLocale=""> 2 <WebTest Name="WebTest6" Id="122acb09-9cc2-4809-903b-a7fee7f1e5c3" Owner="" Priority="2147483647" Enabled="True" CssProjectStructure="" CssIteration="" Timeout="0" WorkItemIds="" xmlns="http://microsoft.com/schemas/VisualStudio/TeamTest/2010" Description="" CredentialUserName="" CredentialPassword="" PreAuthenticate="True" Proxy="default" StopOnError="False" RecordedResultFile="WebTest5.10d2bf93-1ab4-4a60-b4ff-f80b74d5d7e4.rec.webtestresult" ResultsLocale="">
3 <Items> 3 <Items>
4 <Request Method="GET" Guid="57c5c6f4-6ec7-461e-85f2-5ff56e9a7a5f" Version="1.1" Url="https://u30015:45123/aimk12/KontrolluppgiftServiceV2TO/KontrolluppgiftServiceV2TO" ThinkTime="0" Timeout="300" ParseDependentRequests="True" FollowRedirects="True" RecordResult="True" Cache="False" ResponseTimeGoal="0" Encoding="utf-8" ExpectedHttpStatusCode="0" ExpectedResponseUrl="" ReportingName="" IgnoreHttpStatusCode="False"> 4 <Request Method="GET" Guid="57c5c6f4-6ec7-461e-85f2-5ff56e9a7a5f" Version="1.1" Url="https://ssokpr.rsv.se/" ThinkTime="0" Timeout="300" ParseDependentRequests="True" FollowRedirects="False" RecordResult="True" Cache="False" ResponseTimeGoal="0" Encoding="utf-8" ExpectedHttpStatusCode="0" ExpectedResponseUrl="" ReportingName="" IgnoreHttpStatusCode="False" />
5 <Headers> 5 <TransactionTimer Name="Transaction1">
6 <Header Name="Accept" Value="application/json, text/plain, */*" /> 6 <Items>
7 </Headers> 7 <Request Method="GET" Guid="57c5c6f4-6ec7-461e-85f2-5ff56e9a7a5f" Version="1.1" Url="https://ssokpr.rsv.se/" ThinkTime="0" Timeout="300" ParseDependentRequests="True" FollowRedirects="False" RecordResult="True" Cache="False" ResponseTimeGoal="0" Encoding="utf-8" ExpectedHttpStatusCode="0" ExpectedResponseUrl="" ReportingName="" IgnoreHttpStatusCode="False" />
8 </Request> 8 </Items>
9 </TransactionTimer>
10 <TransactionTimer Name="Transaction2">
11 <Items>
12 <Request Method="GET" Guid="57c5c6f4-6ec7-461e-85f2-5ff56e9a7a5f" Version="1.1" Url="https://ssokpr.rsv.se/" ThinkTime="0" Timeout="300" ParseDependentRequests="True" FollowRedirects="False" RecordResult="True" Cache="False" ResponseTimeGoal="0" Encoding="utf-8" ExpectedHttpStatusCode="0" ExpectedResponseUrl="" ReportingName="" IgnoreHttpStatusCode="False" />
13 <TransactionTimer Name="Transaction3">
14 <Items>
15 <Request Method="GET" Guid="57c5c6f4-6ec7-461e-85f2-5ff56e9a7a5f" Version="1.1" Url="https://ssokpr.rsv.se/" ThinkTime="0" Timeout="300" ParseDependentRequests="True" FollowRedirects="False" RecordResult="True" Cache="False" ResponseTimeGoal="0" Encoding="utf-8" ExpectedHttpStatusCode="0" ExpectedResponseUrl="" ReportingName="" IgnoreHttpStatusCode="False" />
16 </Items>
17 </TransactionTimer>
18 </Items>
19 </TransactionTimer>
9 </Items> 20 </Items>
10 <ContextParameters>
11 <ContextParameter Name="Valid-PEM-Path" Value="U:\projekt\MjukaCertifikat\Interna_Certifikat_Okt_2016\8946019907112000070.pem" />
12 </ContextParameters>
13 <ValidationRules> 21 <ValidationRules>
14 <ValidationRule Classname="Microsoft.VisualStudio.TestTools.WebTesting.Rules.ValidateResponseUrl, Microsoft.VisualStudio.QualityTools.WebTestFramework, Version=10.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a" DisplayName="Response URL" Description="Validates that the response URL after redirects are followed is the same as the recorded response URL. QueryString parameters are ignored." Level="Low" ExectuionOrder="BeforeDependents" /> 22 <ValidationRule Classname="Microsoft.VisualStudio.TestTools.WebTesting.Rules.ValidateResponseUrl, Microsoft.VisualStudio.QualityTools.WebTestFramework, Version=10.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a" DisplayName="Response URL" Description="Validates that the response URL after redirects are followed is the same as the recorded response URL. QueryString parameters are ignored." Level="Low" ExectuionOrder="BeforeDependents" />
15 <ValidationRule Classname="Microsoft.VisualStudio.TestTools.WebTesting.Rules.ValidationRuleResponseTimeGoal, Microsoft.VisualStudio.QualityTools.WebTestFramework, Version=10.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a" DisplayName="Response Time Goal" Description="Validates that the response time for the request is less than or equal to the response time goal as specified on the request. Response time goals of zero will be ignored." Level="Low" ExectuionOrder="AfterDependents"> 23 <ValidationRule Classname="Microsoft.VisualStudio.TestTools.WebTesting.Rules.ValidationRuleResponseTimeGoal, Microsoft.VisualStudio.QualityTools.WebTestFramework, Version=10.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a" DisplayName="Response Time Goal" Description="Validates that the response time for the request is less than or equal to the response time goal as specified on the request. Response time goals of zero will be ignored." Level="Low" ExectuionOrder="AfterDependents">
...@@ -27,18 +35,15 @@ ...@@ -27,18 +35,15 @@
27 <RuleParameter Name="timeOut" Value="5000" /> 35 <RuleParameter Name="timeOut" Value="5000" />
28 <RuleParameter Name="interVal" Value="1000" /> 36 <RuleParameter Name="interVal" Value="1000" />
29 <RuleParameter Name="useNagle" Value="False" /> 37 <RuleParameter Name="useNagle" Value="False" />
30 <RuleParameter Name="useTls12" Value="False" /> 38 <RuleParameter Name="useTls12" Value="True" />
39 <RuleParameter Name="proxyOverride" Value="True" />
31 </RuleParameters> 40 </RuleParameters>
32 </WebTestPlugin> 41 </WebTestPlugin>
33 <WebTestPlugin Classname="LIL_VSTT_Plugins.ClientCertificatePlugin, LIL_VSTT_Plugins, Version=1.3.0.0, Culture=neutral, PublicKeyToken=null" DisplayName="Client Certificate" Description="(C) Copyright 2016 LIGHTS IN LINE AB&#xD;&#xA;Sätter webtestet att använda ett specifikt client cert för SSL. Certifikatet behöver inte installeras i certstore först."> 42 <WebTestPlugin Classname="LIL_VSTT_Plugins.SetTestInfoAsHeader, LIL_VSTT_Plugins, Version=1.3.0.0, Culture=neutral, PublicKeyToken=null" DisplayName="Set Test Info As Header" Description="(C) Copyright 2017 LIGHTS IN LINE AB&#xD;&#xA;Adds name information from transactions, pages, tests into a header in requests so that it can be used to group upon in tools like AppDynamics, DynaTrace, etc.">
34 <RuleParameters> 43 <RuleParameters>
35 <RuleParameter Name="pCertificatePath" Value="" /> 44 <RuleParameter Name="HeaderName" Value="X-Sipoz" />
36 <RuleParameter Name="pCertificatePathParameter" Value="Valid-PEM-Path" /> 45 <RuleParameter Name="onTransaction" Value="True" />
37 <RuleParameter Name="pCertificatePassword" Value="" /> 46 <RuleParameter Name="onTest" Value="True" />
38 <RuleParameter Name="pCertificatePasswordParameter" Value="" />
39 <RuleParameter Name="pDebug" Value="True" />
40 <RuleParameter Name="pInstallTrusted" Value="True" />
41 <RuleParameter Name="pInstallUntrusted" Value="False" />
42 </RuleParameters> 47 </RuleParameters>
43 </WebTestPlugin> 48 </WebTestPlugin>
44 </WebTestPlugins> 49 </WebTestPlugins>
......
1 <?xml version="1.0" encoding="utf-8"?>
2 <WebTest Name="WebTest7 - Copy" Id="da8233d7-4410-4404-b5f9-76bdf9cf36f4" Owner="" Priority="2147483647" Enabled="True" CssProjectStructure="" CssIteration="" Timeout="0" WorkItemIds="" xmlns="http://microsoft.com/schemas/VisualStudio/TeamTest/2010" Description="" CredentialUserName="" CredentialPassword="" PreAuthenticate="True" Proxy="default" StopOnError="False" RecordedResultFile="" ResultsLocale="">
3 <Items>
4 <Request Method="GET" Guid="3d1817e4-021d-4bfc-b6d7-dfd8ffa7febf" Version="1.1" Url="https://www.lightsinline.se/" ThinkTime="1" Timeout="300" ParseDependentRequests="False" FollowRedirects="True" RecordResult="True" Cache="False" ResponseTimeGoal="0" Encoding="utf-8" ExpectedHttpStatusCode="0" ExpectedResponseUrl="" ReportingName="" IgnoreHttpStatusCode="False" />
5 </Items>
6 <WebTestPlugins>
7 <WebTestPlugin Classname="LIL_VSTT_Plugins.SetRequestThinkTime, LIL_VSTT_Plugins, Version=1.3.0.0, Culture=neutral, PublicKeyToken=null" DisplayName="Set Request Think Time" Description="Changes the thinktime on requests with a set thinktime over 0 to the value of the ThinkTime context parameter">
8 <RuleParameters>
9 <RuleParameter Name="DebugMode" Value="True" />
10 </RuleParameters>
11 </WebTestPlugin>
12 </WebTestPlugins>
13 </WebTest>
...\ No newline at end of file ...\ No newline at end of file
1 <?xml version="1.0" encoding="utf-8"?>
2 <WebTest Name="WebTest7" Id="b81f6de6-5ea8-4211-ac7b-3c0272942501" Owner="" Priority="2147483647" Enabled="True" CssProjectStructure="" CssIteration="" Timeout="0" WorkItemIds="" xmlns="http://microsoft.com/schemas/VisualStudio/TeamTest/2010" Description="" CredentialUserName="" CredentialPassword="" PreAuthenticate="True" Proxy="default" StopOnError="False" RecordedResultFile="" ResultsLocale="">
3 <Items>
4 <Request Method="GET" Guid="3d1817e4-021d-4bfc-b6d7-dfd8ffa7febf" Version="1.1" Url="https://www.lightsinline.se/" ThinkTime="1" Timeout="300" ParseDependentRequests="False" FollowRedirects="True" RecordResult="True" Cache="False" ResponseTimeGoal="0" Encoding="utf-8" ExpectedHttpStatusCode="0" ExpectedResponseUrl="" ReportingName="" IgnoreHttpStatusCode="False" />
5 </Items>
6 <WebTestPlugins>
7 <WebTestPlugin Classname="LIL_VSTT_Plugins.SetRequestThinkTime, LIL_VSTT_Plugins, Version=1.3.0.0, Culture=neutral, PublicKeyToken=null" DisplayName="Set Request Think Time" Description="Changes the thinktime on requests with a set thinktime over 0 to the value of the ThinkTime context parameter">
8 <RuleParameters>
9 <RuleParameter Name="DebugMode" Value="True" />
10 </RuleParameters>
11 </WebTestPlugin>
12 </WebTestPlugins>
13 </WebTest>
...\ No newline at end of file ...\ No newline at end of file
1 <?xml version="1.0" encoding="utf-8"?>
2 <WebTest Name="WebTest8" Id="bac430ba-6ffc-4989-a29b-d9425412a248" Owner="" Priority="2147483647" Enabled="True" CssProjectStructure="" CssIteration="" Timeout="0" WorkItemIds="" xmlns="http://microsoft.com/schemas/VisualStudio/TeamTest/2010" Description="" CredentialUserName="" CredentialPassword="" PreAuthenticate="True" Proxy="default" StopOnError="False" RecordedResultFile="" ResultsLocale="">
3 <Items>
4 <Request Method="GET" Guid="98c3ac11-a7d8-4267-ad44-075ad706a99b" Version="1.1" Url="http://na28133.rsva.se:8080/SiteScope/servlet/Main" ThinkTime="1" Timeout="300" ParseDependentRequests="False" FollowRedirects="True" RecordResult="True" Cache="False" ResponseTimeGoal="0" Encoding="utf-8" ExpectedHttpStatusCode="0" ExpectedResponseUrl="" ReportingName="" IgnoreHttpStatusCode="False" />
5 </Items>
6 </WebTest>
...\ No newline at end of file ...\ No newline at end of file
1 <?xml version="1.0" encoding="UTF-8"?>
2 <TestSettings name="WIN-62BJ8PRQ3MQ" id="99c45dea-8316-4172-81f8-090cfba87c3f" xmlns="http://microsoft.com/schemas/VisualStudio/TeamTest/2010">
3 <Description>These are default test settings for a local test run.</Description>
4 <Deployment>
5 <DeploymentItem filename="TestProject1\Userdata.csv" />
6 </Deployment>
7 <RemoteController name="WIN-62BJ8PRQ3MQ.home" />
8 <Execution location="Remote" hostProcessPlatform="MSIL">
9 <TestTypeSpecific>
10 <UnitTestRunConfig testTypeId="13cdc9d9-ddb5-4fa4-a97d-d965ccfc6d4b">
11 <AssemblyResolution>
12 <TestDirectory useLoadContext="true" />
13 </AssemblyResolution>
14 </UnitTestRunConfig>
15 <WebTestRunConfiguration testTypeId="4e7599fa-5ecb-43e9-a887-cd63cf72d207">
16 <Browser name="Internet Explorer 9.0" MaxConnections="6">
17 <Headers>
18 <Header name="User-Agent" value="Mozilla/5.0 (compatible; MSIE 9.0; Windows NT 6.1; Trident/5.0)" />
19 <Header name="Accept" value="*/*" />
20 <Header name="Accept-Language" value="{{$IEAcceptLanguage}}" />
21 <Header name="Accept-Encoding" value="GZIP" />
22 </Headers>
23 </Browser>
24 </WebTestRunConfiguration>
25 </TestTypeSpecific>
26 <AgentRule name="AllAgentsDefaultRole">
27 </AgentRule>
28 </Execution>
29 <Properties />
30 </TestSettings>
...\ No newline at end of file ...\ No newline at end of file