Browse Source

Created new load test scenarios

pull/380/head
Ramón Tomás 7 years ago
parent
commit
2ad61d9057
13 changed files with 2384 additions and 7 deletions
  1. +1
    -0
      src/Services/Location/Locations.API/Infrastructure/Middlewares/ByPassAuthMiddleware.cs
  2. +1
    -0
      src/Services/Marketing/Marketing.API/Infrastructure/Middlewares/ByPassAuthMiddleware.cs
  3. +1
    -0
      src/Services/Ordering/Ordering.API/Infrastructure/Middlewares/ByPassAuthMiddleware.cs
  4. +9
    -1
      test/Services/LoadTest/Basket.API/Checkout.webtest
  5. +467
    -0
      test/Services/LoadTest/Basket.loadtest
  6. +467
    -0
      test/Services/LoadTest/Campaigns.loadtest
  7. +471
    -0
      test/Services/LoadTest/Catalog.loadtest
  8. +19
    -2
      test/Services/LoadTest/LoadTest.csproj
  9. +9
    -1
      test/Services/LoadTest/Location.API/GetUserLocation.webtest
  10. +468
    -0
      test/Services/LoadTest/Locations.loadtest
  11. +468
    -0
      test/Services/LoadTest/OrderProducts.loadtest
  12. +2
    -2
      test/Services/LoadTest/WebMVC/CreateNewOrder.webtest
  13. +1
    -1
      test/Services/LoadTest/app.config

+ 1
- 0
src/Services/Location/Locations.API/Infrastructure/Middlewares/ByPassAuthMiddleware.cs View File

@ -64,6 +64,7 @@ namespace Microsoft.eShopOnContainers.Services.Locations.API.Infrastructure.Midd
new Claim("nonce", Guid.NewGuid().ToString()), new Claim("nonce", Guid.NewGuid().ToString()),
new Claim("ttp://schemas.microsoft.com/identity/claims/identityprovider", "ByPassAuthMiddleware"), new Claim("ttp://schemas.microsoft.com/identity/claims/identityprovider", "ByPassAuthMiddleware"),
new Claim("nonce", Guid.NewGuid().ToString()), new Claim("nonce", Guid.NewGuid().ToString()),
new Claim("sub", "1234"),
new Claim("http://schemas.xmlsoap.org/ws/2005/05/identity/claims/surname","User"), new Claim("http://schemas.xmlsoap.org/ws/2005/05/identity/claims/surname","User"),
new Claim("http://schemas.xmlsoap.org/ws/2005/05/identity/claims/givenname","Microsoft")} new Claim("http://schemas.xmlsoap.org/ws/2005/05/identity/claims/givenname","Microsoft")}
, "ByPassAuth"); , "ByPassAuth");


+ 1
- 0
src/Services/Marketing/Marketing.API/Infrastructure/Middlewares/ByPassAuthMiddleware.cs View File

@ -64,6 +64,7 @@ namespace Microsoft.eShopOnContainers.Services.Marketing.API.Infrastructure.Midd
new Claim("nonce", Guid.NewGuid().ToString()), new Claim("nonce", Guid.NewGuid().ToString()),
new Claim("ttp://schemas.microsoft.com/identity/claims/identityprovider", "ByPassAuthMiddleware"), new Claim("ttp://schemas.microsoft.com/identity/claims/identityprovider", "ByPassAuthMiddleware"),
new Claim("nonce", Guid.NewGuid().ToString()), new Claim("nonce", Guid.NewGuid().ToString()),
new Claim("sub", "1234"),
new Claim("http://schemas.xmlsoap.org/ws/2005/05/identity/claims/surname","User"), new Claim("http://schemas.xmlsoap.org/ws/2005/05/identity/claims/surname","User"),
new Claim("http://schemas.xmlsoap.org/ws/2005/05/identity/claims/givenname","Microsoft")} new Claim("http://schemas.xmlsoap.org/ws/2005/05/identity/claims/givenname","Microsoft")}
, "ByPassAuth"); , "ByPassAuth");


+ 1
- 0
src/Services/Ordering/Ordering.API/Infrastructure/Middlewares/ByPassAuthMiddleware.cs View File

@ -64,6 +64,7 @@ namespace Ordering.API.Infrastructure.Middlewares
new Claim("nonce", Guid.NewGuid().ToString()), new Claim("nonce", Guid.NewGuid().ToString()),
new Claim("ttp://schemas.microsoft.com/identity/claims/identityprovider", "ByPassAuthMiddleware"), new Claim("ttp://schemas.microsoft.com/identity/claims/identityprovider", "ByPassAuthMiddleware"),
new Claim("nonce", Guid.NewGuid().ToString()), new Claim("nonce", Guid.NewGuid().ToString()),
new Claim("sub", "1234"),
new Claim("http://schemas.xmlsoap.org/ws/2005/05/identity/claims/surname","User"), new Claim("http://schemas.xmlsoap.org/ws/2005/05/identity/claims/surname","User"),
new Claim("http://schemas.xmlsoap.org/ws/2005/05/identity/claims/givenname","Microsoft")} new Claim("http://schemas.xmlsoap.org/ws/2005/05/identity/claims/givenname","Microsoft")}
, "ByPassAuth"); , "ByPassAuth");


+ 9
- 1
test/Services/LoadTest/Basket.API/Checkout.webtest View File

@ -4,7 +4,7 @@
<Request Method="POST" Guid="d24fe957-0cbb-46d4-8478-974de57e5cba" Version="1.1" Url="{{LocalTestSettings.BasketApiServer.url}}/api/{{LocalTestSettings.ApiVersion.value}}/basket/checkout" 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="POST" Guid="d24fe957-0cbb-46d4-8478-974de57e5cba" Version="1.1" Url="{{LocalTestSettings.BasketApiServer.url}}/api/{{LocalTestSettings.ApiVersion.value}}/basket/checkout" ThinkTime="0" Timeout="300" ParseDependentRequests="True" FollowRedirects="True" RecordResult="True" Cache="False" ResponseTimeGoal="0" Encoding="utf-8" ExpectedHttpStatusCode="0" ExpectedResponseUrl="" ReportingName="" IgnoreHttpStatusCode="False">
<Headers> <Headers>
<Header Name="Accept" Value="application/json" /> <Header Name="Accept" Value="application/json" />
<Header Name="x-requestid" Value="{{LocalTestSettings.RequestId.value}}" />
<Header Name="x-requestid" Value="{{GenGuid}} " />
<Header Name="Authorization" Value="Email demouser@microsoft.com" /> <Header Name="Authorization" Value="Email demouser@microsoft.com" />
</Headers> </Headers>
<StringHttpBody ContentType="application/json" InsertByteOrderMark="False">ewAiAEMAaQB0AHkAIgA6ACIAYwBpAHQAeQAiACwAIgBTAHQAcgBlAGUAdAAiADoAIgBzAHQAcgBlAGUAdAAiACwAIgBTAHQAYQB0AGUAIgA6ACIAcwB0AGEAdABlACIALAAiAEMAbwB1AG4AdAByAHkAIgA6ACIAYwBvAHUAdAByAHkAIgAsACIAWgBpAHAAQwBvAGQAZQAiADoAIgB6AGkAcABjAG8AZABlACIALAAiAEMAYQByAGQATgB1AG0AYgBlAHIAIgA6ACIAQwBhAHIAZABOAHUAbQBiAGUAcgAiACwAIgBDAGEAcgBkAEgAbwBsAGQAZQByAE4AYQBtAGUAIgA6ACIAQwBhAHIAZABIAG8AbABkAGUAcgBOAGEAbQBlACIALAAiAEMAYQByAGQARQB4AHAAaQByAGEAdABpAG8AbgAiADoAIgAyADAAMQA3AC0AMAA2AC0AMwAwAFQAMQAyADoAMgA1ADoAMwAxAC4AOAA3ADQANwAyADIANwBaACIALAAiAEMAYQByAGQAUwBlAGMAdQByAGkAdAB5AE4AdQBtAGIAZQByACIAOgAiADEAMgAzADQAIgAsACIAQwBhAHIAZABUAHkAcABlAEkAZAAiADoAMQAsACIAQgB1AHkAZQByACIAOgAiAEIAdQB5AGUAcgAiACwAIgBSAGUAcQB1AGUAcwB0AEkAZAAiADoAIgBlAGIAOAAwADAAMwA2ADQALQBiADQAZQAxAC0ANAA2AGUAYgAtADkAMgAzADUALQBlADgAYwA0ADcANAA3AGQAYQAyAGQANAAiAH0A</StringHttpBody> <StringHttpBody ContentType="application/json" InsertByteOrderMark="False">ewAiAEMAaQB0AHkAIgA6ACIAYwBpAHQAeQAiACwAIgBTAHQAcgBlAGUAdAAiADoAIgBzAHQAcgBlAGUAdAAiACwAIgBTAHQAYQB0AGUAIgA6ACIAcwB0AGEAdABlACIALAAiAEMAbwB1AG4AdAByAHkAIgA6ACIAYwBvAHUAdAByAHkAIgAsACIAWgBpAHAAQwBvAGQAZQAiADoAIgB6AGkAcABjAG8AZABlACIALAAiAEMAYQByAGQATgB1AG0AYgBlAHIAIgA6ACIAQwBhAHIAZABOAHUAbQBiAGUAcgAiACwAIgBDAGEAcgBkAEgAbwBsAGQAZQByAE4AYQBtAGUAIgA6ACIAQwBhAHIAZABIAG8AbABkAGUAcgBOAGEAbQBlACIALAAiAEMAYQByAGQARQB4AHAAaQByAGEAdABpAG8AbgAiADoAIgAyADAAMQA3AC0AMAA2AC0AMwAwAFQAMQAyADoAMgA1ADoAMwAxAC4AOAA3ADQANwAyADIANwBaACIALAAiAEMAYQByAGQAUwBlAGMAdQByAGkAdAB5AE4AdQBtAGIAZQByACIAOgAiADEAMgAzADQAIgAsACIAQwBhAHIAZABUAHkAcABlAEkAZAAiADoAMQAsACIAQgB1AHkAZQByACIAOgAiAEIAdQB5AGUAcgAiACwAIgBSAGUAcQB1AGUAcwB0AEkAZAAiADoAIgBlAGIAOAAwADAAMwA2ADQALQBiADQAZQAxAC0ANAA2AGUAYgAtADkAMgAzADUALQBlADgAYwA0ADcANAA3AGQAYQAyAGQANAAiAH0A</StringHttpBody>
@ -31,4 +31,12 @@
</RuleParameters> </RuleParameters>
</ValidationRule> </ValidationRule>
</ValidationRules> </ValidationRules>
<WebTestPlugins>
<WebTestPlugin Classname="Microsoft.SystemCenter.Cloud.GsmPlugins.GuidGeneratorWebTestPlugin, Microsoft.VisualStudio.QualityTools.WebTestFramework, Version=10.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a" DisplayName="Generate Guid" Description="Generates a new guid.">
<RuleParameters>
<RuleParameter Name="ContextParameterName" Value="GenGuid" />
<RuleParameter Name="OutputFormat" Value="" />
</RuleParameters>
</WebTestPlugin>
</WebTestPlugins>
</WebTest> </WebTest>

+ 467
- 0
test/Services/LoadTest/Basket.loadtest View File

