Commit 62c22eb9 62c22eb989c99191489257825716b4e5f178ced2 by Christian Gerdes
2 parents b3649492 51d0a85f
......@@ -6,10 +6,10 @@ MinimumVisualStudioVersion = 10.0.40219.1
Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "Solution Items", "Solution Items", "{8ADAFB91-C10D-42C8-8499-30B3692C27F3}"
ProjectSection(SolutionItems) = preProject
LICENSE = LICENSE
LIL_VSTT_Plugins.vsmdi = LIL_VSTT_Plugins.vsmdi
Local.testsettings = Local.testsettings
Notes.md = Notes.md
README.md = README.md
WIN-62BJ8PRQ3MQ.testsettings = WIN-62BJ8PRQ3MQ.testsettings
EndProjectSection
EndProject
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;
namespace LIL_VSTT_Plugins
{
[DisplayName("Stop Here After")]
[Description("Add this plugin to a request in order to force the webtest to stop after the request has finished.")]
public class StopHereAfter : WebTestRequestPlugin
{
[DisplayName("Fail the test"), DefaultValue(true), Description("If set to true will fail the test iteration.")]
public bool FailTest { get; set; }
public override void PostRequest(object sender, PostRequestEventArgs e)
{
base.PostRequest(sender, e);
e.WebTest.AddCommentToResult("STOP HERE AFTER: WebTest will stop after the next request because of Request Plugin 'Stop Here After' was added to it.");
if (FailTest)
{
e.WebTest.Outcome = Outcome.Fail;
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.");
}
e.WebTest.Stop();
}
}
[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.")]
public class ZipFileUploadBeforePost : WebTestRequestPlugin
{
......@@ -91,16 +110,30 @@ namespace LIL_VSTT_Plugins
[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.")]
public class ThinkTimeEmulator10190 : ILoadTestPlugin
{
[DisplayName("Think Time"), DefaultValue(0), Description("The Think Time to be used seconds. Default is 0.")]
[DisplayName("ThinkTime"), DefaultValue(0), Description("The Think Time to be used seconds. Default is 0.")]
public int ThinkTime { get; set; }
[DisplayName("Minimum"), DefaultValue(10), Description("Percentage of ThinkTime to be used as the minimum value")]
public int Min { get; set; }
[DisplayName("Maximum"), DefaultValue(190), Description("Percentage of ThinkTime to be used as the maximum value")]
public int Max { get; set; }
[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")]
public string RegExTestName { get; set; }
[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")]
public string RegExScenarioName { get; set; }
//store the load test object.
LoadTest mLoadTest;
Random rnd = new Random();
Regex rxTestName = null;
Regex rxScenarioName = null;
public void Initialize(LoadTest loadTest)
{
mLoadTest = loadTest;
if(!String.IsNullOrEmpty(RegExTestName))
rxTestName = new Regex(RegExTestName);
if (!String.IsNullOrEmpty(RegExScenarioName))
rxScenarioName = new Regex(RegExScenarioName);
//connect to the TestStarting event.
mLoadTest.TestStarting += new EventHandler<TestStartingEventArgs>(mLoadTest_TestStarting);
......@@ -109,10 +142,16 @@ namespace LIL_VSTT_Plugins
void mLoadTest_TestStarting(object sender, TestStartingEventArgs e)
{
if (rxTestName != null && rxTestName.IsMatch(e.TestName) != true) return;
if (rxScenarioName != null && rxScenarioName.IsMatch(e.ScenarioName) != true) return;
// Set the think time parameter in the tests context to a new value
int min = ThinkTime/10;
int max = ThinkTime*2 - min;
e.TestContextProperties.Add("ThinkTime", rnd.Next(min, max));
double tt = ThinkTime;
double min = Min / 100d;
min = tt * min;
double max = Max / 100d;
max = tt * max;
e.TestContextProperties.Add("ThinkTime", rnd.Next((int)min, (int)max));
}
}
......
......@@ -17,6 +17,7 @@ using Microsoft.VisualStudio.TestTools.LoadTesting;
using System.ComponentModel;
using System.IO;
using System.Collections.Specialized;
using System.Net;
namespace LIL_VSTT_Plugins
{
......@@ -83,35 +84,75 @@ namespace LIL_VSTT_Plugins
[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.")]
public class ServiceManagerPlugin : ILoadTestPlugin
{
[DisplayName("Use Expect 100 Behaviour"), DefaultValue(true)]
[DisplayName("Enable Expect 100 Behaviour"), DefaultValue(false)]
[Description(".Net 4.5 default is true, plugin default is false")]
public bool exp100 { get; set; }
[DisplayName("Max Connection Idle Time"), DefaultValue(100)]
[DisplayName("Connection Pool Idle Time (s)"), DefaultValue(100)]
public int maxIdle { get; set; }
[DisplayName("DNS Refresh Timeout (s)"), DefaultValue(120)]
public int DnsRefreshTimeout { get; set; }
[DisplayName("Enable DNS Round Robin"), DefaultValue(false)]
public bool EnableDnsRoundRobin { get; set; }
[Category("Transport Control")]
[DisplayName("TCP Keep Alive"), DefaultValue(false)]
public bool keepAlive { get; set; }
[Category("Transport Control")]
[DisplayName("TCP Keep Alive Timeout (ms)"), DefaultValue(5000)]
public int timeOut { get; set; }
[Category("Transport Control")]
[DisplayName("TCP Keep Alive Interval"), DefaultValue(1000)]
public int interVal { get; set; }
[Category("Transport Control")]
[DisplayName("Use Nagle Algorithm"), DefaultValue(false)]
public bool useNagle { get; set; }
[DisplayName("Force TLS 1.2"), DefaultValue(false)]
[Description("Kräver .NET 4.5 samt att TLS1.2 är aktiverat i SChannel (använd bifogad schannel_high.reg)")]
[Category("Secure Sockets")]
[DisplayName("Enable TLS 1.2"), DefaultValue(true)]
[Description(".Net 4.5 default is false, plugin default is true")]
public bool useTls12 { get; set; }
[Category("Secure Sockets")]
[DisplayName("Enable TLS 1.1"), DefaultValue(true)]
[Description(".Net 4.5 default is false, plugin default is true")]
public bool useTls11 { get; set; }
[Category("Secure Sockets")]
[DisplayName("Enable TLS 1.0"), DefaultValue(true)]
public bool useTls10 { get; set; }
[Category("Secure Sockets")]
[DisplayName("Enable SSL 3.0"), DefaultValue(false)]
public bool useSsl3 { get; set; }
[Category("Secure Sockets")]
[DisplayName("Enable CRL checks"), DefaultValue(false)]
public bool useCrl { get; set; }
public void Initialize(LoadTest loadTest)
{
System.Net.ServicePointManager.Expect100Continue = exp100;
System.Net.ServicePointManager.MaxServicePointIdleTime = maxIdle;
System.Net.ServicePointManager.SetTcpKeepAlive(keepAlive, timeOut, interVal);
System.Net.ServicePointManager.UseNagleAlgorithm = useNagle;
if (useTls12) System.Net.ServicePointManager.SecurityProtocol = System.Net.SecurityProtocolType.Tls12;
ServicePointManager.Expect100Continue = exp100;
ServicePointManager.MaxServicePointIdleTime = maxIdle * 1000;
ServicePointManager.DnsRefreshTimeout = DnsRefreshTimeout * 1000;
ServicePointManager.EnableDnsRoundRobin = EnableDnsRoundRobin;
ServicePointManager.SetTcpKeepAlive(keepAlive, timeOut, interVal);
ServicePointManager.UseNagleAlgorithm = useNagle;
//if (useTls12) System.Net.ServicePointManager.SecurityProtocol = System.Net.SecurityProtocolType.Tls12;
if (useSsl3) ServicePointManager.SecurityProtocol |= SecurityProtocolType.Ssl3;
else ServicePointManager.SecurityProtocol &= SecurityProtocolType.Ssl3;
if (useTls10) ServicePointManager.SecurityProtocol |= SecurityProtocolType.Tls;
else ServicePointManager.SecurityProtocol &= SecurityProtocolType.Tls;
if (useTls11) ServicePointManager.SecurityProtocol |= SecurityProtocolType.Tls11;
else ServicePointManager.SecurityProtocol &= SecurityProtocolType.Tls11;
if (useTls12) ServicePointManager.SecurityProtocol |= SecurityProtocolType.Tls12;
else ServicePointManager.SecurityProtocol &= SecurityProtocolType.Tls12;
ServicePointManager.CheckCertificateRevocationList = useCrl;
}
}
......@@ -146,6 +187,9 @@ namespace LIL_VSTT_Plugins
private bool myUseAutoSplit = false;
private bool myIgnoreBlanks = true;
private bool stop = false;
private int timeWait = 0;
private StringCollection myParams = new StringCollection();
private Random random = new Random();
private Dictionary<string, int> testIterations = new Dictionary<string, int>();
......@@ -262,7 +306,7 @@ namespace LIL_VSTT_Plugins
}
[DisplayName("Välj sekventiell loop?")]
[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.")]
[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")]
[DefaultValue(false)]
public bool Use_Loop
{
......@@ -270,6 +314,14 @@ namespace LIL_VSTT_Plugins
set { mySeqLoop = value; }
}
[DisplayName("OutOfTestDataException?")]
[Description("Ange true om du vill att ditt loadtest ska stoppas om testdata tar slut (och Sekventiell Loop är satt till false).")]
[DefaultValue(false)]
public bool ThrowException
{
get; set;
}
[DisplayName("Logga fungerande till fil?")]
[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.")]
[DefaultValue(false)]
......@@ -310,6 +362,7 @@ namespace LIL_VSTT_Plugins
public void Initialize(LoadTest loadTest)
{
m_loadTest = loadTest;
// Only run on specific agents if specified
if (myAgentNames.Length > 0 && !myAgentNames.ToLower().Contains(loadTest.Context.AgentName.ToLower())) return;
......@@ -318,7 +371,6 @@ namespace LIL_VSTT_Plugins
if (myParams.Count > 0)
{
m_loadTest = loadTest;
if (myUseUniqueIteration)
m_loadTest.TestStarting += new EventHandler<TestStartingEventArgs>(loadTestStartingUniqueIteration);
else if(myUseUniqueTestIteration)
......@@ -334,6 +386,18 @@ namespace LIL_VSTT_Plugins
{
m_loadTest.TestFinished += new EventHandler<TestFinishedEventArgs>(loadTestEndLogger);
}
m_loadTest.Heartbeat += new EventHandler<HeartbeatEventArgs>(loadTestHeartBeat);
}
void loadTestHeartBeat(object sender, HeartbeatEventArgs e)
{
if (stop)
{
if (timeWait > 60)
m_loadTest.Abort(new Exception("Out of test data"));
else
timeWait++;
}
}
void loadTestEndLogger(object sender, TestFinishedEventArgs e)
......@@ -468,8 +532,19 @@ namespace LIL_VSTT_Plugins
{
if (mySeqLoop)
return myParams[seqIndex % myParams.Count];
else
return myParams[myParams.Count - 1];
else {
// Handle out of testdata here
if (ThrowException)
{
foreach (LoadTestScenario s in m_loadTest.Scenarios)
{
s.CurrentLoad = 0;
}
this.stop = true;
return "OutOfData";
}
else return myParams[myParams.Count - 1];
}
}
}
......
......@@ -282,6 +282,58 @@ namespace LIL_VSTT_Plugins
}
/// <summary>
/// Loggar alla transaktioners svarstider som context parametrar
/// </summary>
[DisplayName("Set Test Info As Header")]
[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.")]
public class SetTestInfoAsHeader : WebTestPlugin
{
[DisplayName("Header Prefix")]
[Description("Prefix of the header to be added on requests")]
[DefaultValue("X-Sipoz")]
public String HeaderName { get; set; }
[DisplayName("Tests")]
[Description("Add the Test name as a header with <prefix>-TestName")]
[DefaultValue(true)]
public bool onTransaction { get; set; }
[DisplayName("Transactions")]
[Description("Add the transaction name as a header with <prefix>-TransactionName")]
[DefaultValue(true)]
public bool onTest { get; set; }
List<String> transactionPath = new List<string>();
public override void PreRequest(object sender, PreRequestEventArgs e)
{
base.PreRequest(sender, e);
if (onTest) e.Request.Headers.Add(HeaderName + "-TestName", e.WebTest.Name);
if (onTransaction && transactionPath.Count > 0)
{
String value = String.Empty;
foreach (string trans in transactionPath) {
if (value.Equals(String.Empty)) value = trans;
else value += "." + trans;
}
e.Request.Headers.Add(HeaderName + "-TransactionName", value);
}
}
public override void PreTransaction(object sender, PreTransactionEventArgs e)
{
base.PreTransaction(sender, e);
transactionPath.Add(e.TransactionName);
}
public override void PostTransaction(object sender, PostTransactionEventArgs e)
{
base.PostTransaction(sender, e);
transactionPath.Remove(e.TransactionName);
}
}
/// <summary>
/// Ignorerar status koder under 500.
/// </summary>
[DisplayName("Ignore 4xx status codes")]
......@@ -323,6 +375,72 @@ namespace LIL_VSTT_Plugins
}
/// <summary>
/// Sätter Reporting name
/// </summary>
[DisplayName("Report Name Automator")]
[Description("(C) Copyright 2017 LIGHTS IN LINE AB\r\nSätter automatiskt Reporting Name på requests")]
public class WebTestReportingNameAutomator : WebTestPlugin
{
[DisplayName("Use RegEx with group")]
[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\"")]
[DefaultValue(false)]
public bool useRegGroup { get; set; }
[DisplayName("Run on Dependents")]
[Description("If set to true will run on dependents")]
[DefaultValue(false)]
public bool runOnDependents { get; set; }
[DisplayName("Run on Requests")]
[Description("If set to true will run on requests (default)")]
[DefaultValue(true)]
public bool runOnRequests { get; set; }
[DisplayName("Set to Name")]
[Description("The name to be set or the regular expression to be used. Groups are specified within () like (.+?) would match the shortest possible string")]
[DefaultValue(false)]
public string reportingName { get; set; }
private Regex regex = null;
public override void PostRequest(object sender, PostRequestEventArgs e)
{
if(runOnDependents)
foreach (WebTestRequest r in e.Request.DependentRequests)
{
r.ReportingName = getNameToSet(r.Url);
}
}
public override void PreRequest(object sender, PreRequestEventArgs e)
{
if (runOnRequests)
e.Request.ReportingName = getNameToSet(e.Request.Url);
}
private void createRegExOnce() {
if(regex == null) {
regex = new Regex(reportingName);
}
}
private string getNameToSet(string input) {
string result = "no-match";
if (useRegGroup == false)
result = reportingName;
else
{
createRegExOnce();
Match m = regex.Match(input);
if (m.Success && m.Groups.Count > 0)
{
result = m.Groups[0].Value;
}
}
return result;
}
}
/// <summary>
/// Service Manager Plugin
/// </summary>
[DisplayName("Service Manager Config")]
......@@ -784,9 +902,8 @@ namespace LIL_VSTT_Plugins
Org.BouncyCastle.Crypto.AsymmetricCipherKeyPair bcKey = null;
Org.BouncyCastle.X509.X509Certificate bcCert = null;
while (keyTextBeginPos != -1)
while (keyTextBeginPos != -1 && keyTextEndPos != -1)
{
text = text.Substring(keyTextBeginPos);
object obj;
try
{
......@@ -818,6 +935,8 @@ namespace LIL_VSTT_Plugins
}
}
keyTextBeginPos = text.IndexOf("-----BEGIN", keyTextEndPos);
if(keyTextBeginPos >= 0) text = text.Substring(keyTextBeginPos);
keyTextEndPos = text.IndexOf("-----END");
}
if (bcCert == null)
{
......
......@@ -2,6 +2,7 @@
<TestSettings name="Local" id="f9146b42-ca07-41ed-9af4-6ec2afc90583" xmlns="http://microsoft.com/schemas/VisualStudio/TeamTest/2010">
<Description>These are default test settings for a local test run.</Description>
<Deployment>
<DeploymentItem filename="TestProject1\UserdataFew.csv" />
<DeploymentItem filename="TestProject1\Userdata.csv" />
</Deployment>
<Execution hostProcessPlatform="MSIL">
......
......@@ -6,3 +6,67 @@ DotNetUtilities.ToX509Certificate((Org.BouncyCastle.X509.X509Certificate)newCert
http://stackoverflow.com/questions/6128541/bouncycastle-privatekey-to-x509certificate2-privatekey
# IDEAS
## Custom Counters
Custom counters can be created directly in the database.
The [LoadTestRunId] is needed, from the current load test run in the
[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).
The question is how to get the datasource connection string.
### Example 1
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
in the [LoadTestPerformanceCounterCategory] table (below it had the value 6).
INSERT INTO [dbo].[LoadTestPerformanceCounter] ([LoadTestRunId], [CounterCategoryId], [CounterId], [CounterName], [HigherIsBetter])
VALUES (4012, 6, 93, N'CustomCounter', 1)
The CounterId here is generated (last +1) and then used in the instance as well:
INSERT INTO [dbo].[LoadTestPerformanceCounterInstance] ([LoadTestRunId], [CounterId], [InstanceId], [LoadTestItemId], [InstanceName], [CumulativeValue], [OverallThresholdRuleResult])
VALUES (4012, 93, 622, NULL, N'Custom', 10, 0)
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
is placed in that Scenarios branch. If it doesnt exist, it will be placed by its own in the root (as a new Scenario).
### Example 2
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.
INSERT INTO [dbo].[LoadTestPerformanceCounterCategory] ([LoadTestRunId], [CounterCategoryId], [CategoryName], [MachineName], [StartTimeStamp100nSec])
VALUES (4012, 13, N'Test', N'CUSTOM', 131293041616203688)
CounterCategoryId is generated (last +1)
INSERT INTO [dbo].[LoadTestPerformanceCounter] ([LoadTestRunId], [CounterCategoryId], [CounterId], [CounterName], [HigherIsBetter])
VALUES (4012, 13, 92, N'TestCounter', 1)
CounterCategory here is the one created above, CounterId is generated (last +1)
INSERT INTO [dbo].[LoadTestPerformanceCounterInstance] ([LoadTestRunId], [CounterId], [InstanceId], [LoadTestItemId], [InstanceName], [CumulativeValue], [OverallThresholdRuleResult])
VALUES (4012, 92, 621, NULL, N'systemdiagnosticsperfcounterlibsingleinstance', 100, 1)
CounterId from above, InstanceId is generated (last +1), InstanceName is a name for the instance or systemdiagnosticsperfcounterlibsingleinstance as above
CumulativeValue seems to have effect on the graphs max value for the y axis to calculate a range to be used.
### Creating values
Once the counters and instances are set, values (measurements) can be created in the [LoadTestPerformanceCounterSample] table. Below an example for the "User Load" counter
for scenarios:
INSERT INTO [dbo].[LoadTestPerformanceCounterSample] ([LoadTestRunId], [TestRunIntervalId], [InstanceId], [ComputedValue], [RawValue], [BaseValue], [CounterFrequency], [SystemFrequency], [SampleTimeStamp], [SampleTimeStamp100nSec], [CounterType], [ThresholdRuleResult], [ThresholdRuleMessageId])
VALUES (4013, 1, 181, 10, 10, 0, 2636718, 2636718, 39550770, 150000000, 65536, 0, NULL)
INSERT INTO [dbo].[LoadTestPerformanceCounterSample] ([LoadTestRunId], [TestRunIntervalId], [InstanceId], [ComputedValue], [RawValue], [BaseValue], [CounterFrequency], [SystemFrequency], [SampleTimeStamp], [SampleTimeStamp100nSec], [CounterType], [ThresholdRuleResult], [ThresholdRuleMessageId])
VALUES (4013, 2, 181, 10, 10, 0, 2636718, 2636718, 79101540, 300000000, 65536, 0, NULL)
CounterFrequency seems to be set to the same as SystemFrequency and seems to be the local cpu clock frequency.
[CounterType] seems to be the int of the system.diagnostics.performancecountertype enum used, in this case probaly NumberOfItems32
[SampleTimeStamp] seems to be ticks, a multiple of CounterFrequency and the number of seconds of the measurement interval (above 15 seconds)
[SampleTimeStamp100nSec] seems to be the time passed since the beginning of the counter category timestamp in 100nSec (0,1 micro seconds)
......
<?xml version="1.0" encoding="utf-8"?>
<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">
<Scenarios>
<Scenario Name="Scenario1" DelayBetweenIterations="1" PercentNewUsers="0" IPSwitching="true" TestMixType="PercentageOfUsersRunning" ApplyDistributionToPacingDelay="true" MaxTestIterations="0" DisableDuringWarmup="false" DelayStartTime="0" AllowedAgents="">
<ThinkProfile Value="0.2" Pattern="NormalDistribution" />
<LoadProfile Pattern="Constant" InitialUsers="4" />
<Scenario Name="Copy of Scenario1" DelayBetweenIterations="30" PercentNewUsers="0" IPSwitching="true" TestMixType="PercentageOfUsersRunning" ApplyDistributionToPacingDelay="true" MaxTestIterations="0" DisableDuringWarmup="false" DelayStartTime="0" AllowedAgents="">
<ThinkProfile Value="0.2" Pattern="Off" />
<LoadProfile Pattern="Constant" InitialUsers="2" />
<TestMix>
<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" />
<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" />
<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" />
</TestMix>
<BrowserMix>
<BrowserProfile Percentage="100">
<Browser Name="Internet Explorer 11.0" MaxConnections="6">
<Headers>
<Header Name="User-Agent" Value="Mozilla/5.0 (Windows NT 6.3; Trident/7.0; rv:11.0) like Gecko" />
<Header Name="Accept" Value="*/*" />
<Header Name="Accept-Language" Value="{{$IEAcceptLanguage}}" />
<Header Name="Accept-Encoding" Value="GZIP" />
</Headers>
</Browser>
</BrowserProfile>
</BrowserMix>
<NetworkMix>
<NetworkProfile Percentage="100">
<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;" />
</NetworkProfile>
</NetworkMix>
</Scenario>
<Scenario Name="Scenario1" DelayBetweenIterations="30" PercentNewUsers="0" IPSwitching="true" TestMixType="PercentageOfUsersRunning" ApplyDistributionToPacingDelay="true" MaxTestIterations="0" DisableDuringWarmup="false" DelayStartTime="0" AllowedAgents="">
<ThinkProfile Value="0.2" Pattern="Off" />
<LoadProfile Pattern="Constant" InitialUsers="2" />
<TestMix>
<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" />
<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" />
</TestMix>
<BrowserMix>
<BrowserProfile Percentage="100">
......@@ -433,25 +459,13 @@
</RunConfiguration>
</RunConfigurations>
<LoadTestPlugins>
<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">
<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.">
<RuleParameters>
<RuleParameter Name="Connection_String" Value="Userdata.csv" />
<RuleParameter Name="Has_col_name" Value="False" />
<RuleParameter Name="Autosplit" Value="False" />
<RuleParameter Name="Parameter_Name" Value="Parameter1" />
<RuleParameter Name="LogFilePathString" Value="C:\Temp\Fungerande.log" />
<RuleParameter Name="LogFileAppendID" Value="False" />
<RuleParameter Name="LogFileAppendName" Value="False" />
<RuleParameter Name="Use_Random" Value="False" />
<RuleParameter Name="Use_Unique" Value="False" />
<RuleParameter Name="Use_UniqueIteration" Value="False" />
<RuleParameter Name="Use_Loop" Value="False" />
<RuleParameter Name="Log_To_File" Value="False" />
<RuleParameter Name="Test_Names" Value="" />
<RuleParameter Name="Scenario_Names" Value="" />
<RuleParameter Name="Agent_Names" Value="" />
<RuleParameter Name="Use_UniqueTestIteration" Value="True" />
<RuleParameter Name="IgnoreBlanks" Value="True" />
<RuleParameter Name="ThinkTime" Value="35" />
<RuleParameter Name="Min" Value="10" />
<RuleParameter Name="Max" Value="190" />
<RuleParameter Name="RegExTestName" Value="Copy" />
<RuleParameter Name="RegExScenarioName" Value="Copy" />
</RuleParameters>
</LoadTestPlugin>
</LoadTestPlugins>
......
<?xml version="1.0" encoding="utf-8"?>
<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">
<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">
<Scenarios>
<Scenario Name="Scenario1" DelayBetweenIterations="0" PercentNewUsers="0" IPSwitching="false" TestMixType="PercentageOfTestsStarted" ApplyDistributionToPacingDelay="true" MaxTestIterations="0" DisableDuringWarmup="false" DelayStartTime="0" AllowedAgents="">
<ThinkProfile Value="0.2" Pattern="Off" />
......@@ -440,4 +440,23 @@
</LoadGeneratorLocations>
</RunConfiguration>
</RunConfigurations>
<LoadTestPlugins>
<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.">
<RuleParameters>
<RuleParameter Name="exp100" Value="True" />
<RuleParameter Name="maxIdle" Value="100" />
<RuleParameter Name="DnsRefreshTimeout" Value="120" />
<RuleParameter Name="EnableDnsRoundRobin" Value="False" />
<RuleParameter Name="keepAlive" Value="False" />
<RuleParameter Name="timeOut" Value="5000" />
<RuleParameter Name="interVal" Value="1000" />
<RuleParameter Name="useNagle" Value="False" />
<RuleParameter Name="useTls12" Value="False" />
<RuleParameter Name="useTls11" Value="False" />
<RuleParameter Name="useTls10" Value="True" />
<RuleParameter Name="useSsl3" Value="False" />
<RuleParameter Name="useCrl" Value="False" />
</RuleParameters>
</LoadTestPlugin>
</LoadTestPlugins>
</LoadTest>
\ No newline at end of file
......
......@@ -86,6 +86,15 @@
<None Include="LoadTest4.loadtest">
<CopyToOutputDirectory>Always</CopyToOutputDirectory>
</None>
<None Include="LoadTest6.loadtest">
<CopyToOutputDirectory>Always</CopyToOutputDirectory>
</None>
<Content Include="UserdataFew.csv">
<CopyToOutputDirectory>Always</CopyToOutputDirectory>
</Content>
<None Include="WebTest2.webtest">
<CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
</None>
<None Include="WebTest22.webtest">
<CopyToOutputDirectory>Always</CopyToOutputDirectory>
</None>
......@@ -93,19 +102,16 @@
<CopyToOutputDirectory>Always</CopyToOutputDirectory>
</None>
<None Include="WebTest6.webtest">
<SubType>Designer</SubType>
<CopyToOutputDirectory>Always</CopyToOutputDirectory>
</None>
<None Include="WebTest5.webtest">
<SubType>Designer</SubType>
<CopyToOutputDirectory>Always</CopyToOutputDirectory>
</None>
<None Include="WebTest4.webtest">
<CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
<SubType>Designer</SubType>
<CopyToOutputDirectory>Always</CopyToOutputDirectory>
</None>
<None Include="WebTest3.webtest">
<CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
<CopyToOutputDirectory>Always</CopyToOutputDirectory>
</None>
<Content Include="Userdata.csv">
<CopyToOutputDirectory>Always</CopyToOutputDirectory>
......@@ -113,6 +119,15 @@
<None Include="WebTest1.webtest">
<CopyToOutputDirectory>Always</CopyToOutputDirectory>
</None>
<None Include="WebTest7 - Copy.webtest">
<CopyToOutputDirectory>Always</CopyToOutputDirectory>
</None>
<None Include="WebTest7.webtest">
<CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
</None>
<None Include="WebTest8.webtest">
<CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
</None>
</ItemGroup>
<ItemGroup>
<ProjectReference Include="..\LIL_VSTT_Plugins\LIL_VSTT_Plugins.csproj">
......
......@@ -88,5 +88,25 @@ namespace TestProject1
if (inLoadTest) TestContext.EndTimer("UnitTestTransaction1");
}
[TestMethod]
public void GereratePnum()
{
String fromDateStr = "1950-01-01";
String toDateStr = "1990-01-01";
DateTime fDate = DateTime.Parse(fromDateStr);
DateTime tDate = DateTime.Parse(toDateStr);
int numDays = (int)tDate.Subtract(fDate).TotalDays;
Random rnd = new Random();
DateTime newDate = fDate.AddDays(rnd.Next(numDays));
string newDateStr = newDate.ToString("yyyyMMdd") + "-" + rnd.Next(999).ToString();
System.Console.WriteLine("Personnummer: " + newDateStr);
}
}
}
......
UserName
user1
user2
user3
\ No newline at end of file
<?xml version="1.0" encoding="utf-8"?>
<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">
<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="">
<Items>
<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="">
<Headers>
<Header Name="Username" Value="{{DataSource1.Userdata#csv.UserName}}" />
</Headers>
<ExtractionRules>
<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.">
<RuleParameters>
<RuleParameter Name="Start1" Value="&lt;table width=&quot;100%&quot;" />
<RuleParameter Name="End1" Value="&lt;/tr&gt;&lt;/table&gt;" />
<RuleParameter Name="Start2" Value="&lt;td id=&quot;start&quot; class=&quot;" />
<RuleParameter Name="End2" Value="&quot; onMouseOver" />
</RuleParameters>
</ExtractionRule>
</ExtractionRules>
<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">
<RequestPlugins>
<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." />
</RequestPlugins>
<FormPostHttpBody>
<FormPostParameter Name="TestParam" Value="LORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRR" RecordedValue="" CorrelationBinding="" UrlEncode="True" />
<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" />
<FormPostParameter Name="TestParam" Value="0" RecordedValue="" CorrelationBinding="" UrlEncode="True" />
</FormPostHttpBody>
</Request>
</Items>
......@@ -27,14 +18,4 @@
</Tables>
</DataSource>
</DataSources>
<WebTestPlugins>
<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.">
<RuleParameters>
<RuleParameter Name="DataSourceName" Value="DataSource1" />
<RuleParameter Name="DataSourceTableName" Value="Userdata#csv" />
<RuleParameter Name="Offset" Value="0" />
</RuleParameters>
</WebTestPlugin>
<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." />
</WebTestPlugins>
</WebTest>
\ No newline at end of file
......
<?xml version="1.0" encoding="utf-8"?>
<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="">
<Items>
<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" />
</Items>
<WebTestPlugins>
<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.">
<RuleParameters>
<RuleParameter Name="pCertificatePath" Value="C:\Temp\lightsinline.pfx" />
<RuleParameter Name="pCertificatePathParameter" Value="" />
<RuleParameter Name="pCertificatePassword" Value="ensfyr" />
<RuleParameter Name="pCertificatePasswordParameter" Value="" />
<RuleParameter Name="pDebug" Value="False" />
<RuleParameter Name="pInstallTrusted" Value="True" />
<RuleParameter Name="pInstallUntrusted" Value="True" />
</RuleParameters>
</WebTestPlugin>
</WebTestPlugins>
</WebTest>
\ No newline at end of file
<?xml version="1.0" encoding="utf-8"?>
<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="">
<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="">
<Items>
<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" />
<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" />
<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" />
<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" />
<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" />
</Items>
<WebTestPlugins>
<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 @@
<RuleParameter Name="timeOut" Value="5000" />
<RuleParameter Name="interVal" Value="1000" />
<RuleParameter Name="useNagle" Value="False" />
<RuleParameter Name="useTls12" Value="True" />
<RuleParameter Name="useTls12" Value="False" />
<RuleParameter Name="useProxy" Value="True" />
<RuleParameter Name="proxyOverride" Value="True" />
<RuleParameter Name="proxyBypassLocal" Value="False" />
<RuleParameter Name="proxyBypass" Value="ttm.swedbank.se" />
<RuleParameter Name="proxyURI" Value="http://proxyvip:8080" />
<RuleParameter Name="proxyUser" Value="p950gec" />
<RuleParameter Name="proxyPass" Value="p950gec" />
</RuleParameters>
</WebTestPlugin>
<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">
<RuleParameters>
<RuleParameter Name="ParamNameVal" Value="TimeStampParameter1" />
<RuleParameter Name="ParamNameVal" Value="RandomInteger" />
<RuleParameter Name="IntegerMin" Value="0" />
<RuleParameter Name="IntegerMax" Value="100" />
<RuleParameter Name="PrePageVal" Value="True" />
......@@ -27,5 +33,11 @@
<RuleParameter Name="PreRequestVal" Value="False" />
</RuleParameters>
</WebTestPlugin>
<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.">
<RuleParameters>
<RuleParameter Name="FilterString" Value="stat.swedbank.se" />
<RuleParameter Name="Exclude" Value="True" />
</RuleParameters>
</WebTestPlugin>
</WebTestPlugins>
</WebTest>
\ No newline at end of file
......
<?xml version="1.0" encoding="utf-8"?>
<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="">
<Items>
<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">
<Headers>
<Header Name="Accept" Value="application/json, text/plain, */*" />
</Headers>
</Request>
<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" />
<TransactionTimer Name="Transaction1">
<Items>
<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" />
</Items>
</TransactionTimer>
<TransactionTimer Name="Transaction2">
<Items>
<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" />
<TransactionTimer Name="Transaction3">
<Items>
<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" />
</Items>
</TransactionTimer>
</Items>
</TransactionTimer>
</Items>
<ContextParameters>
<ContextParameter Name="Valid-PEM-Path" Value="U:\projekt\MjukaCertifikat\Interna_Certifikat_Okt_2016\8946019907112000070.pem" />
</ContextParameters>
<ValidationRules>
<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" />
<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 @@
<RuleParameter Name="timeOut" Value="5000" />
<RuleParameter Name="interVal" Value="1000" />
<RuleParameter Name="useNagle" Value="False" />
<RuleParameter Name="useTls12" Value="False" />
<RuleParameter Name="useTls12" Value="True" />
<RuleParameter Name="proxyOverride" Value="True" />
</RuleParameters>
</WebTestPlugin>
<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.">
<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.">
<RuleParameters>
<RuleParameter Name="pCertificatePath" Value="" />
<RuleParameter Name="pCertificatePathParameter" Value="Valid-PEM-Path" />
<RuleParameter Name="pCertificatePassword" Value="" />
<RuleParameter Name="pCertificatePasswordParameter" Value="" />
<RuleParameter Name="pDebug" Value="True" />
<RuleParameter Name="pInstallTrusted" Value="True" />
<RuleParameter Name="pInstallUntrusted" Value="False" />
<RuleParameter Name="HeaderName" Value="X-Sipoz" />
<RuleParameter Name="onTransaction" Value="True" />
<RuleParameter Name="onTest" Value="True" />
</RuleParameters>
</WebTestPlugin>
</WebTestPlugins>
......
<?xml version="1.0" encoding="utf-8"?>
<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="">
<Items>
<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" />
</Items>
<WebTestPlugins>
<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">
<RuleParameters>
<RuleParameter Name="DebugMode" Value="True" />
</RuleParameters>
</WebTestPlugin>
</WebTestPlugins>
</WebTest>
\ No newline at end of file
<?xml version="1.0" encoding="utf-8"?>
<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="">
<Items>
<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" />
</Items>
<WebTestPlugins>
<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">
<RuleParameters>
<RuleParameter Name="DebugMode" Value="True" />
</RuleParameters>
</WebTestPlugin>
</WebTestPlugins>
</WebTest>
\ No newline at end of file
<?xml version="1.0" encoding="utf-8"?>
<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="">
<Items>
<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" />
</Items>
</WebTest>
\ No newline at end of file
<?xml version="1.0" encoding="UTF-8"?>
<TestSettings name="WIN-62BJ8PRQ3MQ" id="99c45dea-8316-4172-81f8-090cfba87c3f" xmlns="http://microsoft.com/schemas/VisualStudio/TeamTest/2010">
<Description>These are default test settings for a local test run.</Description>
<Deployment>
<DeploymentItem filename="TestProject1\Userdata.csv" />
</Deployment>
<RemoteController name="WIN-62BJ8PRQ3MQ.home" />
<Execution location="Remote" hostProcessPlatform="MSIL">
<TestTypeSpecific>
<UnitTestRunConfig testTypeId="13cdc9d9-ddb5-4fa4-a97d-d965ccfc6d4b">
<AssemblyResolution>
<TestDirectory useLoadContext="true" />
</AssemblyResolution>
</UnitTestRunConfig>
<WebTestRunConfiguration testTypeId="4e7599fa-5ecb-43e9-a887-cd63cf72d207">
<Browser name="Internet Explorer 9.0" MaxConnections="6">
<Headers>
<Header name="User-Agent" value="Mozilla/5.0 (compatible; MSIE 9.0; Windows NT 6.1; Trident/5.0)" />
<Header name="Accept" value="*/*" />
<Header name="Accept-Language" value="{{$IEAcceptLanguage}}" />
<Header name="Accept-Encoding" value="GZIP" />
</Headers>
</Browser>
</WebTestRunConfiguration>
</TestTypeSpecific>
<AgentRule name="AllAgentsDefaultRole">
</AgentRule>
</Execution>
<Properties />
</TestSettings>
\ No newline at end of file