@ -0,0 +1,467 @@
<?xml version="1.0" encoding="utf-8"?>
<LoadTest Name="Basket" Description="" Owner="" storage="c:\users\rtomas\projects\eshop\eshoponcontainers\test\services\loadtest\basket.loadtest" Priority="2147483647" Enabled="true" CssProjectStructure="" CssIteration="" DeploymentItemsEditable="" WorkItemIds="" TraceLevel="None" CurrentRunConfig="Run Settings1" Id="8a2d51c6-8729-4405-a781-9c9b11b0a4d9" xmlns="http://microsoft.com/schemas/VisualStudio/TeamTest/2010">
<Scenarios>
<Scenario Name="Basket" DelayBetweenIterations="0" PercentNewUsers="0" IPSwitching="false" TestMixType="PercentageOfTestsStarted" ApplyDistributionToPacingDelay="true" MaxTestIterations="0" DisableDuringWarmup="false" DelayStartTime="0" AllowedAgents="">
<ThinkProfile Value="0.2" Pattern="NormalDistribution" />
<LoadProfile Pattern="Step" InitialUsers="1" MaxUsers="50" StepUsers="10" StepDuration="10" StepRampTime="10" />
<TestMix>
<TestProfile Name="GetBasket" Path="basket.api\getbasket.webtest" Id="59f41ad4-349f-4383-8858-0005321e3a68" Percentage="59" Type="Microsoft.VisualStudio.TestTools.WebStress.DeclarativeWebTestElement, Microsoft.VisualStudio.QualityTools.LoadTest, Version=15.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a" />
<TestProfile Name="AddBasket" Path="basket.api\addbasket.webtest" Id="b50574ad-a2bf-4ecd-923d-bf007eb02d90" Percentage="32" Type="Microsoft.VisualStudio.TestTools.WebStress.DeclarativeWebTestElement, Microsoft.VisualStudio.QualityTools.LoadTest, Version=15.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a" />
<TestProfile Name="Checkout" Path="basket.api\checkout.webtest" Id="34e8acd6-f058-4a8f-a41a-f4d8bdd8e433" Percentage="9" Type="Microsoft.VisualStudio.TestTools.WebStress.DeclarativeWebTestElement, Microsoft.VisualStudio.QualityTools.LoadTest, Version=15.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a" />
</TestMix>
<BrowserMix>
<BrowserProfile Percentage="20">
<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>
<BrowserProfile Percentage="63">
<Browser Name="Chrome 2" MaxConnections="6">
<Headers>
<Header Name="User-Agent" Value="Mozilla/5.0 (Windows; U; Windows NT 5.1;) AppleWebKit/530.1 (KHTML, like Gecko) Chrome/2.0.169.1 Safari/530.1" />
<Header Name="Accept" Value="*/*" />
<Header Name="Accept-Language" Value="{{$IEAcceptLanguage}}" />
<Header Name="Accept-Encoding" Value="gzip,deflate" />
<Header Name="Accept-Charset" Value="ISO-8859-1,*,utf-8" />
</Headers>
</Browser>
</BrowserProfile>
<BrowserProfile Percentage="17">
<Browser Name="Safari 3" MaxConnections="4">
<Headers>
<Header Name="User-Agent" Value="Mozilla/5.0 (Windows; U; Windows NT 5.2; en-US) AppleWebKit/525.28 (KHTML, like Gecko) Version/3.2.2 Safari/525.28.1" />
<Header Name="Accept" Value="*/*" />
<Header Name="Accept-Language" Value="{{$IEAcceptLanguage}}" />
<Header Name="Accept-Encoding" Value="GZIP,deflate" />
<Header Name="Accept-Charset" Value="ISO-8859-1,utf-8;q=0.7,*;q=0.7" />
</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>
</Scenarios>
<CounterSets>
<CounterSet Name="LoadTest" CounterSetType="LoadTest" LocId="">
<CounterCategories>
<CounterCategory Name="LoadTest:Scenario">
<Counters>
<Counter Name="User Load" HigherIsBetter="true" />
<Counter Name="Tests Running" HigherIsBetter="true" />
</Counters>
</CounterCategory>
<CounterCategory Name="LoadTest:Test">
<Counters>
<Counter Name="Total Tests" HigherIsBetter="true" />
<Counter Name="Passed Tests" HigherIsBetter="true" />
<Counter Name="Failed Tests" />
<Counter Name="Tests/Sec" HigherIsBetter="true" />
<Counter Name="Passed Tests/Sec" HigherIsBetter="true" />
<Counter Name="Failed Tests/Sec" />
<Counter Name="Avg. Requests/Test" HigherIsBetter="true" />
<Counter Name="Avg. Test Time" />
<Counter Name="% Time in LoadTestPlugin" />
<Counter Name="% Time in WebTest code" />
<Counter Name="% Time in Rules" />
</Counters>
</CounterCategory>
<CounterCategory Name="LoadTest:Transaction">
<Counters>
<Counter Name="Total Transactions" HigherIsBetter="true" />
<Counter Name="Avg. Transaction Time" />
<Counter Name="Avg. Response Time" />
<Counter Name="Transactions/Sec" HigherIsBetter="true" />
</Counters>
</CounterCategory>
<CounterCategory Name="LoadTest:Errors">
<Counters>
<Counter Name="Http Errors" />
<Counter Name="Validation Rule Errors" />
<Counter Name="Extraction Rule Errors" />
<Counter Name="Requests Timed Out" />
<Counter Name="Exceptions" />
<Counter Name="Total Errors" />
<Counter Name="Errors/Sec" />
<Counter Name="Threshold Violations/Sec" />
</Counters>
</CounterCategory>
<CounterCategory Name="LoadTest:Page">
<Counters>
<Counter Name="Total Pages" HigherIsBetter="true" />
<Counter Name="Avg. Page Time" />
<Counter Name="Page Response Time Goal" HigherIsBetter="true" />
<Counter Name="% Pages Meeting Goal" HigherIsBetter="true" />
<Counter Name="Pages/Sec" HigherIsBetter="true" />
</Counters>
</CounterCategory>
<CounterCategory Name="LoadTest:Request">
<Counters>
<Counter Name="Total Requests" HigherIsBetter="true" />
<Counter Name="Passed Requests" HigherIsBetter="true" />
<Counter Name="Failed Requests" />
<Counter Name="Cached Requests" HigherIsBetter="true" />
<Counter Name="Requests/Sec" HigherIsBetter="true" />
<Counter Name="Passed Requests/Sec" HigherIsBetter="true" />
<Counter Name="Failed Requests/Sec" />
<Counter Name="Avg. First Byte Time" />
<Counter Name="Avg. Response Time" />
<Counter Name="Avg. Connection Wait Time">
<ThresholdRules>
<ThresholdRule Classname="Microsoft.VisualStudio.TestTools.WebStress.Rules.ThresholdRuleCompareCounters, Microsoft.VisualStudio.QualityTools.LoadTest, Version=15.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a">
<RuleParameters>
<RuleParameter Name="DependentCategory" Value="LoadTest:Page" />
<RuleParameter Name="DependentCounter" Value="Avg. Page Time" />
<RuleParameter Name="DependentInstance" Value="_Total" />
<RuleParameter Name="AlertIfOver" Value="True" />
<RuleParameter Name="WarningThreshold" Value="0.25" />
<RuleParameter Name="CriticalThreshold" Value="0.5" />
</RuleParameters>
</ThresholdRule>
</ThresholdRules>
</Counter>
<Counter Name="Avg. Content Length" />
</Counters>
</CounterCategory>
<CounterCategory Name="LoadTest:LogEntries">
<Counters>
<Counter Name="Total Log Entries" />
<Counter Name="Log Entries/Sec" />
</Counters>
</CounterCategory>
</CounterCategories>
</CounterSet>
<CounterSet Name="Controller" CounterSetType="Controller" LocId="CounterSet_Controller">
<CounterCategories>
<CounterCategory Name="Memory">
<Counters>
<Counter Name="% Committed Bytes In Use" Range="100" />
<Counter Name="Available MBytes" RangeGroup="Memory Bytes" HigherIsBetter="true">
<ThresholdRules>
<ThresholdRule Classname="Microsoft.VisualStudio.TestTools.WebStress.Rules.ThresholdRuleCompareConstant, Microsoft.VisualStudio.QualityTools.LoadTest">
<RuleParameters>
<RuleParameter Name="AlertIfOver" Value="False" />
<RuleParameter Name="WarningThreshold" Value="100" />
<RuleParameter Name="CriticalThreshold" Value="50" />
</RuleParameters>
</ThresholdRule>
</ThresholdRules>
</Counter>
<Counter Name="Page Faults/sec" />
<Counter Name="Pages/sec" />
<Counter Name="Pool Paged Bytes" RangeGroup="Memory Bytes" />
<Counter Name="Pool Nonpaged bytes" RangeGroup="Memory Bytes" />
</Counters>
</CounterCategory>
<CounterCategory Name="Network Interface">
<Counters>
<Counter Name="Bytes Received/sec" RangeGroup="Network Bytes" />
<Counter Name="Bytes Sent/sec" RangeGroup="Network Bytes" />
<Counter Name="Output Queue Length">
<ThresholdRules>
<ThresholdRule Classname="Microsoft.VisualStudio.TestTools.WebStress.Rules.ThresholdRuleCompareConstant, Microsoft.VisualStudio.QualityTools.LoadTest">
<RuleParameters>
<RuleParameter Name="AlertIfOver" Value="True" />
<RuleParameter Name="WarningThreshold" Value="1.5" />
<RuleParameter Name="CriticalThreshold" Value="2" />
</RuleParameters>
</ThresholdRule>
</ThresholdRules>
</Counter>
<Counter Name="Packets Received/sec" RangeGroup="Network Packets" />
<Counter Name="Packets Sent/sec" RangeGroup="Network Packets" />
<Counter Name="Current Bandwidth" RangeGroup="Network Bytes" />
<Counter Name="Bytes Total/sec" RangeGroup="Network Bytes">
<ThresholdRules>
<ThresholdRule Classname="Microsoft.VisualStudio.TestTools.WebStress.Rules.ThresholdRuleCompareCounters, Microsoft.VisualStudio.QualityTools.LoadTest, Version=15.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a">
<RuleParameters>
<RuleParameter Name="DependentCategory" Value="Network Interface" />
<RuleParameter Name="DependentCounter" Value="Current Bandwidth" />
<RuleParameter Name="DependentInstance" Value="" />
<RuleParameter Name="AlertIfOver" Value="True" />
<RuleParameter Name="WarningThreshold" Value="0.6" />
<RuleParameter Name="CriticalThreshold" Value="0.7" />
</RuleParameters>
</ThresholdRule>
</ThresholdRules>
</Counter>
</Counters>
<Instances>
<Instance Name="*" />
</Instances>
</CounterCategory>
<CounterCategory Name="PhysicalDisk">
<Counters>
<Counter Name="% Disk Read Time" Range="100" />
<Counter Name="% Disk Time" Range="100" />
<Counter Name="% Disk Write Time" Range="100" />
<Counter Name="% Idle Time" Range="100" HigherIsBetter="true">
<ThresholdRules>
<ThresholdRule Classname="Microsoft.VisualStudio.TestTools.WebStress.Rules.ThresholdRuleCompareConstant, Microsoft.VisualStudio.QualityTools.LoadTest">
<RuleParameters>
<RuleParameter Name="AlertIfOver" Value="False" />
<RuleParameter Name="WarningThreshold" Value="40" />
<RuleParameter Name="CriticalThreshold" Value="20" />
</RuleParameters>
</ThresholdRule>
</ThresholdRules>
</Counter>
<Counter Name="Avg. Disk Bytes/Read" RangeGroup="DiskBytesRate" />
<Counter Name="Avg. Disk Bytes/Transfer" RangeGroup="DiskBytesRate" />
<Counter Name="Avg. Disk Bytes/Write" RangeGroup="DiskBytesRate" />
<Counter Name="Avg. Disk Queue Length" RangeGroup="Disk Queue Length" />
<Counter Name="Avg. Disk Read Queue Length" RangeGroup="Disk Queue Length" />
<Counter Name="Avg. Disk Write Queue Length" RangeGroup="Disk Queue Length" />
<Counter Name="Current Disk Queue Length" RangeGroup="Disk Queue Length" />
<Counter Name="Avg. Disk sec/Read" RangeGroup="Disk sec" />
<Counter Name="Avg. Disk sec/Transfer" RangeGroup="Disk sec" />
<Counter Name="Avg. Disk sec/Write" RangeGroup="Disk sec" />
<Counter Name="Disk Bytes/sec" RangeGroup="Disk Bytes sec" />
<Counter Name="Disk Read Bytes/sec" RangeGroup="Disk Bytes sec" />
<Counter Name="Disk Reads/sec" RangeGroup="Disk Transfers sec" />
<Counter Name="Disk Transfers/sec" RangeGroup="Disk Transfers sec" />
<Counter Name="Disk Write Bytes/sec" RangeGroup="Disk Bytes sec" />
<Counter Name="Disk Writes/sec" RangeGroup="Disk Transfers sec" />
<Counter Name="Split IO/Sec" RangeGroup="Disk Transfers sec" />
</Counters>
<Instances>
<Instance Name="*" />
</Instances>
</CounterCategory>
<CounterCategory Name="Processor">
<Counters>
<Counter Name="% Processor Time" Range="100">
<ThresholdRules>
<ThresholdRule Classname="Microsoft.VisualStudio.TestTools.WebStress.Rules.ThresholdRuleCompareConstant, Microsoft.VisualStudio.QualityTools.LoadTest">
<RuleParameters>
<RuleParameter Name="AlertIfOver" Value="True" />
<RuleParameter Name="WarningThreshold" Value="75" />
<RuleParameter Name="CriticalThreshold" Value="90" />
</RuleParameters>
</ThresholdRule>
</ThresholdRules>
</Counter>
<Counter Name="% Privileged Time" Range="100" />
<Counter Name="% User Time" Range="100" />
</Counters>
<Instances>
<Instance Name="_Total" />
</Instances>
</CounterCategory>
<CounterCategory Name="System">
<Counters>
<Counter Name="Context Switches/sec" />
<Counter Name="Processes" />
<Counter Name="Processor Queue Length" />
<Counter Name="Threads" />
</Counters>
</CounterCategory>
<CounterCategory Name="Process">
<Counters>
<Counter Name="% Processor Time" RangeGroup="Processor Time" />
<Counter Name="% Privileged Time" RangeGroup="Processor Time" />
<Counter Name="% User Time" RangeGroup="Processor Time" />
<Counter Name="Handle Count" />
<Counter Name="Thread Count" />
<Counter Name="Private Bytes" RangeGroup="Memory Bytes" />
<Counter Name="Virtual Bytes" RangeGroup="Memory Bytes" />
<Counter Name="Working Set" RangeGroup="Memory Bytes" />
</Counters>
<Instances>
<Instance Name="QTController" />
<Instance Name="QTController64" />
</Instances>
</CounterCategory>
</CounterCategories>
<DefaultCountersForAutomaticGraphs>
<DefaultCounter CategoryName="Processor" CounterName="% Processor Time" InstanceName="_Total" GraphName="" />
<DefaultCounter CategoryName="Memory" CounterName="Available MBytes" InstanceName="" GraphName="" />
</DefaultCountersForAutomaticGraphs>
</CounterSet>
<CounterSet Name="Agent" CounterSetType="Agent" LocId="CounterSet_Agent">
<CounterCategories>
<CounterCategory Name="Memory">
<Counters>
<Counter Name="% Committed Bytes In Use" Range="100" />
<Counter Name="Available MBytes" RangeGroup="Memory Bytes" HigherIsBetter="true">
<ThresholdRules>
<ThresholdRule Classname="Microsoft.VisualStudio.TestTools.WebStress.Rules.ThresholdRuleCompareConstant, Microsoft.VisualStudio.QualityTools.LoadTest">
<RuleParameters>
<RuleParameter Name="AlertIfOver" Value="False" />
<RuleParameter Name="WarningThreshold" Value="100" />
<RuleParameter Name="CriticalThreshold" Value="50" />
</RuleParameters>
</ThresholdRule>
</ThresholdRules>
</Counter>
<Counter Name="Page Faults/sec" />
<Counter Name="Pages/sec" />
<Counter Name="Pool Paged Bytes" RangeGroup="Memory Bytes" />
<Counter Name="Pool Nonpaged bytes" RangeGroup="Memory Bytes" />
</Counters>
</CounterCategory>
<CounterCategory Name="Network Interface">
<Counters>
<Counter Name="Bytes Received/sec" RangeGroup="Network Bytes" />
<Counter Name="Bytes Sent/sec" RangeGroup="Network Bytes" />
<Counter Name="Output Queue Length">
<ThresholdRules>
<ThresholdRule Classname="Microsoft.VisualStudio.TestTools.WebStress.Rules.ThresholdRuleCompareConstant, Microsoft.VisualStudio.QualityTools.LoadTest">
<RuleParameters>
<RuleParameter Name="AlertIfOver" Value="True" />
<RuleParameter Name="WarningThreshold" Value="1.5" />
<RuleParameter Name="CriticalThreshold" Value="2" />
</RuleParameters>
</ThresholdRule>
</ThresholdRules>
</Counter>
<Counter Name="Packets Received/sec" RangeGroup="Network Packets" />
<Counter Name="Packets Sent/sec" RangeGroup="Network Packets" />
<Counter Name="Current Bandwidth" RangeGroup="Network Bytes" />
<Counter Name="Bytes Total/sec" RangeGroup="Network Bytes">
<ThresholdRules>
<ThresholdRule Classname="Microsoft.VisualStudio.TestTools.WebStress.Rules.ThresholdRuleCompareCounters, Microsoft.VisualStudio.QualityTools.LoadTest, Version=15.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a">
<RuleParameters>
<RuleParameter Name="DependentCategory" Value="Network Interface" />
<RuleParameter Name="DependentCounter" Value="Current Bandwidth" />
<RuleParameter Name="DependentInstance" Value="" />
<RuleParameter Name="AlertIfOver" Value="True" />
<RuleParameter Name="WarningThreshold" Value="0.6" />
<RuleParameter Name="CriticalThreshold" Value="0.7" />
</RuleParameters>
</ThresholdRule>
</ThresholdRules>
</Counter>
</Counters>
<Instances>
<Instance Name="*" />
</Instances>
</CounterCategory>
<CounterCategory Name="PhysicalDisk">
<Counters>
<Counter Name="% Disk Read Time" Range="100" />
<Counter Name="% Disk Time" Range="100" />
<Counter Name="% Disk Write Time" Range="100" />
<Counter Name="% Idle Time" Range="100" HigherIsBetter="true">
<ThresholdRules>
<ThresholdRule Classname="Microsoft.VisualStudio.TestTools.WebStress.Rules.ThresholdRuleCompareConstant, Microsoft.VisualStudio.QualityTools.LoadTest">
<RuleParameters>
<RuleParameter Name="AlertIfOver" Value="False" />
<RuleParameter Name="WarningThreshold" Value="40" />
<RuleParameter Name="CriticalThreshold" Value="20" />
</RuleParameters>
</ThresholdRule>
</ThresholdRules>
</Counter>
<Counter Name="Avg. Disk Bytes/Read" RangeGroup="DiskBytesRate" />
<Counter Name="Avg. Disk Bytes/Transfer" RangeGroup="DiskBytesRate" />
<Counter Name="Avg. Disk Bytes/Write" RangeGroup="DiskBytesRate" />
<Counter Name="Avg. Disk Queue Length" RangeGroup="Disk Queue Length" />
<Counter Name="Avg. Disk Read Queue Length" RangeGroup="Disk Queue Length" />
<Counter Name="Avg. Disk Write Queue Length" RangeGroup="Disk Queue Length" />
<Counter Name="Current Disk Queue Length" RangeGroup="Disk Queue Length" />
<Counter Name="Avg. Disk sec/Read" RangeGroup="Disk sec" />
<Counter Name="Avg. Disk sec/Transfer" RangeGroup="Disk sec" />
<Counter Name="Avg. Disk sec/Write" RangeGroup="Disk sec" />
<Counter Name="Disk Bytes/sec" RangeGroup="Disk Bytes sec" />
<Counter Name="Disk Read Bytes/sec" RangeGroup="Disk Bytes sec" />
<Counter Name="Disk Reads/sec" RangeGroup="Disk Transfers sec" />
<Counter Name="Disk Transfers/sec" RangeGroup="Disk Transfers sec" />
<Counter Name="Disk Write Bytes/sec" RangeGroup="Disk Bytes sec" />
<Counter Name="Disk Writes/sec" RangeGroup="Disk Transfers sec" />
<Counter Name="Split IO/Sec" RangeGroup="Disk Transfers sec" />
</Counters>
<Instances>
<Instance Name="*" />
</Instances>
</CounterCategory>
<CounterCategory Name="Processor">
<Counters>
<Counter Name="% Processor Time" Range="100">
<ThresholdRules>
<ThresholdRule Classname="Microsoft.VisualStudio.TestTools.WebStress.Rules.ThresholdRuleCompareConstant, Microsoft.VisualStudio.QualityTools.LoadTest">
<RuleParameters>
<RuleParameter Name="AlertIfOver" Value="True" />
<RuleParameter Name="WarningThreshold" Value="75" />
<RuleParameter Name="CriticalThreshold" Value="90" />
</RuleParameters>
</ThresholdRule>
</ThresholdRules>
</Counter>
<Counter Name="% Privileged Time" Range="100" />
<Counter Name="% User Time" Range="100" />
</Counters>
<Instances>
<Instance Name="0" />
<Instance Name="_Total" />
</Instances>
</CounterCategory>
<CounterCategory Name="System">
<Counters>
<Counter Name="Context Switches/sec" />
<Counter Name="Processes" />
<Counter Name="Processor Queue Length" />
<Counter Name="Threads" />
</Counters>
</CounterCategory>
<CounterCategory Name="Process">
<Counters>
<Counter Name="% Processor Time" RangeGroup="Processor Time" />
<Counter Name="% Privileged Time" RangeGroup="Processor Time" />
<Counter Name="% User Time" RangeGroup="Processor Time" />
<Counter Name="Handle Count" />
<Counter Name="Thread Count" />
<Counter Name="Private Bytes" RangeGroup="Memory Bytes" />
<Counter Name="Virtual Bytes" RangeGroup="Memory Bytes" />
<Counter Name="Working Set" RangeGroup="Memory Bytes" />
</Counters>
<Instances>
<Instance Name="devenv" />
<Instance Name="QTAgentService" />
<Instance Name="QTAgent" />
<Instance Name="QTAgent32" />
<Instance Name="QTDCAgent" />
<Instance Name="QTDCAgent32" />
<Instance Name="QTAgent_35" />
<Instance Name="QTAgent_40" />
<Instance Name="QTAgent32_35" />
<Instance Name="QTAgent32_40" />
</Instances>
</CounterCategory>
</CounterCategories>
<DefaultCountersForAutomaticGraphs>
<DefaultCounter CategoryName="Processor" CounterName="% Processor Time" InstanceName="0" GraphName="" RunType="Local" />
<DefaultCounter CategoryName="Processor" CounterName="% Processor Time" InstanceName="_Total" GraphName="" RunType="Remote" />
<DefaultCounter CategoryName="Memory" CounterName="Available MBytes" InstanceName="" GraphName="" />
</DefaultCountersForAutomaticGraphs>
</CounterSet>
</CounterSets>
<RunConfigurations>
<RunConfiguration Name="Run Settings1" Description="" ResultsStoreType="Database" TimingDetailsStorage="AllIndividualDetails" SaveTestLogsOnError="true" SaveTestLogsFrequency="0" MaxErrorDetails="200" MaxErrorsPerType="1000" MaxThresholdViolations="1000" MaxRequestUrlsReported="1000" UseTestIterations="false" RunDuration="300" WarmupTime="60" CoolDownTime="0" TestIterations="100" WebTestConnectionModel="ConnectionPerUser" WebTestConnectionPoolSize="50" SampleRate="15" ValidationLevel="High" SqlTracingConnectString="" SqlTracingConnectStringDisplayValue="" SqlTracingDirectory="" SqlTracingEnabled="false" SqlTracingFileCount="2" SqlTracingRolloverEnabled="true" SqlTracingMinimumDuration="500" RunUnitTestsInAppDomain="true" CoreCount="0" ResourcesRetentionTimeInMinutes="0" AgentDiagnosticsLevel="Warning">
<CounterSetMappings>
<CounterSetMapping ComputerName="[CONTROLLER MACHINE]">
<CounterSetReferences>
<CounterSetReference CounterSetName="LoadTest" />
<CounterSetReference CounterSetName="Controller" />
</CounterSetReferences>
</CounterSetMapping>
<CounterSetMapping ComputerName="[AGENT MACHINES]">
<CounterSetReferences>
<CounterSetReference CounterSetName="Agent" />
</CounterSetReferences>
</CounterSetMapping>
</CounterSetMappings>
<LoadGeneratorLocations>
<GeoLocation Location="Default" Percentage="100" />
</LoadGeneratorLocations>
</RunConfiguration>
</RunConfigurations>
</LoadTest>

+ 467
- 0
test/Services/LoadTest/Campaigns.loadtest View File

@ -0,0 +1,467 @@
<?xml version="1.0" encoding="utf-8"?>
<LoadTest Name="Campaigns" Description="" Owner="" storage="c:\users\rtomas\projects\eshop\eshoponcontainers\test\services\loadtest\campaigns.loadtest" Priority="2147483647" Enabled="true" CssProjectStructure="" CssIteration="" DeploymentItemsEditable="" WorkItemIds="" TraceLevel="None" CurrentRunConfig="Run Settings1" Id="91520c53-bf00-43b9-8c1d-810d83c95cb4" xmlns="http://microsoft.com/schemas/VisualStudio/TeamTest/2010">
<Scenarios>
<Scenario Name="Campaigns" DelayBetweenIterations="0" PercentNewUsers="0" IPSwitching="false" TestMixType="PercentageOfTestsStarted" ApplyDistributionToPacingDelay="true" MaxTestIterations="0" DisableDuringWarmup="false" DelayStartTime="0" AllowedAgents="">
<ThinkProfile Value="0.2" Pattern="NormalDistribution" />
<LoadProfile Pattern="Step" InitialUsers="1" MaxUsers="50" StepUsers="10" StepDuration="10" StepRampTime="10" />
<TestMix>
<TestProfile Name="GetAllCampaigns" Path="marketing.api\getallcampaigns.webtest" Id="19336ef5-34ae-4bf8-90df-c8d794558f71" Percentage="34" Type="Microsoft.VisualStudio.TestTools.WebStress.DeclarativeWebTestElement, Microsoft.VisualStudio.QualityTools.LoadTest, Version=15.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a" />
<TestProfile Name="GetUserCampaigns" Path="marketing.api\getusercampaigns.webtest" Id="735da61b-a88b-4f23-9d16-c232a540471a" Percentage="33" Type="Microsoft.VisualStudio.TestTools.WebStress.DeclarativeWebTestElement, Microsoft.VisualStudio.QualityTools.LoadTest, Version=15.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a" />
<TestProfile Name="GetCampaign" Path="marketing.api\getcampaign.webtest" Id="aca56982-2a40-4721-8295-625371c14585" Percentage="33" Type="Microsoft.VisualStudio.TestTools.WebStress.DeclarativeWebTestElement, Microsoft.VisualStudio.QualityTools.LoadTest, Version=15.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a" />
</TestMix>
<BrowserMix>
<BrowserProfile Percentage="19">
<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>
<BrowserProfile Percentage="63">
<Browser Name="Chrome 2" MaxConnections="6">
<Headers>
<Header Name="User-Agent" Value="Mozilla/5.0 (Windows; U; Windows NT 5.1;) AppleWebKit/530.1 (KHTML, like Gecko) Chrome/2.0.169.1 Safari/530.1" />
<Header Name="Accept" Value="*/*" />
<Header Name="Accept-Language" Value="{{$IEAcceptLanguage}}" />
<Header Name="Accept-Encoding" Value="gzip,deflate" />
<Header Name="Accept-Charset" Value="ISO-8859-1,*,utf-8" />
</Headers>
</Browser>
</BrowserProfile>
<BrowserProfile Percentage="18">
<Browser Name="Safari 3" MaxConnections="4">
<Headers>
<Header Name="User-Agent" Value="Mozilla/5.0 (Windows; U; Windows NT 5.2; en-US) AppleWebKit/525.28 (KHTML, like Gecko) Version/3.2.2 Safari/525.28.1" />
<Header Name="Accept" Value="*/*" />
<Header Name="Accept-Language" Value="{{$IEAcceptLanguage}}" />
<Header Name="Accept-Encoding" Value="GZIP,deflate" />
<Header Name="Accept-Charset" Value="ISO-8859-1,utf-8;q=0.7,*;q=0.7" />
</Headers>
</Browser>
</BrowserProfile>
</BrowserMix>
<NetworkMix>
<NetworkProfile Percentage="100">
<Network Name="LAN" BandwidthInKbps="0" NetworkProfileConfigurationXml="" />
</NetworkProfile>
</NetworkMix>
</Scenario>
</Scenarios>
<CounterSets>
<CounterSet Name="LoadTest" CounterSetType="LoadTest" LocId="">
<CounterCategories>
<CounterCategory Name="LoadTest:Scenario">
<Counters>
<Counter Name="User Load" HigherIsBetter="true" />
<Counter Name="Tests Running" HigherIsBetter="true" />
</Counters>
</CounterCategory>
<CounterCategory Name="LoadTest:Test">
<Counters>
<Counter Name="Total Tests" HigherIsBetter="true" />
<Counter Name="Passed Tests" HigherIsBetter="true" />
<Counter Name="Failed Tests" />
<Counter Name="Tests/Sec" HigherIsBetter="true" />
<Counter Name="Passed Tests/Sec" HigherIsBetter="true" />
<Counter Name="Failed Tests/Sec" />
<Counter Name="Avg. Requests/Test" HigherIsBetter="true" />
<Counter Name="Avg. Test Time" />
<Counter Name="% Time in LoadTestPlugin" />
<Counter Name="% Time in WebTest code" />
<Counter Name="% Time in Rules" />
</Counters>
</CounterCategory>
<CounterCategory Name="LoadTest:Transaction">
<Counters>
<Counter Name="Total Transactions" HigherIsBetter="true" />
<Counter Name="Avg. Transaction Time" />
<Counter Name="Avg. Response Time" />
<Counter Name="Transactions/Sec" HigherIsBetter="true" />
</Counters>
</CounterCategory>
<CounterCategory Name="LoadTest:Errors">
<Counters>
<Counter Name="Http Errors" />
<Counter Name="Validation Rule Errors" />
<Counter Name="Extraction Rule Errors" />
<Counter Name="Requests Timed Out" />
<Counter Name="Exceptions" />
<Counter Name="Total Errors" />
<Counter Name="Errors/Sec" />
<Counter Name="Threshold Violations/Sec" />
</Counters>
</CounterCategory>
<CounterCategory Name="LoadTest:Page">
<Counters>
<Counter Name="Total Pages" HigherIsBetter="true" />
<Counter Name="Avg. Page Time" />
<Counter Name="Page Response Time Goal" HigherIsBetter="true" />
<Counter Name="% Pages Meeting Goal" HigherIsBetter="true" />
<Counter Name="Pages/Sec" HigherIsBetter="true" />
</Counters>
</CounterCategory>
<CounterCategory Name="LoadTest:Request">
<Counters>
<Counter Name="Total Requests" HigherIsBetter="true" />
<Counter Name="Passed Requests" HigherIsBetter="true" />
<Counter Name="Failed Requests" />
<Counter Name="Cached Requests" HigherIsBetter="true" />
<Counter Name="Requests/Sec" HigherIsBetter="true" />
<Counter Name="Passed Requests/Sec" HigherIsBetter="true" />
<Counter Name="Failed Requests/Sec" />
<Counter Name="Avg. First Byte Time" />
<Counter Name="Avg. Response Time" />
<Counter Name="Avg. Connection Wait Time">
<ThresholdRules>
<ThresholdRule Classname="Microsoft.VisualStudio.TestTools.WebStress.Rules.ThresholdRuleCompareCounters, Microsoft.VisualStudio.QualityTools.LoadTest, Version=15.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a">
<RuleParameters>
<RuleParameter Name="DependentCategory" Value="LoadTest:Page" />
<RuleParameter Name="DependentCounter" Value="Avg. Page Time" />
<RuleParameter Name="DependentInstance" Value="_Total" />
<RuleParameter Name="AlertIfOver" Value="True" />
<RuleParameter Name="WarningThreshold" Value="0.25" />
<RuleParameter Name="CriticalThreshold" Value="0.5" />
</RuleParameters>
</ThresholdRule>
</ThresholdRules>
</Counter>
<Counter Name="Avg. Content Length" />
</Counters>
</CounterCategory>
<CounterCategory Name="LoadTest:LogEntries">
<Counters>
<Counter Name="Total Log Entries" />
<Counter Name="Log Entries/Sec" />
</Counters>
</CounterCategory>
</CounterCategories>
</CounterSet>
<CounterSet Name="Controller" CounterSetType="Controller" LocId="CounterSet_Controller">
<CounterCategories>
<CounterCategory Name="Memory">
<Counters>
<Counter Name="% Committed Bytes In Use" Range="100" />
<Counter Name="Available MBytes" RangeGroup="Memory Bytes" HigherIsBetter="true">
<ThresholdRules>
<ThresholdRule Classname="Microsoft.VisualStudio.TestTools.WebStress.Rules.ThresholdRuleCompareConstant, Microsoft.VisualStudio.QualityTools.LoadTest">
<RuleParameters>
<RuleParameter Name="AlertIfOver" Value="False" />
<RuleParameter Name="WarningThreshold" Value="100" />
<RuleParameter Name="CriticalThreshold" Value="50" />
</RuleParameters>
</ThresholdRule>
</ThresholdRules>
</Counter>
<Counter Name="Page Faults/sec" />
<Counter Name="Pages/sec" />
<Counter Name="Pool Paged Bytes" RangeGroup="Memory Bytes" />
<Counter Name="Pool Nonpaged bytes" RangeGroup="Memory Bytes" />
</Counters>
</CounterCategory>
<CounterCategory Name="Network Interface">
<Counters>
<Counter Name="Bytes Received/sec" RangeGroup="Network Bytes" />
<Counter Name="Bytes Sent/sec" RangeGroup="Network Bytes" />
<Counter Name="Output Queue Length">
<ThresholdRules>
<ThresholdRule Classname="Microsoft.VisualStudio.TestTools.WebStress.Rules.ThresholdRuleCompareConstant, Microsoft.VisualStudio.QualityTools.LoadTest">
<RuleParameters>
<RuleParameter Name="AlertIfOver" Value="True" />
<RuleParameter Name="WarningThreshold" Value="1.5" />
<RuleParameter Name="CriticalThreshold" Value="2" />
</RuleParameters>
</ThresholdRule>
</ThresholdRules>
</Counter>
<Counter Name="Packets Received/sec" RangeGroup="Network Packets" />
<Counter Name="Packets Sent/sec" RangeGroup="Network Packets" />
<Counter Name="Current Bandwidth" RangeGroup="Network Bytes" />
<Counter Name="Bytes Total/sec" RangeGroup="Network Bytes">
<ThresholdRules>
<ThresholdRule Classname="Microsoft.VisualStudio.TestTools.WebStress.Rules.ThresholdRuleCompareCounters, Microsoft.VisualStudio.QualityTools.LoadTest, Version=15.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a">
<RuleParameters>
<RuleParameter Name="DependentCategory" Value="Network Interface" />
<RuleParameter Name="DependentCounter" Value="Current Bandwidth" />
<RuleParameter Name="DependentInstance" Value="" />
<RuleParameter Name="AlertIfOver" Value="True" />
<RuleParameter Name="WarningThreshold" Value="0.6" />
<RuleParameter Name="CriticalThreshold" Value="0.7" />
</RuleParameters>
</ThresholdRule>
</ThresholdRules>
</Counter>
</Counters>
<Instances>
<Instance Name="*" />
</Instances>
</CounterCategory>
<CounterCategory Name="PhysicalDisk">
<Counters>
<Counter Name="% Disk Read Time" Range="100" />
<Counter Name="% Disk Time" Range="100" />
<Counter Name="% Disk Write Time" Range="100" />
<Counter Name="% Idle Time" Range="100" HigherIsBetter="true">
<ThresholdRules>
<ThresholdRule Classname="Microsoft.VisualStudio.TestTools.WebStress.Rules.ThresholdRuleCompareConstant, Microsoft.VisualStudio.QualityTools.LoadTest">
<RuleParameters>
<RuleParameter Name="AlertIfOver" Value="False" />
<RuleParameter Name="WarningThreshold" Value="40" />
<RuleParameter Name="CriticalThreshold" Value="20" />
</RuleParameters>
</ThresholdRule>
</ThresholdRules>
</Counter>
<Counter Name="Avg. Disk Bytes/Read" RangeGroup="DiskBytesRate" />
<Counter Name="Avg. Disk Bytes/Transfer" RangeGroup="DiskBytesRate" />
<Counter Name="Avg. Disk Bytes/Write" RangeGroup="DiskBytesRate" />
<Counter Name="Avg. Disk Queue Length" RangeGroup="Disk Queue Length" />
<Counter Name="Avg. Disk Read Queue Length" RangeGroup="Disk Queue Length" />
<Counter Name="Avg. Disk Write Queue Length" RangeGroup="Disk Queue Length" />
<Counter Name="Current Disk Queue Length" RangeGroup="Disk Queue Length" />
<Counter Name="Avg. Disk sec/Read" RangeGroup="Disk sec" />
<Counter Name="Avg. Disk sec/Transfer" RangeGroup="Disk sec" />
<Counter Name="Avg. Disk sec/Write" RangeGroup="Disk sec" />
<Counter Name="Disk Bytes/sec" RangeGroup="Disk Bytes sec" />
<Counter Name="Disk Read Bytes/sec" RangeGroup="Disk Bytes sec" />
<Counter Name="Disk Reads/sec" RangeGroup="Disk Transfers sec" />
<Counter Name="Disk Transfers/sec" RangeGroup="Disk Transfers sec" />
<Counter Name="Disk Write Bytes/sec" RangeGroup="Disk Bytes sec" />
<Counter Name="Disk Writes/sec" RangeGroup="Disk Transfers sec" />
<Counter Name="Split IO/Sec" RangeGroup="Disk Transfers sec" />
</Counters>
<Instances>
<Instance Name="*" />
</Instances>
</CounterCategory>
<CounterCategory Name="Processor">
<Counters>
<Counter Name="% Processor Time" Range="100">
<ThresholdRules>
<ThresholdRule Classname="Microsoft.VisualStudio.TestTools.WebStress.Rules.ThresholdRuleCompareConstant, Microsoft.VisualStudio.QualityTools.LoadTest">
<RuleParameters>
<RuleParameter Name="AlertIfOver" Value="True" />
<RuleParameter Name="WarningThreshold" Value="75" />
<RuleParameter Name="CriticalThreshold" Value="90" />
</RuleParameters>
</ThresholdRule>
</ThresholdRules>
</Counter>
<Counter Name="% Privileged Time" Range="100" />
<Counter Name="% User Time" Range="100" />
</Counters>
<Instances>
<Instance Name="_Total" />
</Instances>
</CounterCategory>
<CounterCategory Name="System">
<Counters>
<Counter Name="Context Switches/sec" />
<Counter Name="Processes" />
<Counter Name="Processor Queue Length" />
<Counter Name="Threads" />
</Counters>
</CounterCategory>
<CounterCategory Name="Process">
<Counters>
<Counter Name="% Processor Time" RangeGroup="Processor Time" />
<Counter Name="% Privileged Time" RangeGroup="Processor Time" />
<Counter Name="% User Time" RangeGroup="Processor Time" />
<Counter Name="Handle Count" />
<Counter Name="Thread Count" />
<Counter Name="Private Bytes" RangeGroup="Memory Bytes" />
<Counter Name="Virtual Bytes" RangeGroup="Memory Bytes" />
<Counter Name="Working Set" RangeGroup="Memory Bytes" />
</Counters>
<Instances>
<Instance Name="QTController" />
<Instance Name="QTController64" />
</Instances>
</CounterCategory>
</CounterCategories>
<DefaultCountersForAutomaticGraphs>
<DefaultCounter CategoryName="Processor" CounterName="% Processor Time" InstanceName="_Total" GraphName="" />
<DefaultCounter CategoryName="Memory" CounterName="Available MBytes" InstanceName="" GraphName="" />
</DefaultCountersForAutomaticGraphs>
</CounterSet>
<CounterSet Name="Agent" CounterSetType="Agent" LocId="CounterSet_Agent">
<CounterCategories>
<CounterCategory Name="Memory">
<Counters>
<Counter Name="% Committed Bytes In Use" Range="100" />
<Counter Name="Available MBytes" RangeGroup="Memory Bytes" HigherIsBetter="true">
<ThresholdRules>
<ThresholdRule Classname="Microsoft.VisualStudio.TestTools.WebStress.Rules.ThresholdRuleCompareConstant, Microsoft.VisualStudio.QualityTools.LoadTest">
<RuleParameters>
<RuleParameter Name="AlertIfOver" Value="False" />
<RuleParameter Name="WarningThreshold" Value="100" />
<RuleParameter Name="CriticalThreshold" Value="50" />
</RuleParameters>
</ThresholdRule>
</ThresholdRules>
</Counter>
<Counter Name="Page Faults/sec" />
<Counter Name="Pages/sec" />
<Counter Name="Pool Paged Bytes" RangeGroup="Memory Bytes" />
<Counter Name="Pool Nonpaged bytes" RangeGroup="Memory Bytes" />
</Counters>
</CounterCategory>
<CounterCategory Name="Network Interface">
<Counters>
<Counter Name="Bytes Received/sec" RangeGroup="Network Bytes" />
<Counter Name="Bytes Sent/sec" RangeGroup="Network Bytes" />
<Counter Name="Output Queue Length">
<ThresholdRules>
<ThresholdRule Classname="Microsoft.VisualStudio.TestTools.WebStress.Rules.ThresholdRuleCompareConstant, Microsoft.VisualStudio.QualityTools.LoadTest">
<RuleParameters>
<RuleParameter Name="AlertIfOver" Value="True" />
<RuleParameter Name="WarningThreshold" Value="1.5" />
<RuleParameter Name="CriticalThreshold" Value="2" />
</RuleParameters>
</ThresholdRule>
</ThresholdRules>
</Counter>
<Counter Name="Packets Received/sec" RangeGroup="Network Packets" />
<Counter Name="Packets Sent/sec" RangeGroup="Network Packets" />
<Counter Name="Current Bandwidth" RangeGroup="Network Bytes" />
<Counter Name="Bytes Total/sec" RangeGroup="Network Bytes">
<ThresholdRules>
<ThresholdRule Classname="Microsoft.VisualStudio.TestTools.WebStress.Rules.ThresholdRuleCompareCounters, Microsoft.VisualStudio.QualityTools.LoadTest, Version=15.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a">
<RuleParameters>
<RuleParameter Name="DependentCategory" Value="Network Interface" />
<RuleParameter Name="DependentCounter" Value="Current Bandwidth" />
<RuleParameter Name="DependentInstance" Value="" />
<RuleParameter Name="AlertIfOver" Value="True" />
<RuleParameter Name="WarningThreshold" Value="0.6" />
<RuleParameter Name="CriticalThreshold" Value="0.7" />
</RuleParameters>
</ThresholdRule>
</ThresholdRules>
</Counter>
</Counters>
<Instances>
<Instance Name="*" />
</Instances>
</CounterCategory>
<CounterCategory Name="PhysicalDisk">
<Counters>
<Counter Name="% Disk Read Time" Range="100" />
<Counter Name="% Disk Time" Range="100" />
<Counter Name="% Disk Write Time" Range="100" />
<Counter Name="% Idle Time" Range="100" HigherIsBetter="true">
<ThresholdRules>
<ThresholdRule Classname="Microsoft.VisualStudio.TestTools.WebStress.Rules.ThresholdRuleCompareConstant, Microsoft.VisualStudio.QualityTools.LoadTest">
<RuleParameters>
<RuleParameter Name="AlertIfOver" Value="False" />
<RuleParameter Name="WarningThreshold" Value="40" />
<RuleParameter Name="CriticalThreshold" Value="20" />
</RuleParameters>
</ThresholdRule>
</ThresholdRules>
</Counter>
<Counter Name="Avg. Disk Bytes/Read" RangeGroup="DiskBytesRate" />
<Counter Name="Avg. Disk Bytes/Transfer" RangeGroup="DiskBytesRate" />
<Counter Name="Avg. Disk Bytes/Write" RangeGroup="DiskBytesRate" />
<Counter Name="Avg. Disk Queue Length" RangeGroup="Disk Queue Length" />
<Counter Name="Avg. Disk Read Queue Length" RangeGroup="Disk Queue Length" />
<Counter Name="Avg. Disk Write Queue Length" RangeGroup="Disk Queue Length" />
<Counter Name="Current Disk Queue Length" RangeGroup="Disk Queue Length" />
<Counter Name="Avg. Disk sec/Read" RangeGroup="Disk sec" />
<Counter Name="Avg. Disk sec/Transfer" RangeGroup="Disk sec" />
<Counter Name="Avg. Disk sec/Write" RangeGroup="Disk sec" />
<Counter Name="Disk Bytes/sec" RangeGroup="Disk Bytes sec" />
<Counter Name="Disk Read Bytes/sec" RangeGroup="Disk Bytes sec" />
<Counter Name="Disk Reads/sec" RangeGroup="Disk Transfers sec" />
<Counter Name="Disk Transfers/sec" RangeGroup="Disk Transfers sec" />
<Counter Name="Disk Write Bytes/sec" RangeGroup="Disk Bytes sec" />
<Counter Name="Disk Writes/sec" RangeGroup="Disk Transfers sec" />
<Counter Name="Split IO/Sec" RangeGroup="Disk Transfers sec" />
</Counters>
<Instances>
<Instance Name="*" />
</Instances>
</CounterCategory>
<CounterCategory Name="Processor">
<Counters>
<Counter Name="% Processor Time" Range="100">
<ThresholdRules>
<ThresholdRule Classname="Microsoft.VisualStudio.TestTools.WebStress.Rules.ThresholdRuleCompareConstant, Microsoft.VisualStudio.QualityTools.LoadTest">
<RuleParameters>
<RuleParameter Name="AlertIfOver" Value="True" />
<RuleParameter Name="WarningThreshold" Value="75" />
<RuleParameter Name="CriticalThreshold" Value="90" />
</RuleParameters>
</ThresholdRule>
</ThresholdRules>
</Counter>
<Counter Name="% Privileged Time" Range="100" />
<Counter Name="% User Time" Range="100" />
</Counters>
<Instances>
<Instance Name="0" />
<Instance Name="_Total" />
</Instances>
</CounterCategory>
<CounterCategory Name="System">
<Counters>
<Counter Name="Context Switches/sec" />
<Counter Name="Processes" />
<Counter Name="Processor Queue Length" />
<Counter Name="Threads" />
</Counters>
</CounterCategory>
<CounterCategory Name="Process">
<Counters>
<Counter Name="% Processor Time" RangeGroup="Processor Time" />
<Counter Name="% Privileged Time" RangeGroup="Processor Time" />
<Counter Name="% User Time" RangeGroup="Processor Time" />
<Counter Name="Handle Count" />
<Counter Name="Thread Count" />
<Counter Name="Private Bytes" RangeGroup="Memory Bytes" />
<Counter Name="Virtual Bytes" RangeGroup="Memory Bytes" />
<Counter Name="Working Set" RangeGroup="Memory Bytes" />
</Counters>
<Instances>
<Instance Name="devenv" />
<Instance Name="QTAgentService" />
<Instance Name="QTAgent" />
<Instance Name="QTAgent32" />
<Instance Name="QTDCAgent" />
<Instance Name="QTDCAgent32" />
<Instance Name="QTAgent_35" />
<Instance Name="QTAgent_40" />
<Instance Name="QTAgent32_35" />
<Instance Name="QTAgent32_40" />
</Instances>
</CounterCategory>
</CounterCategories>
<DefaultCountersForAutomaticGraphs>
<DefaultCounter CategoryName="Processor" CounterName="% Processor Time" InstanceName="0" GraphName="" RunType="Local" />
<DefaultCounter CategoryName="Processor" CounterName="% Processor Time" InstanceName="_Total" GraphName="" RunType="Remote" />
<DefaultCounter CategoryName="Memory" CounterName="Available MBytes" InstanceName="" GraphName="" />
</DefaultCountersForAutomaticGraphs>
</CounterSet>
</CounterSets>
<RunConfigurations>
<RunConfiguration Name="Run Settings1" Description="" ResultsStoreType="Database" TimingDetailsStorage="AllIndividualDetails" SaveTestLogsOnError="true" SaveTestLogsFrequency="0" MaxErrorDetails="200" MaxErrorsPerType="1000" MaxThresholdViolations="1000" MaxRequestUrlsReported="1000" UseTestIterations="false" RunDuration="300" WarmupTime="60" CoolDownTime="0" TestIterations="100" WebTestConnectionModel="ConnectionPerUser" WebTestConnectionPoolSize="50" SampleRate="15" ValidationLevel="High" SqlTracingConnectString="" SqlTracingConnectStringDisplayValue="" SqlTracingDirectory="" SqlTracingEnabled="false" SqlTracingFileCount="2" SqlTracingRolloverEnabled="true" SqlTracingMinimumDuration="500" RunUnitTestsInAppDomain="true" CoreCount="0" ResourcesRetentionTimeInMinutes="0" AgentDiagnosticsLevel="Warning">
<CounterSetMappings>
<CounterSetMapping ComputerName="[CONTROLLER MACHINE]">
<CounterSetReferences>
<CounterSetReference CounterSetName="LoadTest" />
<CounterSetReference CounterSetName="Controller" />
</CounterSetReferences>
</CounterSetMapping>
<CounterSetMapping ComputerName="[AGENT MACHINES]">
<CounterSetReferences>
<CounterSetReference CounterSetName="Agent" />
</CounterSetReferences>
</CounterSetMapping>
</CounterSetMappings>
<LoadGeneratorLocations>
<GeoLocation Location="Default" Percentage="100" />
</LoadGeneratorLocations>
</RunConfiguration>
</RunConfigurations>
</LoadTest>

+ 471
- 0
test/Services/LoadTest/Catalog.loadtest View File

@ -0,0 +1,471 @@
<?xml version="1.0" encoding="utf-8"?>
<LoadTest Name="Catalog" Description="" Owner="" storage="c:\users\rtomas\projects\eshop\eshoponcontainers\test\services\loadtest\catalog.loadtest" Priority="2147483647" Enabled="true" CssProjectStructure="" CssIteration="" DeploymentItemsEditable="" WorkItemIds="" TraceLevel="None" CurrentRunConfig="Run Settings1" Id="a66fc09c-075d-4b04-9e51-b1491a1525e4" xmlns="http://microsoft.com/schemas/VisualStudio/TeamTest/2010">
<Scenarios>
<Scenario Name="Catalog" DelayBetweenIterations="0" PercentNewUsers="0" IPSwitching="false" TestMixType="PercentageOfTestsStarted" ApplyDistributionToPacingDelay="true" MaxTestIterations="0" DisableDuringWarmup="false" DelayStartTime="0" AllowedAgents="">
<ThinkProfile Value="0.2" Pattern="NormalDistribution" />
<LoadProfile Pattern="Step" InitialUsers="1" MaxUsers="50" StepUsers="10" StepDuration="10" StepRampTime="10" />
<TestMix>
<TestProfile Name="GetCatalogBrands" Path="catalog.api\getcatalogbrands.webtest" Id="df9fded6-bc66-4bc8-b812-49b459175ef3" Percentage="9" Type="Microsoft.VisualStudio.TestTools.WebStress.DeclarativeWebTestElement, Microsoft.VisualStudio.QualityTools.LoadTest, Version=15.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a" />
<TestProfile Name="GetCatalogTypes" Path="catalog.api\getcatalogtypes.webtest" Id="7df20b29-d5c3-447b-b73d-95c63e9c4061" Percentage="9" Type="Microsoft.VisualStudio.TestTools.WebStress.DeclarativeWebTestElement, Microsoft.VisualStudio.QualityTools.LoadTest, Version=15.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a" />
<TestProfile Name="GetItems" Path="catalog.api\getitems.webtest" Id="e527de7e-beff-4824-af52-dda763fd5e6c" Percentage="18" Type="Microsoft.VisualStudio.TestTools.WebStress.DeclarativeWebTestElement, Microsoft.VisualStudio.QualityTools.LoadTest, Version=15.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a" />
<TestProfile Name="GetCatalogFiltered" Path="catalog.api\getcatalogfiltered.webtest" Id="5de3172f-52d2-4cd9-901a-95cf18f303b0" Percentage="36" Type="Microsoft.VisualStudio.TestTools.WebStress.DeclarativeWebTestElement, Microsoft.VisualStudio.QualityTools.LoadTest, Version=15.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a" />
<TestProfile Name="GetItem" Path="catalog.api\getitem.webtest" Id="3849d5f1-730b-4215-9010-f9a759cf78f8" Percentage="9" Type="Microsoft.VisualStudio.TestTools.WebStress.DeclarativeWebTestElement, Microsoft.VisualStudio.QualityTools.LoadTest, Version=15.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a" />
<TestProfile Name="GetItemPic" Path="catalog.api\getitempic.webtest" Id="7984e64b-231b-4acb-8447-4b65dc174080" Percentage="9" Type="Microsoft.VisualStudio.TestTools.WebStress.DeclarativeWebTestElement, Microsoft.VisualStudio.QualityTools.LoadTest, Version=15.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a" />
<TestProfile Name="GetItemsByName" Path="catalog.api\getitemsbyname.webtest" Id="222ab4ce-c613-4dd0-b4cb-d2d3db6acb3c" Percentage="10" Type="Microsoft.VisualStudio.TestTools.WebStress.DeclarativeWebTestElement, Microsoft.VisualStudio.QualityTools.LoadTest, Version=15.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a" />
</TestMix>
<BrowserMix>
<BrowserProfile Percentage="20">
<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>
<BrowserProfile Percentage="63">
<Browser Name="Chrome 2" MaxConnections="6">
<Headers>
<Header Name="User-Agent" Value="Mozilla/5.0 (Windows; U; Windows NT 5.1;) AppleWebKit/530.1 (KHTML, like Gecko) Chrome/2.0.169.1 Safari/530.1" />
<Header Name="Accept" Value="*/*" />
<Header Name="Accept-Language" Value="{{$IEAcceptLanguage}}" />
<Header Name="Accept-Encoding" Value="gzip,deflate" />
<Header Name="Accept-Charset" Value="ISO-8859-1,*,utf-8" />
</Headers>
</Browser>
</BrowserProfile>
<BrowserProfile Percentage="17">
<Browser Name="Safari 3" MaxConnections="4">
<Headers>
<Header Name="User-Agent" Value="Mozilla/5.0 (Windows; U; Windows NT 5.2; en-US) AppleWebKit/525.28 (KHTML, like Gecko) Version/3.2.2 Safari/525.28.1" />
<Header Name="Accept" Value="*/*" />
<Header Name="Accept-Language" Value="{{$IEAcceptLanguage}}" />
<Header Name="Accept-Encoding" Value="GZIP,deflate" />
<Header Name="Accept-Charset" Value="ISO-8859-1,utf-8;q=0.7,*;q=0.7" />
</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>
</Scenarios>
<CounterSets>
<CounterSet Name="LoadTest" CounterSetType="LoadTest" LocId="">
<CounterCategories>
<CounterCategory Name="LoadTest:Scenario">
<Counters>
<Counter Name="User Load" HigherIsBetter="true" />
<Counter Name="Tests Running" HigherIsBetter="true" />
</Counters>
</CounterCategory>
<CounterCategory Name="LoadTest:Test">
<Counters>
<Counter Name="Total Tests" HigherIsBetter="true" />
<Counter Name="Passed Tests" HigherIsBetter="true" />
<Counter Name="Failed Tests" />
<Counter Name="Tests/Sec" HigherIsBetter="true" />
<Counter Name="Passed Tests/Sec" HigherIsBetter="true" />
<Counter Name="Failed Tests/Sec" />
<Counter Name="Avg. Requests/Test" HigherIsBetter="true" />
<Counter Name="Avg. Test Time" />
<Counter Name="% Time in LoadTestPlugin" />
<Counter Name="% Time in WebTest code" />
<Counter Name="% Time in Rules" />
</Counters>
</CounterCategory>
<CounterCategory Name="LoadTest:Transaction">
<Counters>
<Counter Name="Total Transactions" HigherIsBetter="true" />
<Counter Name="Avg. Transaction Time" />
<Counter Name="Avg. Response Time" />
<Counter Name="Transactions/Sec" HigherIsBetter="true" />
</Counters>
</CounterCategory>
<CounterCategory Name="LoadTest:Errors">
<Counters>
<Counter Name="Http Errors" />
<Counter Name="Validation Rule Errors" />
<Counter Name="Extraction Rule Errors" />
<Counter Name="Requests Timed Out" />
<Counter Name="Exceptions" />
<Counter Name="Total Errors" />
<Counter Name="Errors/Sec" />
<Counter Name="Threshold Violations/Sec" />
</Counters>
</CounterCategory>
<CounterCategory Name="LoadTest:Page">
<Counters>
<Counter Name="Total Pages" HigherIsBetter="true" />
<Counter Name="Avg. Page Time" />
<Counter Name="Page Response Time Goal" HigherIsBetter="true" />
<Counter Name="% Pages Meeting Goal" HigherIsBetter="true" />
<Counter Name="Pages/Sec" HigherIsBetter="true" />
</Counters>
</CounterCategory>
<CounterCategory Name="LoadTest:Request">
<Counters>
<Counter Name="Total Requests" HigherIsBetter="true" />
<Counter Name="Passed Requests" HigherIsBetter="true" />
<Counter Name="Failed Requests" />
<Counter Name="Cached Requests" HigherIsBetter="true" />
<Counter Name="Requests/Sec" HigherIsBetter="true" />
<Counter Name="Passed Requests/Sec" HigherIsBetter="true" />
<Counter Name="Failed Requests/Sec" />
<Counter Name="Avg. First Byte Time" />
<Counter Name="Avg. Response Time" />
<Counter Name="Avg. Connection Wait Time">
<ThresholdRules>
<ThresholdRule Classname="Microsoft.VisualStudio.TestTools.WebStress.Rules.ThresholdRuleCompareCounters, Microsoft.VisualStudio.QualityTools.LoadTest, Version=15.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a">
<RuleParameters>
<RuleParameter Name="DependentCategory" Value="LoadTest:Page" />
<RuleParameter Name="DependentCounter" Value="Avg. Page Time" />
<RuleParameter Name="DependentInstance" Value="_Total" />
<RuleParameter Name="AlertIfOver" Value="True" />
<RuleParameter Name="WarningThreshold" Value="0.25" />
<RuleParameter Name="CriticalThreshold" Value="0.5" />
</RuleParameters>
</ThresholdRule>
</ThresholdRules>
</Counter>
<Counter Name="Avg. Content Length" />
</Counters>
</CounterCategory>
<CounterCategory Name="LoadTest:LogEntries">
<Counters>
<Counter Name="Total Log Entries" />
<Counter Name="Log Entries/Sec" />
</Counters>
</CounterCategory>
</CounterCategories>
</CounterSet>
<CounterSet Name="Controller" CounterSetType="Controller" LocId="CounterSet_Controller">
<CounterCategories>
<CounterCategory Name="Memory">
<Counters>
<Counter Name="% Committed Bytes In Use" Range="100" />
<Counter Name="Available MBytes" RangeGroup="Memory Bytes" HigherIsBetter="true">
<ThresholdRules>
<ThresholdRule Classname="Microsoft.VisualStudio.TestTools.WebStress.Rules.ThresholdRuleCompareConstant, Microsoft.VisualStudio.QualityTools.LoadTest">
<RuleParameters>
<RuleParameter Name="AlertIfOver" Value="False" />
<RuleParameter Name="WarningThreshold" Value="100" />
<RuleParameter Name="CriticalThreshold" Value="50" />
</RuleParameters>
</ThresholdRule>
</ThresholdRules>
</Counter>
<Counter Name="Page Faults/sec" />
<Counter Name="Pages/sec" />
<Counter Name="Pool Paged Bytes" RangeGroup="Memory Bytes" />
<Counter Name="Pool Nonpaged bytes" RangeGroup="Memory Bytes" />
</Counters>
</CounterCategory>
<CounterCategory Name="Network Interface">
<Counters>
<Counter Name="Bytes Received/sec" RangeGroup="Network Bytes" />
<Counter Name="Bytes Sent/sec" RangeGroup="Network Bytes" />
<Counter Name="Output Queue Length">
<ThresholdRules>
<ThresholdRule Classname="Microsoft.VisualStudio.TestTools.WebStress.Rules.ThresholdRuleCompareConstant, Microsoft.VisualStudio.QualityTools.LoadTest">
<RuleParameters>
<RuleParameter Name="AlertIfOver" Value="True" />
<RuleParameter Name="WarningThreshold" Value="1.5" />
<RuleParameter Name="CriticalThreshold" Value="2" />
</RuleParameters>
</ThresholdRule>
</ThresholdRules>
</Counter>
<Counter Name="Packets Received/sec" RangeGroup="Network Packets" />
<Counter Name="Packets Sent/sec" RangeGroup="Network Packets" />
<Counter Name="Current Bandwidth" RangeGroup="Network Bytes" />
<Counter Name="Bytes Total/sec" RangeGroup="Network Bytes">
<ThresholdRules>
<ThresholdRule Classname="Microsoft.VisualStudio.TestTools.WebStress.Rules.ThresholdRuleCompareCounters, Microsoft.VisualStudio.QualityTools.LoadTest, Version=15.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a">
<RuleParameters>
<RuleParameter Name="DependentCategory" Value="Network Interface" />
<RuleParameter Name="DependentCounter" Value="Current Bandwidth" />
<RuleParameter Name="DependentInstance" Value="" />
<RuleParameter Name="AlertIfOver" Value="True" />
<RuleParameter Name="WarningThreshold" Value="0.6" />
<RuleParameter Name="CriticalThreshold" Value="0.7" />
</RuleParameters>
</ThresholdRule>
</ThresholdRules>
</Counter>
</Counters>
<Instances>
<Instance Name="*" />
</Instances>
</CounterCategory>
<CounterCategory Name="PhysicalDisk">
<Counters>
<Counter Name="% Disk Read Time" Range="100" />
<Counter Name="% Disk Time" Range="100" />
<Counter Name="% Disk Write Time" Range="100" />
<Counter Name="% Idle Time" Range="100" HigherIsBetter="true">
<ThresholdRules>
<ThresholdRule Classname="Microsoft.VisualStudio.TestTools.WebStress.Rules.ThresholdRuleCompareConstant, Microsoft.VisualStudio.QualityTools.LoadTest">
<RuleParameters>
<RuleParameter Name="AlertIfOver" Value="False" />
<RuleParameter Name="WarningThreshold" Value="40" />
<RuleParameter Name="CriticalThreshold" Value="20" />
</RuleParameters>
</ThresholdRule>
</ThresholdRules>
</Counter>
<Counter Name="Avg. Disk Bytes/Read" RangeGroup="DiskBytesRate" />
<Counter Name="Avg. Disk Bytes/Transfer" RangeGroup="DiskBytesRate" />
<Counter Name="Avg. Disk Bytes/Write" RangeGroup="DiskBytesRate" />
<Counter Name="Avg. Disk Queue Length" RangeGroup="Disk Queue Length" />
<Counter Name="Avg. Disk Read Queue Length" RangeGroup="Disk Queue Length" />
<Counter Name="Avg. Disk Write Queue Length" RangeGroup="Disk Queue Length" />
<Counter Name="Current Disk Queue Length" RangeGroup="Disk Queue Length" />
<Counter Name="Avg. Disk sec/Read" RangeGroup="Disk sec" />
<Counter Name="Avg. Disk sec/Transfer" RangeGroup="Disk sec" />
<Counter Name="Avg. Disk sec/Write" RangeGroup="Disk sec" />
<Counter Name="Disk Bytes/sec" RangeGroup="Disk Bytes sec" />
<Counter Name="Disk Read Bytes/sec" RangeGroup="Disk Bytes sec" />
<Counter Name="Disk Reads/sec" RangeGroup="Disk Transfers sec" />
<Counter Name="Disk Transfers/sec" RangeGroup="Disk Transfers sec" />
<Counter Name="Disk Write Bytes/sec" RangeGroup="Disk Bytes sec" />
<Counter Name="Disk Writes/sec" RangeGroup="Disk Transfers sec" />
<Counter Name="Split IO/Sec" RangeGroup="Disk Transfers sec" />
</Counters>
<Instances>
<Instance Name="*" />
</Instances>
</CounterCategory>
<CounterCategory Name="Processor">
<Counters>
<Counter Name="% Processor Time" Range="100">
<ThresholdRules>
<ThresholdRule Classname="Microsoft.VisualStudio.TestTools.WebStress.Rules.ThresholdRuleCompareConstant, Microsoft.VisualStudio.QualityTools.LoadTest">
<RuleParameters>
<RuleParameter Name="AlertIfOver" Value="True" />
<RuleParameter Name="WarningThreshold" Value="75" />
<RuleParameter Name="CriticalThreshold" Value="90" />
</RuleParameters>
</ThresholdRule>
</ThresholdRules>
</Counter>
<Counter Name="% Privileged Time" Range="100" />
<Counter Name="% User Time" Range="100" />
</Counters>
<Instances>
<Instance Name="_Total" />
</Instances>
</CounterCategory>
<CounterCategory Name="System">
<Counters>
<Counter Name="Context Switches/sec" />
<Counter Name="Processes" />
<Counter Name="Processor Queue Length" />
<Counter Name="Threads" />
</Counters>
</CounterCategory>
<CounterCategory Name="Process">
<Counters>
<Counter Name="% Processor Time" RangeGroup="Processor Time" />
<Counter Name="% Privileged Time" RangeGroup="Processor Time" />
<Counter Name="% User Time" RangeGroup="Processor Time" />
<Counter Name="Handle Count" />
<Counter Name="Thread Count" />
<Counter Name="Private Bytes" RangeGroup="Memory Bytes" />
<Counter Name="Virtual Bytes" RangeGroup="Memory Bytes" />
<Counter Name="Working Set" RangeGroup="Memory Bytes" />
</Counters>
<Instances>
<Instance Name="QTController" />
<Instance Name="QTController64" />
</Instances>
</CounterCategory>
</CounterCategories>
<DefaultCountersForAutomaticGraphs>
<DefaultCounter CategoryName="Processor" CounterName="% Processor Time" InstanceName="_Total" GraphName="" />
<DefaultCounter CategoryName="Memory" CounterName="Available MBytes" InstanceName="" GraphName="" />
</DefaultCountersForAutomaticGraphs>
</CounterSet>
<CounterSet Name="Agent" CounterSetType="Agent" LocId="CounterSet_Agent">
<CounterCategories>
<CounterCategory Name="Memory">
<Counters>
<Counter Name="% Committed Bytes In Use" Range="100" />
<Counter Name="Available MBytes" RangeGroup="Memory Bytes" HigherIsBetter="true">
<ThresholdRules>
<ThresholdRule Classname="Microsoft.VisualStudio.TestTools.WebStress.Rules.ThresholdRuleCompareConstant, Microsoft.VisualStudio.QualityTools.LoadTest">
<RuleParameters>
<RuleParameter Name="AlertIfOver" Value="False" />
<RuleParameter Name="WarningThreshold" Value="100" />
<RuleParameter Name="CriticalThreshold" Value="50" />
</RuleParameters>
</ThresholdRule>
</ThresholdRules>
</Counter>
<Counter Name="Page Faults/sec" />
<Counter Name="Pages/sec" />
<Counter Name="Pool Paged Bytes" RangeGroup="Memory Bytes" />
<Counter Name="Pool Nonpaged bytes" RangeGroup="Memory Bytes" />
</Counters>
</CounterCategory>
<CounterCategory Name="Network Interface">
<Counters>
<Counter Name="Bytes Received/sec" RangeGroup="Network Bytes" />
<Counter Name="Bytes Sent/sec" RangeGroup="Network Bytes" />
<Counter Name="Output Queue Length">
<ThresholdRules>
<ThresholdRule Classname="Microsoft.VisualStudio.TestTools.WebStress.Rules.ThresholdRuleCompareConstant, Microsoft.VisualStudio.QualityTools.LoadTest">
<RuleParameters>
<RuleParameter Name="AlertIfOver" Value="True" />
<RuleParameter Name="WarningThreshold" Value="1.5" />
<RuleParameter Name="CriticalThreshold" Value="2" />
</RuleParameters>
</ThresholdRule>
</ThresholdRules>
</Counter>
<Counter Name="Packets Received/sec" RangeGroup="Network Packets" />
<Counter Name="Packets Sent/sec" RangeGroup="Network Packets" />
<Counter Name="Current Bandwidth" RangeGroup="Network Bytes" />
<Counter Name="Bytes Total/sec" RangeGroup="Network Bytes">
<ThresholdRules>
<ThresholdRule Classname="Microsoft.VisualStudio.TestTools.WebStress.Rules.ThresholdRuleCompareCounters, Microsoft.VisualStudio.QualityTools.LoadTest, Version=15.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a">
<RuleParameters>
<RuleParameter Name="DependentCategory" Value="Network Interface" />
<RuleParameter Name="DependentCounter" Value="Current Bandwidth" />
<RuleParameter Name="DependentInstance" Value="" />
<RuleParameter Name="AlertIfOver" Value="True" />
<RuleParameter Name="WarningThreshold" Value="0.6" />
<RuleParameter Name="CriticalThreshold" Value="0.7" />
</RuleParameters>
</ThresholdRule>
</ThresholdRules>
</Counter>
</Counters>
<Instances>
<Instance Name="*" />
</Instances>
</CounterCategory>
<CounterCategory Name="PhysicalDisk">
<Counters>
<Counter Name="% Disk Read Time" Range="100" />
<Counter Name="% Disk Time" Range="100" />
<Counter Name="% Disk Write Time" Range="100" />
<Counter Name="% Idle Time" Range="100" HigherIsBetter="true">
<ThresholdRules>
<ThresholdRule Classname="Microsoft.VisualStudio.TestTools.WebStress.Rules.ThresholdRuleCompareConstant, Microsoft.VisualStudio.QualityTools.LoadTest">
<RuleParameters>
<RuleParameter Name="AlertIfOver" Value="False" />
<RuleParameter Name="WarningThreshold" Value="40" />
<RuleParameter Name="CriticalThreshold" Value="20" />
</RuleParameters>
</ThresholdRule>
</ThresholdRules>
</Counter>
<Counter Name="Avg. Disk Bytes/Read" RangeGroup="DiskBytesRate" />
<Counter Name="Avg. Disk Bytes/Transfer" RangeGroup="DiskBytesRate" />
<Counter Name="Avg. Disk Bytes/Write" RangeGroup="DiskBytesRate" />
<Counter Name="Avg. Disk Queue Length" RangeGroup="Disk Queue Length" />
<Counter Name="Avg. Disk Read Queue Length" RangeGroup="Disk Queue Length" />
<Counter Name="Avg. Disk Write Queue Length" RangeGroup="Disk Queue Length" />
<Counter Name="Current Disk Queue Length" RangeGroup="Disk Queue Length" />
<Counter Name="Avg. Disk sec/Read" RangeGroup="Disk sec" />
<Counter Name="Avg. Disk sec/Transfer" RangeGroup="Disk sec" />
<Counter Name="Avg. Disk sec/Write" RangeGroup="Disk sec" />
<Counter Name="Disk Bytes/sec" RangeGroup="Disk Bytes sec" />
<Counter Name="Disk Read Bytes/sec" RangeGroup="Disk Bytes sec" />
<Counter Name="Disk Reads/sec" RangeGroup="Disk Transfers sec" />
<Counter Name="Disk Transfers/sec" RangeGroup="Disk Transfers sec" />
<Counter Name="Disk Write Bytes/sec" RangeGroup="Disk Bytes sec" />
<Counter Name="Disk Writes/sec" RangeGroup="Disk Transfers sec" />
<Counter Name="Split IO/Sec" RangeGroup="Disk Transfers sec" />
</Counters>
<Instances>
<Instance Name="*" />
</Instances>
</CounterCategory>
<CounterCategory Name="Processor">
<Counters>
<Counter Name="% Processor Time" Range="100">
<ThresholdRules>
<ThresholdRule Classname="Microsoft.VisualStudio.TestTools.WebStress.Rules.ThresholdRuleCompareConstant, Microsoft.VisualStudio.QualityTools.LoadTest">
<RuleParameters>
<RuleParameter Name="AlertIfOver" Value="True" />
<RuleParameter Name="WarningThreshold" Value="75" />
<RuleParameter Name="CriticalThreshold" Value="90" />
</RuleParameters>
</ThresholdRule>
</ThresholdRules>
</Counter>
<Counter Name="% Privileged Time" Range="100" />
<Counter Name="% User Time" Range="100" />
</Counters>
<Instances>
<Instance Name="0" />
<Instance Name="_Total" />
</Instances>
</CounterCategory>
<CounterCategory Name="System">
<Counters>
<Counter Name="Context Switches/sec" />
<Counter Name="Processes" />
<Counter Name="Processor Queue Length" />
<Counter Name="Threads" />
</Counters>
</CounterCategory>
<CounterCategory Name="Process">
<Counters>
<Counter Name="% Processor Time" RangeGroup="Processor Time" />
<Counter Name="% Privileged Time" RangeGroup="Processor Time" />
<Counter Name="% User Time" RangeGroup="Processor Time" />
<Counter Name="Handle Count" />
<Counter Name="Thread Count" />
<Counter Name="Private Bytes" RangeGroup="Memory Bytes" />
<Counter Name="Virtual Bytes" RangeGroup="Memory Bytes" />
<Counter Name="Working Set" RangeGroup="Memory Bytes" />
</Counters>
<Instances>
<Instance Name="devenv" />
<Instance Name="QTAgentService" />
<Instance Name="QTAgent" />
<Instance Name="QTAgent32" />
<Instance Name="QTDCAgent" />
<Instance Name="QTDCAgent32" />
<Instance Name="QTAgent_35" />
<Instance Name="QTAgent_40" />
<Instance Name="QTAgent32_35" />
<Instance Name="QTAgent32_40" />
</Instances>
</CounterCategory>
</CounterCategories>
<DefaultCountersForAutomaticGraphs>
<DefaultCounter CategoryName="Processor" CounterName="% Processor Time" InstanceName="0" GraphName="" RunType="Local" />
<DefaultCounter CategoryName="Processor" CounterName="% Processor Time" InstanceName="_Total" GraphName="" RunType="Remote" />
<DefaultCounter CategoryName="Memory" CounterName="Available MBytes" InstanceName="" GraphName="" />
</DefaultCountersForAutomaticGraphs>
</CounterSet>
</CounterSets>
<RunConfigurations>
<RunConfiguration Name="Run Settings1" Description="" ResultsStoreType="Database" TimingDetailsStorage="AllIndividualDetails" SaveTestLogsOnError="true" SaveTestLogsFrequency="0" MaxErrorDetails="200" MaxErrorsPerType="1000" MaxThresholdViolations="1000" MaxRequestUrlsReported="1000" UseTestIterations="false" RunDuration="300" WarmupTime="60" CoolDownTime="0" TestIterations="100" WebTestConnectionModel="ConnectionPerUser" WebTestConnectionPoolSize="50" SampleRate="15" ValidationLevel="High" SqlTracingConnectString="" SqlTracingConnectStringDisplayValue="" SqlTracingDirectory="" SqlTracingEnabled="false" SqlTracingFileCount="2" SqlTracingRolloverEnabled="true" SqlTracingMinimumDuration="500" RunUnitTestsInAppDomain="true" CoreCount="0" ResourcesRetentionTimeInMinutes="0" AgentDiagnosticsLevel="Warning">
<CounterSetMappings>
<CounterSetMapping ComputerName="[CONTROLLER MACHINE]">
<CounterSetReferences>
<CounterSetReference CounterSetName="LoadTest" />
<CounterSetReference CounterSetName="Controller" />
</CounterSetReferences>
</CounterSetMapping>
<CounterSetMapping ComputerName="[AGENT MACHINES]">
<CounterSetReferences>
<CounterSetReference CounterSetName="Agent" />
</CounterSetReferences>
</CounterSetMapping>
</CounterSetMappings>
<LoadGeneratorLocations>
<GeoLocation Location="Default" Percentage="100" />
</LoadGeneratorLocations>
</RunConfiguration>
</RunConfigurations>
</LoadTest>

+ 19
- 2
test/Services/LoadTest/LoadTest.csproj View File

@ -54,7 +54,9 @@
<Compile Include="Properties\AssemblyInfo.cs" /> <Compile Include="Properties\AssemblyInfo.cs" />
</ItemGroup> </ItemGroup>
<ItemGroup> <ItemGroup>
<None Include="app.config" />
<None Include="app.config">
<SubType>Designer</SubType>
</None>
<None Include="Basket.API\AddBasket.webtest"> <None Include="Basket.API\AddBasket.webtest">
<CopyToOutputDirectory>Always</CopyToOutputDirectory> <CopyToOutputDirectory>Always</CopyToOutputDirectory>
</None> </None>
@ -91,6 +93,21 @@
<None Include="Identity.API\Login.webtest"> <None Include="Identity.API\Login.webtest">
<CopyToOutputDirectory>Always</CopyToOutputDirectory> <CopyToOutputDirectory>Always</CopyToOutputDirectory>
</None> </None>
<None Include="Campaigns.loadtest">
<CopyToOutputDirectory>Always</CopyToOutputDirectory>
</None>
<None Include="Basket.loadtest">
<CopyToOutputDirectory>Always</CopyToOutputDirectory>
</None>
<None Include="Catalog.loadtest">
<CopyToOutputDirectory>Always</CopyToOutputDirectory>
</None>
<None Include="Locations.loadtest">
<CopyToOutputDirectory>Always</CopyToOutputDirectory>
</None>
<None Include="OrderProducts.loadtest">
<CopyToOutputDirectory>Always</CopyToOutputDirectory>
</None>
<None Include="Location.API\GetAllLocations.webtest"> <None Include="Location.API\GetAllLocations.webtest">
<CopyToOutputDirectory>Always</CopyToOutputDirectory> <CopyToOutputDirectory>Always</CopyToOutputDirectory>
</None> </None>
@ -138,7 +155,7 @@
</None> </None>
<None Include="WebMVC\CreateNewOrder.webtest"> <None Include="WebMVC\CreateNewOrder.webtest">
<CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory> <CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
</None>
</None>
</ItemGroup> </ItemGroup>
<ItemGroup /> <ItemGroup />
<Choose> <Choose>


+ 9
- 1
test/Services/LoadTest/Location.API/GetUserLocation.webtest View File

@ -1,7 +1,7 @@
<?xml version="1.0" encoding="utf-8"?> <?xml version="1.0" encoding="utf-8"?>
<WebTest Name="GetUserLocation" Id="56a245fe-0a4a-487d-a089-c634a70a486e" 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="GetUserLocation" Id="56a245fe-0a4a-487d-a089-c634a70a486e" 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> <Items>
<Request Method="GET" Guid="d24fe957-0cbb-46d4-8478-974de57e5cba" Version="1.1" Url="{{LocalTestSettings.LocationsApiServer.url}}/api/{{LocalTestSettings.ApiVersion.value}}/Locations/user/{{LocalTestSettings.User.id}}" 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="d24fe957-0cbb-46d4-8478-974de57e5cba" Version="1.1" Url="{{LocalTestSettings.LocationsApiServer.url}}/api/{{LocalTestSettings.ApiVersion.value}}/Locations/user/{{GenGuid}}" ThinkTime="0" Timeout="300" ParseDependentRequests="True" FollowRedirects="True" RecordResult="True" Cache="False" ResponseTimeGoal="0" Encoding="utf-8" ExpectedHttpStatusCode="0" ExpectedResponseUrl="" ReportingName="" IgnoreHttpStatusCode="False">
<Headers> <Headers>
<Header Name="Accept" Value="application/json" /> <Header Name="Accept" Value="application/json" />
<Header Name="Authorization" Value="Email demouser@microsoft.com" /> <Header Name="Authorization" Value="Email demouser@microsoft.com" />
@ -28,4 +28,12 @@
</RuleParameters> </RuleParameters>
</ValidationRule> </ValidationRule>
</ValidationRules> </ValidationRules>
<WebTestPlugins>
<WebTestPlugin Classname="Microsoft.SystemCenter.Cloud.GsmPlugins.GuidGeneratorWebTestPlugin, Microsoft.VisualStudio.QualityTools.WebTestFramework, Version=10.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a" DisplayName="Generate Guid" Description="Generates a new guid.">
<RuleParameters>
<RuleParameter Name="ContextParameterName" Value="GenGuid" />
<RuleParameter Name="OutputFormat" Value="" />
</RuleParameters>
</WebTestPlugin>
</WebTestPlugins>
</WebTest> </WebTest>

+ 468
- 0
test/Services/LoadTest/Locations.loadtest View File

@ -0,0 +1,468 @@
<?xml version="1.0" encoding="utf-8"?>
<LoadTest Name="Locations" Description="" Owner="" storage="c:\users\rtomas\projects\eshop\eshoponcontainers\test\services\loadtest\locations.loadtest" Priority="2147483647" Enabled="true" CssProjectStructure="" CssIteration="" DeploymentItemsEditable="" WorkItemIds="" TraceLevel="None" CurrentRunConfig="Run Settings1" Id="98ac8f63-7e85-42c1-85b8-15ef93acd429" xmlns="http://microsoft.com/schemas/VisualStudio/TeamTest/2010">
<Scenarios>
<Scenario Name="Locations" DelayBetweenIterations="0" PercentNewUsers="0" IPSwitching="false" TestMixType="PercentageOfTestsStarted" ApplyDistributionToPacingDelay="true" MaxTestIterations="0" DisableDuringWarmup="false" DelayStartTime="0" AllowedAgents="">
<ThinkProfile Value="0.2" Pattern="NormalDistribution" />
<LoadProfile Pattern="Step" InitialUsers="1" MaxUsers="2" StepUsers="10" StepDuration="10" StepRampTime="0" />
<TestMix>
<TestProfile Name="CreateOrUpdateUserLocation" Path="location.api\createorupdateuserlocation.webtest" Id="06bd2768-7d01-40bf-8551-722afe4f3ed8" Percentage="46" Type="Microsoft.VisualStudio.TestTools.WebStress.DeclarativeWebTestElement, Microsoft.VisualStudio.QualityTools.LoadTest, Version=15.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a" />
<TestProfile Name="GetAllLocations" Path="location.api\getalllocations.webtest" Id="71241906-9e8a-4f2b-bdd7-20fa24cc7297" Percentage="11" Type="Microsoft.VisualStudio.TestTools.WebStress.DeclarativeWebTestElement, Microsoft.VisualStudio.QualityTools.LoadTest, Version=15.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a" />
<TestProfile Name="GetLocation" Path="location.api\getlocation.webtest" Id="f28f7c62-779b-422f-bde9-a91a0036602a" Percentage="11" Type="Microsoft.VisualStudio.TestTools.WebStress.DeclarativeWebTestElement, Microsoft.VisualStudio.QualityTools.LoadTest, Version=15.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a" />
<TestProfile Name="GetUserLocation" Path="location.api\getuserlocation.webtest" Id="56a245fe-0a4a-487d-a089-c634a70a486e" Percentage="32" Type="Microsoft.VisualStudio.TestTools.WebStress.DeclarativeWebTestElement, Microsoft.VisualStudio.QualityTools.LoadTest, Version=15.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a" />
</TestMix>
<BrowserMix>
<BrowserProfile Percentage="20">
<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>
<BrowserProfile Percentage="63">
<Browser Name="Chrome 2" MaxConnections="6">
<Headers>
<Header Name="User-Agent" Value="Mozilla/5.0 (Windows; U; Windows NT 5.1;) AppleWebKit/530.1 (KHTML, like Gecko) Chrome/2.0.169.1 Safari/530.1" />
<Header Name="Accept" Value="*/*" />
<Header Name="Accept-Language" Value="{{$IEAcceptLanguage}}" />
<Header Name="Accept-Encoding" Value="gzip,deflate" />
<Header Name="Accept-Charset" Value="ISO-8859-1,*,utf-8" />
</Headers>
</Browser>
</BrowserProfile>
<BrowserProfile Percentage="17">
<Browser Name="Safari 3" MaxConnections="4">
<Headers>
<Header Name="User-Agent" Value="Mozilla/5.0 (Windows; U; Windows NT 5.2; en-US) AppleWebKit/525.28 (KHTML, like Gecko) Version/3.2.2 Safari/525.28.1" />
<Header Name="Accept" Value="*/*" />
<Header Name="Accept-Language" Value="{{$IEAcceptLanguage}}" />
<Header Name="Accept-Encoding" Value="GZIP,deflate" />
<Header Name="Accept-Charset" Value="ISO-8859-1,utf-8;q=0.7,*;q=0.7" />
</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>
</Scenarios>
<CounterSets>
<CounterSet Name="LoadTest" CounterSetType="LoadTest" LocId="">
<CounterCategories>
<CounterCategory Name="LoadTest:Scenario">
<Counters>
<Counter Name="User Load" HigherIsBetter="true" />
<Counter Name="Tests Running" HigherIsBetter="true" />
</Counters>
</CounterCategory>
<CounterCategory Name="LoadTest:Test">
<Counters>
<Counter Name="Total Tests" HigherIsBetter="true" />
<Counter Name="Passed Tests" HigherIsBetter="true" />
<Counter Name="Failed Tests" />
<Counter Name="Tests/Sec" HigherIsBetter="true" />
<Counter Name="Passed Tests/Sec" HigherIsBetter="true" />
<Counter Name="Failed Tests/Sec" />
<Counter Name="Avg. Requests/Test" HigherIsBetter="true" />
<Counter Name="Avg. Test Time" />
<Counter Name="% Time in LoadTestPlugin" />
<Counter Name="% Time in WebTest code" />
<Counter Name="% Time in Rules" />
</Counters>
</CounterCategory>
<CounterCategory Name="LoadTest:Transaction">
<Counters>
<Counter Name="Total Transactions" HigherIsBetter="true" />
<Counter Name="Avg. Transaction Time" />
<Counter Name="Avg. Response Time" />
<Counter Name="Transactions/Sec" HigherIsBetter="true" />
</Counters>
</CounterCategory>
<CounterCategory Name="LoadTest:Errors">
<Counters>
<Counter Name="Http Errors" />
<Counter Name="Validation Rule Errors" />
<Counter Name="Extraction Rule Errors" />
<Counter Name="Requests Timed Out" />
<Counter Name="Exceptions" />
<Counter Name="Total Errors" />
<Counter Name="Errors/Sec" />
<Counter Name="Threshold Violations/Sec" />
</Counters>
</CounterCategory>
<CounterCategory Name="LoadTest:Page">
<Counters>
<Counter Name="Total Pages" HigherIsBetter="true" />
<Counter Name="Avg. Page Time" />
<Counter Name="Page Response Time Goal" HigherIsBetter="true" />
<Counter Name="% Pages Meeting Goal" HigherIsBetter="true" />
<Counter Name="Pages/Sec" HigherIsBetter="true" />
</Counters>
</CounterCategory>
<CounterCategory Name="LoadTest:Request">
<Counters>
<Counter Name="Total Requests" HigherIsBetter="true" />
<Counter Name="Passed Requests" HigherIsBetter="true" />
<Counter Name="Failed Requests" />
<Counter Name="Cached Requests" HigherIsBetter="true" />
<Counter Name="Requests/Sec" HigherIsBetter="true" />
<Counter Name="Passed Requests/Sec" HigherIsBetter="true" />
<Counter Name="Failed Requests/Sec" />
<Counter Name="Avg. First Byte Time" />
<Counter Name="Avg. Response Time" />
<Counter Name="Avg. Connection Wait Time">
<ThresholdRules>
<ThresholdRule Classname="Microsoft.VisualStudio.TestTools.WebStress.Rules.ThresholdRuleCompareCounters, Microsoft.VisualStudio.QualityTools.LoadTest, Version=15.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a">
<RuleParameters>
<RuleParameter Name="DependentCategory" Value="LoadTest:Page" />
<RuleParameter Name="DependentCounter" Value="Avg. Page Time" />
<RuleParameter Name="DependentInstance" Value="_Total" />
<RuleParameter Name="AlertIfOver" Value="True" />
<RuleParameter Name="WarningThreshold" Value="0.25" />
<RuleParameter Name="CriticalThreshold" Value="0.5" />
</RuleParameters>
</ThresholdRule>
</ThresholdRules>
</Counter>
<Counter Name="Avg. Content Length" />
</Counters>
</CounterCategory>
<CounterCategory Name="LoadTest:LogEntries">
<Counters>
<Counter Name="Total Log Entries" />
<Counter Name="Log Entries/Sec" />
</Counters>
</CounterCategory>
</CounterCategories>
</CounterSet>
<CounterSet Name="Controller" CounterSetType="Controller" LocId="CounterSet_Controller">
<CounterCategories>
<CounterCategory Name="Memory">
<Counters>
<Counter Name="% Committed Bytes In Use" Range="100" />
<Counter Name="Available MBytes" RangeGroup="Memory Bytes" HigherIsBetter="true">
<ThresholdRules>
<ThresholdRule Classname="Microsoft.VisualStudio.TestTools.WebStress.Rules.ThresholdRuleCompareConstant, Microsoft.VisualStudio.QualityTools.LoadTest">
<RuleParameters>
<RuleParameter Name="AlertIfOver" Value="False" />
<RuleParameter Name="WarningThreshold" Value="100" />
<RuleParameter Name="CriticalThreshold" Value="50" />
</RuleParameters>
</ThresholdRule>
</ThresholdRules>
</Counter>
<Counter Name="Page Faults/sec" />
<Counter Name="Pages/sec" />
<Counter Name="Pool Paged Bytes" RangeGroup="Memory Bytes" />
<Counter Name="Pool Nonpaged bytes" RangeGroup="Memory Bytes" />
</Counters>
</CounterCategory>
<CounterCategory Name="Network Interface">
<Counters>
<Counter Name="Bytes Received/sec" RangeGroup="Network Bytes" />
<Counter Name="Bytes Sent/sec" RangeGroup="Network Bytes" />
<Counter Name="Output Queue Length">
<ThresholdRules>
<ThresholdRule Classname="Microsoft.VisualStudio.TestTools.WebStress.Rules.ThresholdRuleCompareConstant, Microsoft.VisualStudio.QualityTools.LoadTest">
<RuleParameters>
<RuleParameter Name="AlertIfOver" Value="True" />
<RuleParameter Name="WarningThreshold" Value="1.5" />
<RuleParameter Name="CriticalThreshold" Value="2" />
</RuleParameters>
</ThresholdRule>
</ThresholdRules>
</Counter>
<Counter Name="Packets Received/sec" RangeGroup="Network Packets" />
<Counter Name="Packets Sent/sec" RangeGroup="Network Packets" />
<Counter Name="Current Bandwidth" RangeGroup="Network Bytes" />
<Counter Name="Bytes Total/sec" RangeGroup="Network Bytes">
<ThresholdRules>
<ThresholdRule Classname="Microsoft.VisualStudio.TestTools.WebStress.Rules.ThresholdRuleCompareCounters, Microsoft.VisualStudio.QualityTools.LoadTest, Version=15.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a">
<RuleParameters>
<RuleParameter Name="DependentCategory" Value="Network Interface" />
<RuleParameter Name="DependentCounter" Value="Current Bandwidth" />
<RuleParameter Name="DependentInstance" Value="" />
<RuleParameter Name="AlertIfOver" Value="True" />
<RuleParameter Name="WarningThreshold" Value="0.6" />
<RuleParameter Name="CriticalThreshold" Value="0.7" />
</RuleParameters>
</ThresholdRule>
</ThresholdRules>
</Counter>
</Counters>
<Instances>
<Instance Name="*" />
</Instances>
</CounterCategory>
<CounterCategory Name="PhysicalDisk">
<Counters>
<Counter Name="% Disk Read Time" Range="100" />
<Counter Name="% Disk Time" Range="100" />
<Counter Name="% Disk Write Time" Range="100" />
<Counter Name="% Idle Time" Range="100" HigherIsBetter="true">
<ThresholdRules>
<ThresholdRule Classname="Microsoft.VisualStudio.TestTools.WebStress.Rules.ThresholdRuleCompareConstant, Microsoft.VisualStudio.QualityTools.LoadTest">
<RuleParameters>
<RuleParameter Name="AlertIfOver" Value="False" />
<RuleParameter Name="WarningThreshold" Value="40" />
<RuleParameter Name="CriticalThreshold" Value="20" />
</RuleParameters>
</ThresholdRule>
</ThresholdRules>
</Counter>
<Counter Name="Avg. Disk Bytes/Read" RangeGroup="DiskBytesRate" />
<Counter Name="Avg. Disk Bytes/Transfer" RangeGroup="DiskBytesRate" />
<Counter Name="Avg. Disk Bytes/Write" RangeGroup="DiskBytesRate" />
<Counter Name="Avg. Disk Queue Length" RangeGroup="Disk Queue Length" />
<Counter Name="Avg. Disk Read Queue Length" RangeGroup="Disk Queue Length" />
<Counter Name="Avg. Disk Write Queue Length" RangeGroup="Disk Queue Length" />
<Counter Name="Current Disk Queue Length" RangeGroup="Disk Queue Length" />
<Counter Name="Avg. Disk sec/Read" RangeGroup="Disk sec" />
<Counter Name="Avg. Disk sec/Transfer" RangeGroup="Disk sec" />
<Counter Name="Avg. Disk sec/Write" RangeGroup="Disk sec" />
<Counter Name="Disk Bytes/sec" RangeGroup="Disk Bytes sec" />
<Counter Name="Disk Read Bytes/sec" RangeGroup="Disk Bytes sec" />
<Counter Name="Disk Reads/sec" RangeGroup="Disk Transfers sec" />
<Counter Name="Disk Transfers/sec" RangeGroup="Disk Transfers sec" />
<Counter Name="Disk Write Bytes/sec" RangeGroup="Disk Bytes sec" />
<Counter Name="Disk Writes/sec" RangeGroup="Disk Transfers sec" />
<Counter Name="Split IO/Sec" RangeGroup="Disk Transfers sec" />
</Counters>
<Instances>
<Instance Name="*" />
</Instances>
</CounterCategory>
<CounterCategory Name="Processor">
<Counters>
<Counter Name="% Processor Time" Range="100">
<ThresholdRules>
<ThresholdRule Classname="Microsoft.VisualStudio.TestTools.WebStress.Rules.ThresholdRuleCompareConstant, Microsoft.VisualStudio.QualityTools.LoadTest">
<RuleParameters>
<RuleParameter Name="AlertIfOver" Value="True" />
<RuleParameter Name="WarningThreshold" Value="75" />
<RuleParameter Name="CriticalThreshold" Value="90" />
</RuleParameters>
</ThresholdRule>
</ThresholdRules>
</Counter>
<Counter Name="% Privileged Time" Range="100" />
<Counter Name="% User Time" Range="100" />
</Counters>
<Instances>
<Instance Name="_Total" />
</Instances>
</CounterCategory>
<CounterCategory Name="System">
<Counters>
<Counter Name="Context Switches/sec" />
<Counter Name="Processes" />
<Counter Name="Processor Queue Length" />
<Counter Name="Threads" />
</Counters>
</CounterCategory>
<CounterCategory Name="Process">
<Counters>
<Counter Name="% Processor Time" RangeGroup="Processor Time" />
<Counter Name="% Privileged Time" RangeGroup="Processor Time" />
<Counter Name="% User Time" RangeGroup="Processor Time" />
<Counter Name="Handle Count" />
<Counter Name="Thread Count" />
<Counter Name="Private Bytes" RangeGroup="Memory Bytes" />
<Counter Name="Virtual Bytes" RangeGroup="Memory Bytes" />
<Counter Name="Working Set" RangeGroup="Memory Bytes" />
</Counters>
<Instances>
<Instance Name="QTController" />
<Instance Name="QTController64" />
</Instances>
</CounterCategory>
</CounterCategories>
<DefaultCountersForAutomaticGraphs>
<DefaultCounter CategoryName="Processor" CounterName="% Processor Time" InstanceName="_Total" GraphName="" />
<DefaultCounter CategoryName="Memory" CounterName="Available MBytes" InstanceName="" GraphName="" />
</DefaultCountersForAutomaticGraphs>
</CounterSet>
<CounterSet Name="Agent" CounterSetType="Agent" LocId="CounterSet_Agent">
<CounterCategories>
<CounterCategory Name="Memory">
<Counters>
<Counter Name="% Committed Bytes In Use" Range="100" />
<Counter Name="Available MBytes" RangeGroup="Memory Bytes" HigherIsBetter="true">
<ThresholdRules>
<ThresholdRule Classname="Microsoft.VisualStudio.TestTools.WebStress.Rules.ThresholdRuleCompareConstant, Microsoft.VisualStudio.QualityTools.LoadTest">
<RuleParameters>
<RuleParameter Name="AlertIfOver" Value="False" />
<RuleParameter Name="WarningThreshold" Value="100" />
<RuleParameter Name="CriticalThreshold" Value="50" />
</RuleParameters>
</ThresholdRule>
</ThresholdRules>
</Counter>
<Counter Name="Page Faults/sec" />
<Counter Name="Pages/sec" />
<Counter Name="Pool Paged Bytes" RangeGroup="Memory Bytes" />
<Counter Name="Pool Nonpaged bytes" RangeGroup="Memory Bytes" />
</Counters>
</CounterCategory>
<CounterCategory Name="Network Interface">
<Counters>
<Counter Name="Bytes Received/sec" RangeGroup="Network Bytes" />
<Counter Name="Bytes Sent/sec" RangeGroup="Network Bytes" />
<Counter Name="Output Queue Length">
<ThresholdRules>
<ThresholdRule Classname="Microsoft.VisualStudio.TestTools.WebStress.Rules.ThresholdRuleCompareConstant, Microsoft.VisualStudio.QualityTools.LoadTest">
<RuleParameters>
<RuleParameter Name="AlertIfOver" Value="True" />
<RuleParameter Name="WarningThreshold" Value="1.5" />
<RuleParameter Name="CriticalThreshold" Value="2" />
</RuleParameters>
</ThresholdRule>
</ThresholdRules>
</Counter>
<Counter Name="Packets Received/sec" RangeGroup="Network Packets" />
<Counter Name="Packets Sent/sec" RangeGroup="Network Packets" />
<Counter Name="Current Bandwidth" RangeGroup="Network Bytes" />
<Counter Name="Bytes Total/sec" RangeGroup="Network Bytes">
<ThresholdRules>
<ThresholdRule Classname="Microsoft.VisualStudio.TestTools.WebStress.Rules.ThresholdRuleCompareCounters, Microsoft.VisualStudio.QualityTools.LoadTest, Version=15.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a">
<RuleParameters>
<RuleParameter Name="DependentCategory" Value="Network Interface" />
<RuleParameter Name="DependentCounter" Value="Current Bandwidth" />
<RuleParameter Name="DependentInstance" Value="" />
<RuleParameter Name="AlertIfOver" Value="True" />
<RuleParameter Name="WarningThreshold" Value="0.6" />
<RuleParameter Name="CriticalThreshold" Value="0.7" />
</RuleParameters>
</ThresholdRule>
</ThresholdRules>
</Counter>
</Counters>
<Instances>
<Instance Name="*" />
</Instances>
</CounterCategory>
<CounterCategory Name="PhysicalDisk">
<Counters>
<Counter Name="% Disk Read Time" Range="100" />
<Counter Name="% Disk Time" Range="100" />
<Counter Name="% Disk Write Time" Range="100" />
<Counter Name="% Idle Time" Range="100" HigherIsBetter="true">
<ThresholdRules>
<ThresholdRule Classname="Microsoft.VisualStudio.TestTools.WebStress.Rules.ThresholdRuleCompareConstant, Microsoft.VisualStudio.QualityTools.LoadTest">
<RuleParameters>
<RuleParameter Name="AlertIfOver" Value="False" />
<RuleParameter Name="WarningThreshold" Value="40" />
<RuleParameter Name="CriticalThreshold" Value="20" />
</RuleParameters>
</ThresholdRule>
</ThresholdRules>
</Counter>
<Counter Name="Avg. Disk Bytes/Read" RangeGroup="DiskBytesRate" />
<Counter Name="Avg. Disk Bytes/Transfer" RangeGroup="DiskBytesRate" />
<Counter Name="Avg. Disk Bytes/Write" RangeGroup="DiskBytesRate" />
<Counter Name="Avg. Disk Queue Length" RangeGroup="Disk Queue Length" />
<Counter Name="Avg. Disk Read Queue Length" RangeGroup="Disk Queue Length" />
<Counter Name="Avg. Disk Write Queue Length" RangeGroup="Disk Queue Length" />
<Counter Name="Current Disk Queue Length" RangeGroup="Disk Queue Length" />
<Counter Name="Avg. Disk sec/Read" RangeGroup="Disk sec" />
<Counter Name="Avg. Disk sec/Transfer" RangeGroup="Disk sec" />
<Counter Name="Avg. Disk sec/Write" RangeGroup="Disk sec" />
<Counter Name="Disk Bytes/sec" RangeGroup="Disk Bytes sec" />
<Counter Name="Disk Read Bytes/sec" RangeGroup="Disk Bytes sec" />
<Counter Name="Disk Reads/sec" RangeGroup="Disk Transfers sec" />
<Counter Name="Disk Transfers/sec" RangeGroup="Disk Transfers sec" />
<Counter Name="Disk Write Bytes/sec" RangeGroup="Disk Bytes sec" />
<Counter Name="Disk Writes/sec" RangeGroup="Disk Transfers sec" />
<Counter Name="Split IO/Sec" RangeGroup="Disk Transfers sec" />
</Counters>
<Instances>
<Instance Name="*" />
</Instances>
</CounterCategory>
<CounterCategory Name="Processor">
<Counters>
<Counter Name="% Processor Time" Range="100">
<ThresholdRules>
<ThresholdRule Classname="Microsoft.VisualStudio.TestTools.WebStress.Rules.ThresholdRuleCompareConstant, Microsoft.VisualStudio.QualityTools.LoadTest">
<RuleParameters>
<RuleParameter Name="AlertIfOver" Value="True" />
<RuleParameter Name="WarningThreshold" Value="75" />
<RuleParameter Name="CriticalThreshold" Value="90" />
</RuleParameters>
</ThresholdRule>
</ThresholdRules>
</Counter>
<Counter Name="% Privileged Time" Range="100" />
<Counter Name="% User Time" Range="100" />
</Counters>
<Instances>
<Instance Name="0" />
<Instance Name="_Total" />
</Instances>
</CounterCategory>
<CounterCategory Name="System">
<Counters>
<Counter Name="Context Switches/sec" />
<Counter Name="Processes" />
<Counter Name="Processor Queue Length" />
<Counter Name="Threads" />
</Counters>
</CounterCategory>
<CounterCategory Name="Process">
<Counters>
<Counter Name="% Processor Time" RangeGroup="Processor Time" />
<Counter Name="% Privileged Time" RangeGroup="Processor Time" />
<Counter Name="% User Time" RangeGroup="Processor Time" />
<Counter Name="Handle Count" />
<Counter Name="Thread Count" />
<Counter Name="Private Bytes" RangeGroup="Memory Bytes" />
<Counter Name="Virtual Bytes" RangeGroup="Memory Bytes" />
<Counter Name="Working Set" RangeGroup="Memory Bytes" />
</Counters>
<Instances>
<Instance Name="devenv" />
<Instance Name="QTAgentService" />
<Instance Name="QTAgent" />
<Instance Name="QTAgent32" />
<Instance Name="QTDCAgent" />
<Instance Name="QTDCAgent32" />
<Instance Name="QTAgent_35" />
<Instance Name="QTAgent_40" />
<Instance Name="QTAgent32_35" />
<Instance Name="QTAgent32_40" />
</Instances>
</CounterCategory>
</CounterCategories>
<DefaultCountersForAutomaticGraphs>
<DefaultCounter CategoryName="Processor" CounterName="% Processor Time" InstanceName="0" GraphName="" RunType="Local" />
<DefaultCounter CategoryName="Processor" CounterName="% Processor Time" InstanceName="_Total" GraphName="" RunType="Remote" />
<DefaultCounter CategoryName="Memory" CounterName="Available MBytes" InstanceName="" GraphName="" />
</DefaultCountersForAutomaticGraphs>
</CounterSet>
</CounterSets>
<RunConfigurations>
<RunConfiguration Name="Run Settings1" Description="" ResultsStoreType="Database" TimingDetailsStorage="AllIndividualDetails" SaveTestLogsOnError="true" SaveTestLogsFrequency="0" MaxErrorDetails="200" MaxErrorsPerType="1000" MaxThresholdViolations="1000" MaxRequestUrlsReported="1000" UseTestIterations="false" RunDuration="300" WarmupTime="60" CoolDownTime="0" TestIterations="100" WebTestConnectionModel="ConnectionPerUser" WebTestConnectionPoolSize="50" SampleRate="15" ValidationLevel="High" SqlTracingConnectString="" SqlTracingConnectStringDisplayValue="" SqlTracingDirectory="" SqlTracingEnabled="false" SqlTracingFileCount="2" SqlTracingRolloverEnabled="true" SqlTracingMinimumDuration="500" RunUnitTestsInAppDomain="true" CoreCount="0" ResourcesRetentionTimeInMinutes="0" AgentDiagnosticsLevel="Warning">
<CounterSetMappings>
<CounterSetMapping ComputerName="[CONTROLLER MACHINE]">
<CounterSetReferences>
<CounterSetReference CounterSetName="LoadTest" />
<CounterSetReference CounterSetName="Controller" />
</CounterSetReferences>
</CounterSetMapping>
<CounterSetMapping ComputerName="[AGENT MACHINES]">
<CounterSetReferences>
<CounterSetReference CounterSetName="Agent" />
</CounterSetReferences>
</CounterSetMapping>
</CounterSetMappings>
<LoadGeneratorLocations>
<GeoLocation Location="Default" Percentage="100" />
</LoadGeneratorLocations>
</RunConfiguration>
</RunConfigurations>
</LoadTest>

+ 468
- 0
test/Services/LoadTest/OrderProducts.loadtest View File

@ -0,0 +1,468 @@
<?xml version="1.0" encoding="utf-8"?>
<LoadTest Name="OrderProducts" Description="" Owner="" storage="c:\users\rtomas\projects\eshop\eshoponcontainers\test\services\loadtest\orderproducts.loadtest" Priority="2147483647" Enabled="true" CssProjectStructure="" CssIteration="" DeploymentItemsEditable="" WorkItemIds="" TraceLevel="None" CurrentRunConfig="Run Settings1" Id="e84f41c8-a3fb-4aca-bc14-bc685d7207c4" xmlns="http://microsoft.com/schemas/VisualStudio/TeamTest/2010">
<Scenarios>
<Scenario Name="OrderProductsLoadTest" DelayBetweenIterations="0" PercentNewUsers="0" IPSwitching="false" TestMixType="PercentageOfTestsStarted" ApplyDistributionToPacingDelay="true" MaxTestIterations="0" DisableDuringWarmup="false" DelayStartTime="0" AllowedAgents="">
<ThinkProfile Value="0.2" Pattern="NormalDistribution" />
<LoadProfile Pattern="Step" InitialUsers="1" MaxUsers="50" StepUsers="10" StepDuration="10" StepRampTime="10" />
<TestMix>
<TestProfile Name="GetItems" Path="catalog.api\getitems.webtest" Id="e527de7e-beff-4824-af52-dda763fd5e6c" Percentage="19" Type="Microsoft.VisualStudio.TestTools.WebStress.DeclarativeWebTestElement, Microsoft.VisualStudio.QualityTools.LoadTest, Version=15.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a" />
<TestProfile Name="GetCatalogTypes" Path="catalog.api\getcatalogtypes.webtest" Id="7df20b29-d5c3-447b-b73d-95c63e9c4061" Percentage="15" Type="Microsoft.VisualStudio.TestTools.WebStress.DeclarativeWebTestElement, Microsoft.VisualStudio.QualityTools.LoadTest, Version=15.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a" />
<TestProfile Name="GetCatalogFiltered" Path="catalog.api\getcatalogfiltered.webtest" Id="5de3172f-52d2-4cd9-901a-95cf18f303b0" Percentage="14" Type="Microsoft.VisualStudio.TestTools.WebStress.DeclarativeWebTestElement, Microsoft.VisualStudio.QualityTools.LoadTest, Version=15.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a" />
<TestProfile Name="GetCatalogBrands" Path="catalog.api\getcatalogbrands.webtest" Id="df9fded6-bc66-4bc8-b812-49b459175ef3" Percentage="13" Type="Microsoft.VisualStudio.TestTools.WebStress.DeclarativeWebTestElement, Microsoft.VisualStudio.QualityTools.LoadTest, Version=15.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a" />
<TestProfile Name="CatalogFilter" Path="webmvc\catalogfilter.webtest" Id="f1ad4bba-6008-4388-872f-51b76e01e06b" Percentage="24" Type="Microsoft.VisualStudio.TestTools.WebStress.DeclarativeWebTestElement, Microsoft.VisualStudio.QualityTools.LoadTest, Version=15.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a" />
<TestProfile Name="AddProducts" Path="webmvc\addproducts.webtest" Id="2c9d53ae-0237-47bd-a5d2-6500ef5d8fcb" Percentage="4" Type="Microsoft.VisualStudio.TestTools.WebStress.DeclarativeWebTestElement, Microsoft.VisualStudio.QualityTools.LoadTest, Version=15.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a" />
<TestProfile Name="CreateNewOrder" Path="webmvc\createneworder.webtest" Id="f7d59638-c9f2-43e5-92b1-37e9437a37fa" Percentage="3" Type="Microsoft.VisualStudio.TestTools.WebStress.DeclarativeWebTestElement, Microsoft.VisualStudio.QualityTools.LoadTest, Version=15.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a" />
<TestProfile Name="GetAllOrders" Path="ordering.api\getallorders.webtest" Id="bb2ad65f-7035-45c6-ab02-003376d478f4" Percentage="2" Type="Microsoft.VisualStudio.TestTools.WebStress.DeclarativeWebTestElement, Microsoft.VisualStudio.QualityTools.LoadTest, Version=15.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a" />
<TestProfile Name="GetOrder" Path="ordering.api\getorder.webtest" Id="46e9954f-0fe7-4e85-a5e6-9e77fc76238e" Percentage="1" Type="Microsoft.VisualStudio.TestTools.WebStress.DeclarativeWebTestElement, Microsoft.VisualStudio.QualityTools.LoadTest, Version=15.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a" />
</TestMix>
<BrowserMix>
<BrowserProfile Percentage="19">
<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>
<BrowserProfile Percentage="63">
<Browser Name="Chrome 2" MaxConnections="6">
<Headers>
<Header Name="User-Agent" Value="Mozilla/5.0 (Windows; U; Windows NT 5.1;) AppleWebKit/530.1 (KHTML, like Gecko) Chrome/2.0.169.1 Safari/530.1" />
<Header Name="Accept" Value="*/*" />
<Header Name="Accept-Language" Value="{{$IEAcceptLanguage}}" />
<Header Name="Accept-Encoding" Value="gzip,deflate" />
<Header Name="Accept-Charset" Value="ISO-8859-1,*,utf-8" />
</Headers>
</Browser>
</BrowserProfile>
<BrowserProfile Percentage="18">
<Browser Name="Safari 3" MaxConnections="4">
<Headers>
<Header Name="User-Agent" Value="Mozilla/5.0 (Windows; U; Windows NT 5.2; en-US) AppleWebKit/525.28 (KHTML, like Gecko) Version/3.2.2 Safari/525.28.1" />
<Header Name="Accept" Value="*/*" />
<Header Name="Accept-Language" Value="{{$IEAcceptLanguage}}" />
<Header Name="Accept-Encoding" Value="GZIP,deflate" />
<Header Name="Accept-Charset" Value="ISO-8859-1,utf-8;q=0.7,*;q=0.7" />
</Headers>
</Browser>
</BrowserProfile>
</BrowserMix>
</Scenario>
</Scenarios>
<CounterSets>
<CounterSet Name="LoadTest" CounterSetType="LoadTest" LocId="">
<CounterCategories>
<CounterCategory Name="LoadTest:Scenario">
<Counters>
<Counter Name="User Load" HigherIsBetter="true" />
<Counter Name="Tests Running" HigherIsBetter="true" />
</Counters>
</CounterCategory>
<CounterCategory Name="LoadTest:Test">
<Counters>
<Counter Name="Total Tests" HigherIsBetter="true" />
<Counter Name="Passed Tests" HigherIsBetter="true" />
<Counter Name="Failed Tests" />
<Counter Name="Tests/Sec" HigherIsBetter="true" />
<Counter Name="Passed Tests/Sec" HigherIsBetter="true" />
<Counter Name="Failed Tests/Sec" />
<Counter Name="Avg. Requests/Test" HigherIsBetter="true" />
<Counter Name="Avg. Test Time" />
<Counter Name="% Time in LoadTestPlugin" />
<Counter Name="% Time in WebTest code" />
<Counter Name="% Time in Rules" />
</Counters>
</CounterCategory>
<CounterCategory Name="LoadTest:Transaction">
<Counters>
<Counter Name="Total Transactions" HigherIsBetter="true" />
<Counter Name="Avg. Transaction Time" />
<Counter Name="Avg. Response Time" />
<Counter Name="Transactions/Sec" HigherIsBetter="true" />
</Counters>
</CounterCategory>
<CounterCategory Name="LoadTest:Errors">
<Counters>
<Counter Name="Http Errors" />
<Counter Name="Validation Rule Errors" />
<Counter Name="Extraction Rule Errors" />
<Counter Name="Requests Timed Out" />
<Counter Name="Exceptions" />
<Counter Name="Total Errors" />
<Counter Name="Errors/Sec" />
<Counter Name="Threshold Violations/Sec" />
</Counters>
</CounterCategory>
<CounterCategory Name="LoadTest:Page">
<Counters>
<Counter Name="Total Pages" HigherIsBetter="true" />
<Counter Name="Avg. Page Time" />
<Counter Name="Page Response Time Goal" HigherIsBetter="true" />
<Counter Name="% Pages Meeting Goal" HigherIsBetter="true" />
<Counter Name="Pages/Sec" HigherIsBetter="true" />
</Counters>
</CounterCategory>
<CounterCategory Name="LoadTest:Request">
<Counters>
<Counter Name="Total Requests" HigherIsBetter="true" />
<Counter Name="Passed Requests" HigherIsBetter="true" />
<Counter Name="Failed Requests" />
<Counter Name="Cached Requests" HigherIsBetter="true" />
<Counter Name="Requests/Sec" HigherIsBetter="true" />
<Counter Name="Passed Requests/Sec" HigherIsBetter="true" />
<Counter Name="Failed Requests/Sec" />
<Counter Name="Avg. First Byte Time" />
<Counter Name="Avg. Response Time" />
<Counter Name="Avg. Connection Wait Time">
<ThresholdRules>
<ThresholdRule Classname="Microsoft.VisualStudio.TestTools.WebStress.Rules.ThresholdRuleCompareCounters, Microsoft.VisualStudio.QualityTools.LoadTest, Version=15.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a">
<RuleParameters>
<RuleParameter Name="DependentCategory" Value="LoadTest:Page" />
<RuleParameter Name="DependentCounter" Value="Avg. Page Time" />
<RuleParameter Name="DependentInstance" Value="_Total" />
<RuleParameter Name="AlertIfOver" Value="True" />
<RuleParameter Name="WarningThreshold" Value="0.25" />
<RuleParameter Name="CriticalThreshold" Value="0.5" />
</RuleParameters>
</ThresholdRule>
</ThresholdRules>
</Counter>
<Counter Name="Avg. Content Length" />
</Counters>
</CounterCategory>
<CounterCategory Name="LoadTest:LogEntries">
<Counters>
<Counter Name="Total Log Entries" />
<Counter Name="Log Entries/Sec" />
</Counters>
</CounterCategory>
</CounterCategories>
</CounterSet>
<CounterSet Name="Controller" CounterSetType="Controller" LocId="CounterSet_Controller">
<CounterCategories>
<CounterCategory Name="Memory">
<Counters>
<Counter Name="% Committed Bytes In Use" Range="100" />
<Counter Name="Available MBytes" RangeGroup="Memory Bytes" HigherIsBetter="true">
<ThresholdRules>
<ThresholdRule Classname="Microsoft.VisualStudio.TestTools.WebStress.Rules.ThresholdRuleCompareConstant, Microsoft.VisualStudio.QualityTools.LoadTest">
<RuleParameters>
<RuleParameter Name="AlertIfOver" Value="False" />
<RuleParameter Name="WarningThreshold" Value="100" />
<RuleParameter Name="CriticalThreshold" Value="50" />
</RuleParameters>
</ThresholdRule>
</ThresholdRules>
</Counter>
<Counter Name="Page Faults/sec" />
<Counter Name="Pages/sec" />
<Counter Name="Pool Paged Bytes" RangeGroup="Memory Bytes" />
<Counter Name="Pool Nonpaged bytes" RangeGroup="Memory Bytes" />
</Counters>
</CounterCategory>
<CounterCategory Name="Network Interface">
<Counters>
<Counter Name="Bytes Received/sec" RangeGroup="Network Bytes" />
<Counter Name="Bytes Sent/sec" RangeGroup="Network Bytes" />
<Counter Name="Output Queue Length">
<ThresholdRules>
<ThresholdRule Classname="Microsoft.VisualStudio.TestTools.WebStress.Rules.ThresholdRuleCompareConstant, Microsoft.VisualStudio.QualityTools.LoadTest">
<RuleParameters>
<RuleParameter Name="AlertIfOver" Value="True" />
<RuleParameter Name="WarningThreshold" Value="1.5" />
<RuleParameter Name="CriticalThreshold" Value="2" />
</RuleParameters>
</ThresholdRule>
</ThresholdRules>
</Counter>
<Counter Name="Packets Received/sec" RangeGroup="Network Packets" />
<Counter Name="Packets Sent/sec" RangeGroup="Network Packets" />
<Counter Name="Current Bandwidth" RangeGroup="Network Bytes" />
<Counter Name="Bytes Total/sec" RangeGroup="Network Bytes">
<ThresholdRules>
<ThresholdRule Classname="Microsoft.VisualStudio.TestTools.WebStress.Rules.ThresholdRuleCompareCounters, Microsoft.VisualStudio.QualityTools.LoadTest, Version=15.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a">
<RuleParameters>
<RuleParameter Name="DependentCategory" Value="Network Interface" />
<RuleParameter Name="DependentCounter" Value="Current Bandwidth" />
<RuleParameter Name="DependentInstance" Value="" />
<RuleParameter Name="AlertIfOver" Value="True" />
<RuleParameter Name="WarningThreshold" Value="0.6" />
<RuleParameter Name="CriticalThreshold" Value="0.7" />
</RuleParameters>
</ThresholdRule>
</ThresholdRules>
</Counter>
</Counters>
<Instances>
<Instance Name="*" />
</Instances>
</CounterCategory>
<CounterCategory Name="PhysicalDisk">
<Counters>
<Counter Name="% Disk Read Time" Range="100" />
<Counter Name="% Disk Time" Range="100" />
<Counter Name="% Disk Write Time" Range="100" />
<Counter Name="% Idle Time" Range="100" HigherIsBetter="true">
<ThresholdRules>
<ThresholdRule Classname="Microsoft.VisualStudio.TestTools.WebStress.Rules.ThresholdRuleCompareConstant, Microsoft.VisualStudio.QualityTools.LoadTest">
<RuleParameters>
<RuleParameter Name="AlertIfOver" Value="False" />
<RuleParameter Name="WarningThreshold" Value="40" />
<RuleParameter Name="CriticalThreshold" Value="20" />
</RuleParameters>
</ThresholdRule>
</ThresholdRules>
</Counter>
<Counter Name="Avg. Disk Bytes/Read" RangeGroup="DiskBytesRate" />
<Counter Name="Avg. Disk Bytes/Transfer" RangeGroup="DiskBytesRate" />
<Counter Name="Avg. Disk Bytes/Write" RangeGroup="DiskBytesRate" />
<Counter Name="Avg. Disk Queue Length" RangeGroup="Disk Queue Length" />
<Counter Name="Avg. Disk Read Queue Length" RangeGroup="Disk Queue Length" />
<Counter Name="Avg. Disk Write Queue Length" RangeGroup="Disk Queue Length" />
<Counter Name="Current Disk Queue Length" RangeGroup="Disk Queue Length" />
<Counter Name="Avg. Disk sec/Read" RangeGroup="Disk sec" />
<Counter Name="Avg. Disk sec/Transfer" RangeGroup="Disk sec" />
<Counter Name="Avg. Disk sec/Write" RangeGroup="Disk sec" />
<Counter Name="Disk Bytes/sec" RangeGroup="Disk Bytes sec" />
<Counter Name="Disk Read Bytes/sec" RangeGroup="Disk Bytes sec" />
<Counter Name="Disk Reads/sec" RangeGroup="Disk Transfers sec" />
<Counter Name="Disk Transfers/sec" RangeGroup="Disk Transfers sec" />
<Counter Name="Disk Write Bytes/sec" RangeGroup="Disk Bytes sec" />
<Counter Name="Disk Writes/sec" RangeGroup="Disk Transfers sec" />
<Counter Name="Split IO/Sec" RangeGroup="Disk Transfers sec" />
</Counters>
<Instances>
<Instance Name="*" />
</Instances>
</CounterCategory>
<CounterCategory Name="Processor">
<Counters>
<Counter Name="% Processor Time" Range="100">
<ThresholdRules>
<ThresholdRule Classname="Microsoft.VisualStudio.TestTools.WebStress.Rules.ThresholdRuleCompareConstant, Microsoft.VisualStudio.QualityTools.LoadTest">
<RuleParameters>
<RuleParameter Name="AlertIfOver" Value="True" />
<RuleParameter Name="WarningThreshold" Value="75" />
<RuleParameter Name="CriticalThreshold" Value="90" />
</RuleParameters>
</ThresholdRule>
</ThresholdRules>
</Counter>
<Counter Name="% Privileged Time" Range="100" />
<Counter Name="% User Time" Range="100" />
</Counters>
<Instances>
<Instance Name="_Total" />
</Instances>
</CounterCategory>
<CounterCategory Name="System">
<Counters>
<Counter Name="Context Switches/sec" />
<Counter Name="Processes" />
<Counter Name="Processor Queue Length" />
<Counter Name="Threads" />
</Counters>
</CounterCategory>
<CounterCategory Name="Process">
<Counters>
<Counter Name="% Processor Time" RangeGroup="Processor Time" />
<Counter Name="% Privileged Time" RangeGroup="Processor Time" />
<Counter Name="% User Time" RangeGroup="Processor Time" />
<Counter Name="Handle Count" />
<Counter Name="Thread Count" />
<Counter Name="Private Bytes" RangeGroup="Memory Bytes" />
<Counter Name="Virtual Bytes" RangeGroup="Memory Bytes" />
<Counter Name="Working Set" RangeGroup="Memory Bytes" />
</Counters>
<Instances>
<Instance Name="QTController" />
<Instance Name="QTController64" />
</Instances>
</CounterCategory>
</CounterCategories>
<DefaultCountersForAutomaticGraphs>
<DefaultCounter CategoryName="Processor" CounterName="% Processor Time" InstanceName="_Total" GraphName="" />
<DefaultCounter CategoryName="Memory" CounterName="Available MBytes" InstanceName="" GraphName="" />
</DefaultCountersForAutomaticGraphs>
</CounterSet>
<CounterSet Name="Agent" CounterSetType="Agent" LocId="CounterSet_Agent">
<CounterCategories>
<CounterCategory Name="Memory">
<Counters>
<Counter Name="% Committed Bytes In Use" Range="100" />
<Counter Name="Available MBytes" RangeGroup="Memory Bytes" HigherIsBetter="true">
<ThresholdRules>
<ThresholdRule Classname="Microsoft.VisualStudio.TestTools.WebStress.Rules.ThresholdRuleCompareConstant, Microsoft.VisualStudio.QualityTools.LoadTest">
<RuleParameters>
<RuleParameter Name="AlertIfOver" Value="False" />
<RuleParameter Name="WarningThreshold" Value="100" />
<RuleParameter Name="CriticalThreshold" Value="50" />
</RuleParameters>
</ThresholdRule>
</ThresholdRules>
</Counter>
<Counter Name="Page Faults/sec" />
<Counter Name="Pages/sec" />
<Counter Name="Pool Paged Bytes" RangeGroup="Memory Bytes" />
<Counter Name="Pool Nonpaged bytes" RangeGroup="Memory Bytes" />
</Counters>
</CounterCategory>
<CounterCategory Name="Network Interface">
<Counters>
<Counter Name="Bytes Received/sec" RangeGroup="Network Bytes" />
<Counter Name="Bytes Sent/sec" RangeGroup="Network Bytes" />
<Counter Name="Output Queue Length">
<ThresholdRules>
<ThresholdRule Classname="Microsoft.VisualStudio.TestTools.WebStress.Rules.ThresholdRuleCompareConstant, Microsoft.VisualStudio.QualityTools.LoadTest">
<RuleParameters>
<RuleParameter Name="AlertIfOver" Value="True" />
<RuleParameter Name="WarningThreshold" Value="1.5" />
<RuleParameter Name="CriticalThreshold" Value="2" />
</RuleParameters>
</ThresholdRule>
</ThresholdRules>
</Counter>
<Counter Name="Packets Received/sec" RangeGroup="Network Packets" />
<Counter Name="Packets Sent/sec" RangeGroup="Network Packets" />
<Counter Name="Current Bandwidth" RangeGroup="Network Bytes" />
<Counter Name="Bytes Total/sec" RangeGroup="Network Bytes">
<ThresholdRules>
<ThresholdRule Classname="Microsoft.VisualStudio.TestTools.WebStress.Rules.ThresholdRuleCompareCounters, Microsoft.VisualStudio.QualityTools.LoadTest, Version=15.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a">
<RuleParameters>
<RuleParameter Name="DependentCategory" Value="Network Interface" />
<RuleParameter Name="DependentCounter" Value="Current Bandwidth" />
<RuleParameter Name="DependentInstance" Value="" />
<RuleParameter Name="AlertIfOver" Value="True" />
<RuleParameter Name="WarningThreshold" Value="0.6" />
<RuleParameter Name="CriticalThreshold" Value="0.7" />
</RuleParameters>
</ThresholdRule>
</ThresholdRules>
</Counter>
</Counters>
<Instances>
<Instance Name="*" />
</Instances>
</CounterCategory>
<CounterCategory Name="PhysicalDisk">
<Counters>
<Counter Name="% Disk Read Time" Range="100" />
<Counter Name="% Disk Time" Range="100" />
<Counter Name="% Disk Write Time" Range="100" />
<Counter Name="% Idle Time" Range="100" HigherIsBetter="true">
<ThresholdRules>
<ThresholdRule Classname="Microsoft.VisualStudio.TestTools.WebStress.Rules.ThresholdRuleCompareConstant, Microsoft.VisualStudio.QualityTools.LoadTest">
<RuleParameters>
<RuleParameter Name="AlertIfOver" Value="False" />
<RuleParameter Name="WarningThreshold" Value="40" />
<RuleParameter Name="CriticalThreshold" Value="20" />
</RuleParameters>
</ThresholdRule>
</ThresholdRules>
</Counter>
<Counter Name="Avg. Disk Bytes/Read" RangeGroup="DiskBytesRate" />
<Counter Name="Avg. Disk Bytes/Transfer" RangeGroup="DiskBytesRate" />
<Counter Name="Avg. Disk Bytes/Write" RangeGroup="DiskBytesRate" />
<Counter Name="Avg. Disk Queue Length" RangeGroup="Disk Queue Length" />
<Counter Name="Avg. Disk Read Queue Length" RangeGroup="Disk Queue Length" />
<Counter Name="Avg. Disk Write Queue Length" RangeGroup="Disk Queue Length" />
<Counter Name="Current Disk Queue Length" RangeGroup="Disk Queue Length" />
<Counter Name="Avg. Disk sec/Read" RangeGroup="Disk sec" />
<Counter Name="Avg. Disk sec/Transfer" RangeGroup="Disk sec" />
<Counter Name="Avg. Disk sec/Write" RangeGroup="Disk sec" />
<Counter Name="Disk Bytes/sec" RangeGroup="Disk Bytes sec" />
<Counter Name="Disk Read Bytes/sec" RangeGroup="Disk Bytes sec" />
<Counter Name="Disk Reads/sec" RangeGroup="Disk Transfers sec" />
<Counter Name="Disk Transfers/sec" RangeGroup="Disk Transfers sec" />
<Counter Name="Disk Write Bytes/sec" RangeGroup="Disk Bytes sec" />
<Counter Name="Disk Writes/sec" RangeGroup="Disk Transfers sec" />
<Counter Name="Split IO/Sec" RangeGroup="Disk Transfers sec" />
</Counters>
<Instances>
<Instance Name="*" />
</Instances>
</CounterCategory>
<CounterCategory Name="Processor">
<Counters>
<Counter Name="% Processor Time" Range="100">
<ThresholdRules>
<ThresholdRule Classname="Microsoft.VisualStudio.TestTools.WebStress.Rules.ThresholdRuleCompareConstant, Microsoft.VisualStudio.QualityTools.LoadTest">
<RuleParameters>
<RuleParameter Name="AlertIfOver" Value="True" />
<RuleParameter Name="WarningThreshold" Value="75" />
<RuleParameter Name="CriticalThreshold" Value="90" />
</RuleParameters>
</ThresholdRule>
</ThresholdRules>
</Counter>
<Counter Name="% Privileged Time" Range="100" />
<Counter Name="% User Time" Range="100" />
</Counters>
<Instances>
<Instance Name="0" />
<Instance Name="_Total" />
</Instances>
</CounterCategory>
<CounterCategory Name="System">
<Counters>
<Counter Name="Context Switches/sec" />
<Counter Name="Processes" />
<Counter Name="Processor Queue Length" />
<Counter Name="Threads" />
</Counters>
</CounterCategory>
<CounterCategory Name="Process">
<Counters>
<Counter Name="% Processor Time" RangeGroup="Processor Time" />
<Counter Name="% Privileged Time" RangeGroup="Processor Time" />
<Counter Name="% User Time" RangeGroup="Processor Time" />
<Counter Name="Handle Count" />
<Counter Name="Thread Count" />
<Counter Name="Private Bytes" RangeGroup="Memory Bytes" />
<Counter Name="Virtual Bytes" RangeGroup="Memory Bytes" />
<Counter Name="Working Set" RangeGroup="Memory Bytes" />
</Counters>
<Instances>
<Instance Name="devenv" />
<Instance Name="QTAgentService" />
<Instance Name="QTAgent" />
<Instance Name="QTAgent32" />
<Instance Name="QTDCAgent" />
<Instance Name="QTDCAgent32" />
<Instance Name="QTAgent_35" />
<Instance Name="QTAgent_40" />
<Instance Name="QTAgent32_35" />
<Instance Name="QTAgent32_40" />
</Instances>
</CounterCategory>
</CounterCategories>
<DefaultCountersForAutomaticGraphs>
<DefaultCounter CategoryName="Processor" CounterName="% Processor Time" InstanceName="0" GraphName="" RunType="Local" />
<DefaultCounter CategoryName="Processor" CounterName="% Processor Time" InstanceName="_Total" GraphName="" RunType="Remote" />
<DefaultCounter CategoryName="Memory" CounterName="Available MBytes" InstanceName="" GraphName="" />
</DefaultCountersForAutomaticGraphs>
</CounterSet>
</CounterSets>
<RunConfigurations>
<RunConfiguration Name="Run Settings1" Description="" ResultsStoreType="Database" TimingDetailsStorage="AllIndividualDetails" SaveTestLogsOnError="true" SaveTestLogsFrequency="0" MaxErrorDetails="200" MaxErrorsPerType="1000" MaxThresholdViolations="1000" MaxRequestUrlsReported="1000" UseTestIterations="false" RunDuration="300" WarmupTime="60" CoolDownTime="0" TestIterations="100" WebTestConnectionModel="ConnectionPerUser" WebTestConnectionPoolSize="50" SampleRate="15" ValidationLevel="High" SqlTracingConnectString="" SqlTracingConnectStringDisplayValue="" SqlTracingDirectory="" SqlTracingEnabled="false" SqlTracingFileCount="2" SqlTracingRolloverEnabled="true" SqlTracingMinimumDuration="500" RunUnitTestsInAppDomain="true" CoreCount="0" ResourcesRetentionTimeInMinutes="0" AgentDiagnosticsLevel="Warning">
<CounterSetMappings>
<CounterSetMapping ComputerName="[CONTROLLER MACHINE]">
<CounterSetReferences>
<CounterSetReference CounterSetName="LoadTest" />
<CounterSetReference CounterSetName="Controller" />
</CounterSetReferences>
</CounterSetMapping>
<CounterSetMapping ComputerName="[AGENT MACHINES]">
<CounterSetReferences>
<CounterSetReference CounterSetName="Agent" />
</CounterSetReferences>
</CounterSetMapping>
</CounterSetMappings>
<LoadGeneratorLocations>
<GeoLocation Location="Default" Percentage="100" />
</LoadGeneratorLocations>
</RunConfiguration>
</RunConfigurations>
</LoadTest>

+ 2
- 2
test/Services/LoadTest/WebMVC/CreateNewOrder.webtest View File

@ -14,7 +14,7 @@
<FormPostParameter Name="description" Value=".NET Black &amp; White Mug" RecordedValue=".NET Black &amp; White Mug" CorrelationBinding="" UrlEncode="True" /> <FormPostParameter Name="description" Value=".NET Black &amp; White Mug" RecordedValue=".NET Black &amp; White Mug" CorrelationBinding="" UrlEncode="True" />
<FormPostParameter Name="id" Value="2" RecordedValue="2" CorrelationBinding="" UrlEncode="True" /> <FormPostParameter Name="id" Value="2" RecordedValue="2" CorrelationBinding="" UrlEncode="True" />
<FormPostParameter Name="name" Value=".NET Black &amp; White Mug" RecordedValue=".NET Black &amp; White Mug" CorrelationBinding="" UrlEncode="True" /> <FormPostParameter Name="name" Value=".NET Black &amp; White Mug" RecordedValue=".NET Black &amp; White Mug" CorrelationBinding="" UrlEncode="True" />
<FormPostParameter Name="pictureUri" Value="{{LocalTestSettings.CatalogApiServer.url}}" RecordedValue="{{CatalogApiServer}}/api/v1/catalog/items/2/pic/" CorrelationBinding="" UrlEncode="True" />
<FormPostParameter Name="pictureUri" Value="{{LocalTestSettings.CatalogApiServer.url}}/api/v1/catalog/items/2/pic/" RecordedValue="{{LocalTestSettings.CatalogApiServer.url}}/api/v1/catalog/items/2/pic/" CorrelationBinding="" UrlEncode="True" />
<FormPostParameter Name="price" Value="8.5" RecordedValue="8.5" CorrelationBinding="" UrlEncode="True" /> <FormPostParameter Name="price" Value="8.5" RecordedValue="8.5" CorrelationBinding="" UrlEncode="True" />
</FormPostHttpBody> </FormPostHttpBody>
</Request> </Request>
@ -157,7 +157,7 @@
<FormPostParameter Name="CardHolderName" Value="DemoUser" RecordedValue="DemoUser" CorrelationBinding="{{FormPostParam6.CardHolderName}}" UrlEncode="True" /> <FormPostParameter Name="CardHolderName" Value="DemoUser" RecordedValue="DemoUser" CorrelationBinding="{{FormPostParam6.CardHolderName}}" UrlEncode="True" />
<FormPostParameter Name="CardExpirationShort" Value="12/20" RecordedValue="12/20" CorrelationBinding="{{FormPostParam7.CardExpirationShort}}" UrlEncode="True" /> <FormPostParameter Name="CardExpirationShort" Value="12/20" RecordedValue="12/20" CorrelationBinding="{{FormPostParam7.CardExpirationShort}}" UrlEncode="True" />
<FormPostParameter Name="CardSecurityNumber" Value="535" RecordedValue="535" CorrelationBinding="{{FormPostParam8.CardSecurityNumber}}" UrlEncode="True" /> <FormPostParameter Name="CardSecurityNumber" Value="535" RecordedValue="535" CorrelationBinding="{{FormPostParam8.CardSecurityNumber}}" UrlEncode="True" />
<FormPostParameter Name="orderitems[0].PictureUrl" Value="{{LocalTestSettings.CatalogApiServer.url}}/api/v1/catalog/items/2/pic/" RecordedValue="{{CatalogApiServer}}/api/v1/catalog/items/2/pic/" CorrelationBinding="" UrlEncode="True" />
<FormPostParameter Name="orderitems[0].PictureUrl" Value="{{LocalTestSettings.CatalogApiServer.url}}/api/v1/catalog/items/2/pic/" RecordedValue="{{LocalTestSettings.CatalogApiServer.url}}/api/v1/catalog/items/2/pic/" CorrelationBinding="" UrlEncode="True" />
<FormPostParameter Name="orderitems[0].ProductName" Value=".NET Black &amp; White Mug" RecordedValue=".NET Black &amp; White Mug" CorrelationBinding="" UrlEncode="True" /> <FormPostParameter Name="orderitems[0].ProductName" Value=".NET Black &amp; White Mug" RecordedValue=".NET Black &amp; White Mug" CorrelationBinding="" UrlEncode="True" />
<FormPostParameter Name="orderitems[0].UnitPrice" Value="8.5" RecordedValue="8.5" CorrelationBinding="" UrlEncode="True" /> <FormPostParameter Name="orderitems[0].UnitPrice" Value="8.5" RecordedValue="8.5" CorrelationBinding="" UrlEncode="True" />
<FormPostParameter Name="orderitems[0].Units" Value="1" RecordedValue="1" CorrelationBinding="" UrlEncode="True" /> <FormPostParameter Name="orderitems[0].Units" Value="1" RecordedValue="1" CorrelationBinding="" UrlEncode="True" />


+ 1
- 1
test/Services/LoadTest/app.config View File

@ -13,6 +13,6 @@
<ClientId value="mvctest" /> <ClientId value="mvctest" />
<RequestId value="73f9ee11-e373-4ce0-a557-6d4d8f8f44db"/> <RequestId value="73f9ee11-e373-4ce0-a557-6d4d8f8f44db"/>
<Users> <Users>
<User email="demouser@microsoft.com" password="Pass@word1" id="" />
<User email="demouser@microsoft.com" password="Pass@word1" id="1234" />
</Users> </Users>
</configuration> </configuration>

Loading…
Cancel
Save