Added support in a unittest to avoid errors if using begin timer and run as a local unit test.
Showing
4 changed files
with
502 additions
and
30 deletions
TestProject1/LoadTest4.loadtest
0 → 100644
| 1 | <?xml version="1.0" encoding="utf-8"?> | ||
| 2 | <LoadTest Name="LoadTest4" Description="" Owner="" storage="c:\users\wflg\source\repos\vstt-plugins\testproject1\loadtest4.loadtest" Priority="2147483647" Enabled="true" CssProjectStructure="" CssIteration="" DeploymentItemsEditable="" WorkItemIds="" TraceLevel="None" CurrentRunConfig="Run Settings1" Id="511540f7-63c0-406b-a87c-d814b1bad345" xmlns="http://microsoft.com/schemas/VisualStudio/TeamTest/2010"> | ||
| 3 | <Scenarios> | ||
| 4 | <Scenario Name="Scenario1" DelayBetweenIterations="0" PercentNewUsers="0" IPSwitching="false" TestMixType="PercentageOfTestsStarted" ApplyDistributionToPacingDelay="true" MaxTestIterations="0" DisableDuringWarmup="false" DelayStartTime="0" AllowedAgents=""> | ||
| 5 | <ThinkProfile Value="0.2" Pattern="NormalDistribution" /> | ||
| 6 | <LoadProfile Pattern="Constant" InitialUsers="1" /> | ||
| 7 | <TestMix> | ||
| 8 | <TestProfile Name="TestMethod1" Path="bin\debug\testproject1.dll" Id="59863143-3238-122e-4d8a-637b491cc755" Percentage="100" Type="Microsoft.VisualStudio.TestTools.TestTypes.Unit.UnitTestElement, Microsoft.VisualStudio.QualityTools.Tips.UnitTest.ObjectModel, Version=14.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a" /> | ||
| 9 | </TestMix> | ||
| 10 | <BrowserMix> | ||
| 11 | <BrowserProfile Percentage="100"> | ||
| 12 | <Browser Name="Internet Explorer 9.0" MaxConnections="6"> | ||
| 13 | <Headers> | ||
| 14 | <Header Name="User-Agent" Value="Mozilla/5.0 (compatible; MSIE 9.0; Windows NT 6.1; Trident/5.0)" /> | ||
| 15 | <Header Name="Accept" Value="*/*" /> | ||
| 16 | <Header Name="Accept-Language" Value="{{$IEAcceptLanguage}}" /> | ||
| 17 | <Header Name="Accept-Encoding" Value="GZIP" /> | ||
| 18 | </Headers> | ||
| 19 | </Browser> | ||
| 20 | </BrowserProfile> | ||
| 21 | </BrowserMix> | ||
| 22 | <NetworkMix> | ||
| 23 | <NetworkProfile Percentage="100"> | ||
| 24 | <Network Name="LAN" BandwidthInKbps="1000000" NetworkProfileConfigurationXml="<Emulation><VirtualChannel name="defaultChannel"><FilterList/><VirtualLink instances="1" name="defaultLink"><LinkRule dir="upstream"><Bandwidth><Speed unit="kbps">1000000</Speed></Bandwidth></LinkRule><LinkRule dir="downstream"><Bandwidth><Speed unit="kbps">1000000</Speed></Bandwidth></LinkRule></VirtualLink></VirtualChannel></Emulation>" /> | ||
| 25 | </NetworkProfile> | ||
| 26 | </NetworkMix> | ||
| 27 | </Scenario> | ||
| 28 | </Scenarios> | ||
| 29 | <CounterSets> | ||
| 30 | <CounterSet Name="LoadTest" CounterSetType="LoadTest" LocId=""> | ||
| 31 | <CounterCategories> | ||
| 32 | <CounterCategory Name="LoadTest:Scenario"> | ||
| 33 | <Counters> | ||
| 34 | <Counter Name="User Load" HigherIsBetter="true" /> | ||
| 35 | <Counter Name="Tests Running" HigherIsBetter="true" /> | ||
| 36 | </Counters> | ||
| 37 | </CounterCategory> | ||
| 38 | <CounterCategory Name="LoadTest:Test"> | ||
| 39 | <Counters> | ||
| 40 | <Counter Name="Total Tests" HigherIsBetter="true" /> | ||
| 41 | <Counter Name="Passed Tests" HigherIsBetter="true" /> | ||
| 42 | <Counter Name="Failed Tests" /> | ||
| 43 | <Counter Name="Tests/Sec" HigherIsBetter="true" /> | ||
| 44 | <Counter Name="Passed Tests/Sec" HigherIsBetter="true" /> | ||
| 45 | <Counter Name="Failed Tests/Sec" /> | ||
| 46 | <Counter Name="Avg. Requests/Test" HigherIsBetter="true" /> | ||
| 47 | <Counter Name="Avg. Test Time" /> | ||
| 48 | <Counter Name="% Time in LoadTestPlugin" /> | ||
| 49 | <Counter Name="% Time in WebTest code" /> | ||
| 50 | <Counter Name="% Time in Rules" /> | ||
| 51 | </Counters> | ||
| 52 | </CounterCategory> | ||
| 53 | <CounterCategory Name="LoadTest:Transaction"> | ||
| 54 | <Counters> | ||
| 55 | <Counter Name="Total Transactions" HigherIsBetter="true" /> | ||
| 56 | <Counter Name="Avg. Transaction Time" /> | ||
| 57 | <Counter Name="Avg. Response Time" /> | ||
| 58 | <Counter Name="Transactions/Sec" HigherIsBetter="true" /> | ||
| 59 | </Counters> | ||
| 60 | </CounterCategory> | ||
| 61 | <CounterCategory Name="LoadTest:Errors"> | ||
| 62 | <Counters> | ||
| 63 | <Counter Name="Http Errors" /> | ||
| 64 | <Counter Name="Validation Rule Errors" /> | ||
| 65 | <Counter Name="Extraction Rule Errors" /> | ||
| 66 | <Counter Name="Requests Timed Out" /> | ||
| 67 | <Counter Name="Exceptions" /> | ||
| 68 | <Counter Name="Total Errors" /> | ||
| 69 | <Counter Name="Errors/Sec" /> | ||
| 70 | <Counter Name="Threshold Violations/Sec" /> | ||
| 71 | </Counters> | ||
| 72 | </CounterCategory> | ||
| 73 | <CounterCategory Name="LoadTest:Page"> | ||
| 74 | <Counters> | ||
| 75 | <Counter Name="Total Pages" HigherIsBetter="true" /> | ||
| 76 | <Counter Name="Avg. Page Time" /> | ||
| 77 | <Counter Name="Page Response Time Goal" HigherIsBetter="true" /> | ||
| 78 | <Counter Name="% Pages Meeting Goal" HigherIsBetter="true" /> | ||
| 79 | <Counter Name="Pages/Sec" HigherIsBetter="true" /> | ||
| 80 | </Counters> | ||
| 81 | </CounterCategory> | ||
| 82 | <CounterCategory Name="LoadTest:Request"> | ||
| 83 | <Counters> | ||
| 84 | <Counter Name="Total Requests" HigherIsBetter="true" /> | ||
| 85 | <Counter Name="Passed Requests" HigherIsBetter="true" /> | ||
| 86 | <Counter Name="Failed Requests" /> | ||
| 87 | <Counter Name="Cached Requests" HigherIsBetter="true" /> | ||
| 88 | <Counter Name="Requests/Sec" HigherIsBetter="true" /> | ||
| 89 | <Counter Name="Passed Requests/Sec" HigherIsBetter="true" /> | ||
| 90 | <Counter Name="Failed Requests/Sec" /> | ||
| 91 | <Counter Name="Avg. First Byte Time" /> | ||
| 92 | <Counter Name="Avg. Response Time" /> | ||
| 93 | <Counter Name="Avg. Connection Wait Time"> | ||
| 94 | <ThresholdRules> | ||
| 95 | <ThresholdRule Classname="Microsoft.VisualStudio.TestTools.WebStress.Rules.ThresholdRuleCompareCounters, Microsoft.VisualStudio.QualityTools.LoadTest, Version=14.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a"> | ||
| 96 | <RuleParameters> | ||
| 97 | <RuleParameter Name="DependentCategory" Value="LoadTest:Page" /> | ||
| 98 | <RuleParameter Name="DependentCounter" Value="Avg. Page Time" /> | ||
| 99 | <RuleParameter Name="DependentInstance" Value="_Total" /> | ||
| 100 | <RuleParameter Name="AlertIfOver" Value="True" /> | ||
| 101 | <RuleParameter Name="WarningThreshold" Value="0.25" /> | ||
| 102 | <RuleParameter Name="CriticalThreshold" Value="0.5" /> | ||
| 103 | </RuleParameters> | ||
| 104 | </ThresholdRule> | ||
| 105 | </ThresholdRules> | ||
| 106 | </Counter> | ||
| 107 | <Counter Name="Avg. Content Length" /> | ||
| 108 | </Counters> | ||
| 109 | </CounterCategory> | ||
| 110 | <CounterCategory Name="LoadTest:LogEntries"> | ||
| 111 | <Counters> | ||
| 112 | <Counter Name="Total Log Entries" /> | ||
| 113 | <Counter Name="Log Entries/Sec" /> | ||
| 114 | </Counters> | ||
| 115 | </CounterCategory> | ||
| 116 | </CounterCategories> | ||
| 117 | </CounterSet> | ||
| 118 | <CounterSet Name="Controller" CounterSetType="Controller" LocId="CounterSet_Controller"> | ||
| 119 | <CounterCategories> | ||
| 120 | <CounterCategory Name="Memory"> | ||
| 121 | <Counters> | ||
| 122 | <Counter Name="% Committed Bytes In Use" Range="100" /> | ||
| 123 | <Counter Name="Available MBytes" RangeGroup="Memory Bytes" HigherIsBetter="true"> | ||
| 124 | <ThresholdRules> | ||
| 125 | <ThresholdRule Classname="Microsoft.VisualStudio.TestTools.WebStress.Rules.ThresholdRuleCompareConstant, Microsoft.VisualStudio.QualityTools.LoadTest"> | ||
| 126 | <RuleParameters> | ||
| 127 | <RuleParameter Name="AlertIfOver" Value="False" /> | ||
| 128 | <RuleParameter Name="WarningThreshold" Value="100" /> | ||
| 129 | <RuleParameter Name="CriticalThreshold" Value="50" /> | ||
| 130 | </RuleParameters> | ||
| 131 | </ThresholdRule> | ||
| 132 | </ThresholdRules> | ||
| 133 | </Counter> | ||
| 134 | <Counter Name="Page Faults/sec" /> | ||
| 135 | <Counter Name="Pages/sec" /> | ||
| 136 | <Counter Name="Pool Paged Bytes" RangeGroup="Memory Bytes" /> | ||
| 137 | <Counter Name="Pool Nonpaged bytes" RangeGroup="Memory Bytes" /> | ||
| 138 | </Counters> | ||
| 139 | </CounterCategory> | ||
| 140 | <CounterCategory Name="Network Interface"> | ||
| 141 | <Counters> | ||
| 142 | <Counter Name="Bytes Received/sec" RangeGroup="Network Bytes" /> | ||
| 143 | <Counter Name="Bytes Sent/sec" RangeGroup="Network Bytes" /> | ||
| 144 | <Counter Name="Output Queue Length"> | ||
| 145 | <ThresholdRules> | ||
| 146 | <ThresholdRule Classname="Microsoft.VisualStudio.TestTools.WebStress.Rules.ThresholdRuleCompareConstant, Microsoft.VisualStudio.QualityTools.LoadTest"> | ||
| 147 | <RuleParameters> | ||
| 148 | <RuleParameter Name="AlertIfOver" Value="True" /> | ||
| 149 | <RuleParameter Name="WarningThreshold" Value="1.5" /> | ||
| 150 | <RuleParameter Name="CriticalThreshold" Value="2" /> | ||
| 151 | </RuleParameters> | ||
| 152 | </ThresholdRule> | ||
| 153 | </ThresholdRules> | ||
| 154 | </Counter> | ||
| 155 | <Counter Name="Packets Received/sec" RangeGroup="Network Packets" /> | ||
| 156 | <Counter Name="Packets Sent/sec" RangeGroup="Network Packets" /> | ||
| 157 | <Counter Name="Current Bandwidth" RangeGroup="Network Bytes" /> | ||
| 158 | <Counter Name="Bytes Total/sec" RangeGroup="Network Bytes"> | ||
| 159 | <ThresholdRules> | ||
| 160 | <ThresholdRule Classname="Microsoft.VisualStudio.TestTools.WebStress.Rules.ThresholdRuleCompareCounters, Microsoft.VisualStudio.QualityTools.LoadTest, Version=14.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a"> | ||
| 161 | <RuleParameters> | ||
| 162 | <RuleParameter Name="DependentCategory" Value="Network Interface" /> | ||
| 163 | <RuleParameter Name="DependentCounter" Value="Current Bandwidth" /> | ||
| 164 | <RuleParameter Name="DependentInstance" Value="" /> | ||
| 165 | <RuleParameter Name="AlertIfOver" Value="True" /> | ||
| 166 | <RuleParameter Name="WarningThreshold" Value="0.6" /> | ||
| 167 | <RuleParameter Name="CriticalThreshold" Value="0.7" /> | ||
| 168 | </RuleParameters> | ||
| 169 | </ThresholdRule> | ||
| 170 | </ThresholdRules> | ||
| 171 | </Counter> | ||
| 172 | </Counters> | ||
| 173 | <Instances> | ||
| 174 | <Instance Name="*" /> | ||
| 175 | </Instances> | ||
| 176 | </CounterCategory> | ||
| 177 | <CounterCategory Name="PhysicalDisk"> | ||
| 178 | <Counters> | ||
| 179 | <Counter Name="% Disk Read Time" Range="100" /> | ||
| 180 | <Counter Name="% Disk Time" Range="100" /> | ||
| 181 | <Counter Name="% Disk Write Time" Range="100" /> | ||
| 182 | <Counter Name="% Idle Time" Range="100" HigherIsBetter="true"> | ||
| 183 | <ThresholdRules> | ||
| 184 | <ThresholdRule Classname="Microsoft.VisualStudio.TestTools.WebStress.Rules.ThresholdRuleCompareConstant, Microsoft.VisualStudio.QualityTools.LoadTest"> | ||
| 185 | <RuleParameters> | ||
| 186 | <RuleParameter Name="AlertIfOver" Value="False" /> | ||
| 187 | <RuleParameter Name="WarningThreshold" Value="40" /> | ||
| 188 | <RuleParameter Name="CriticalThreshold" Value="20" /> | ||
| 189 | </RuleParameters> | ||
| 190 | </ThresholdRule> | ||
| 191 | </ThresholdRules> | ||
| 192 | </Counter> | ||
| 193 | <Counter Name="Avg. Disk Bytes/Read" RangeGroup="DiskBytesRate" /> | ||
| 194 | <Counter Name="Avg. Disk Bytes/Transfer" RangeGroup="DiskBytesRate" /> | ||
| 195 | <Counter Name="Avg. Disk Bytes/Write" RangeGroup="DiskBytesRate" /> | ||
| 196 | <Counter Name="Avg. Disk Queue Length" RangeGroup="Disk Queue Length" /> | ||
| 197 | <Counter Name="Avg. Disk Read Queue Length" RangeGroup="Disk Queue Length" /> | ||
| 198 | <Counter Name="Avg. Disk Write Queue Length" RangeGroup="Disk Queue Length" /> | ||
| 199 | <Counter Name="Current Disk Queue Length" RangeGroup="Disk Queue Length" /> | ||
| 200 | <Counter Name="Avg. Disk sec/Read" RangeGroup="Disk sec" /> | ||
| 201 | <Counter Name="Avg. Disk sec/Transfer" RangeGroup="Disk sec" /> | ||
| 202 | <Counter Name="Avg. Disk sec/Write" RangeGroup="Disk sec" /> | ||
| 203 | <Counter Name="Disk Bytes/sec" RangeGroup="Disk Bytes sec" /> | ||
| 204 | <Counter Name="Disk Read Bytes/sec" RangeGroup="Disk Bytes sec" /> | ||
| 205 | <Counter Name="Disk Reads/sec" RangeGroup="Disk Transfers sec" /> | ||
| 206 | <Counter Name="Disk Transfers/sec" RangeGroup="Disk Transfers sec" /> | ||
| 207 | <Counter Name="Disk Write Bytes/sec" RangeGroup="Disk Bytes sec" /> | ||
| 208 | <Counter Name="Disk Writes/sec" RangeGroup="Disk Transfers sec" /> | ||
| 209 | <Counter Name="Split IO/Sec" RangeGroup="Disk Transfers sec" /> | ||
| 210 | </Counters> | ||
| 211 | <Instances> | ||
| 212 | <Instance Name="*" /> | ||
| 213 | </Instances> | ||
| 214 | </CounterCategory> | ||
| 215 | <CounterCategory Name="Processor"> | ||
| 216 | <Counters> | ||
| 217 | <Counter Name="% Processor Time" Range="100"> | ||
| 218 | <ThresholdRules> | ||
| 219 | <ThresholdRule Classname="Microsoft.VisualStudio.TestTools.WebStress.Rules.ThresholdRuleCompareConstant, Microsoft.VisualStudio.QualityTools.LoadTest"> | ||
| 220 | <RuleParameters> | ||
| 221 | <RuleParameter Name="AlertIfOver" Value="True" /> | ||
| 222 | <RuleParameter Name="WarningThreshold" Value="75" /> | ||
| 223 | <RuleParameter Name="CriticalThreshold" Value="90" /> | ||
| 224 | </RuleParameters> | ||
| 225 | </ThresholdRule> | ||
| 226 | </ThresholdRules> | ||
| 227 | </Counter> | ||
| 228 | <Counter Name="% Privileged Time" Range="100" /> | ||
| 229 | <Counter Name="% User Time" Range="100" /> | ||
| 230 | </Counters> | ||
| 231 | <Instances> | ||
| 232 | <Instance Name="_Total" /> | ||
| 233 | </Instances> | ||
| 234 | </CounterCategory> | ||
| 235 | <CounterCategory Name="System"> | ||
| 236 | <Counters> | ||
| 237 | <Counter Name="Context Switches/sec" /> | ||
| 238 | <Counter Name="Processes" /> | ||
| 239 | <Counter Name="Processor Queue Length" /> | ||
| 240 | <Counter Name="Threads" /> | ||
| 241 | </Counters> | ||
| 242 | </CounterCategory> | ||
| 243 | <CounterCategory Name="Process"> | ||
| 244 | <Counters> | ||
| 245 | <Counter Name="% Processor Time" RangeGroup="Processor Time" /> | ||
| 246 | <Counter Name="% Privileged Time" RangeGroup="Processor Time" /> | ||
| 247 | <Counter Name="% User Time" RangeGroup="Processor Time" /> | ||
| 248 | <Counter Name="Handle Count" /> | ||
| 249 | <Counter Name="Thread Count" /> | ||
| 250 | <Counter Name="Private Bytes" RangeGroup="Memory Bytes" /> | ||
| 251 | <Counter Name="Virtual Bytes" RangeGroup="Memory Bytes" /> | ||
| 252 | <Counter Name="Working Set" RangeGroup="Memory Bytes" /> | ||
| 253 | </Counters> | ||
| 254 | <Instances> | ||
| 255 | <Instance Name="QTController" /> | ||
| 256 | <Instance Name="QTController64" /> | ||
| 257 | </Instances> | ||
| 258 | </CounterCategory> | ||
| 259 | </CounterCategories> | ||
| 260 | <DefaultCountersForAutomaticGraphs> | ||
| 261 | <DefaultCounter CategoryName="Processor" CounterName="% Processor Time" InstanceName="_Total" GraphName="" /> | ||
| 262 | <DefaultCounter CategoryName="Memory" CounterName="Available MBytes" InstanceName="" GraphName="" /> | ||
| 263 | </DefaultCountersForAutomaticGraphs> | ||
| 264 | </CounterSet> | ||
| 265 | <CounterSet Name="Agent" CounterSetType="Agent" LocId="CounterSet_Agent"> | ||
| 266 | <CounterCategories> | ||
| 267 | <CounterCategory Name="Memory"> | ||
| 268 | <Counters> | ||
| 269 | <Counter Name="% Committed Bytes In Use" Range="100" /> | ||
| 270 | <Counter Name="Available MBytes" RangeGroup="Memory Bytes" HigherIsBetter="true"> | ||
| 271 | <ThresholdRules> | ||
| 272 | <ThresholdRule Classname="Microsoft.VisualStudio.TestTools.WebStress.Rules.ThresholdRuleCompareConstant, Microsoft.VisualStudio.QualityTools.LoadTest"> | ||
| 273 | <RuleParameters> | ||
| 274 | <RuleParameter Name="AlertIfOver" Value="False" /> | ||
| 275 | <RuleParameter Name="WarningThreshold" Value="100" /> | ||
| 276 | <RuleParameter Name="CriticalThreshold" Value="50" /> | ||
| 277 | </RuleParameters> | ||
| 278 | </ThresholdRule> | ||
| 279 | </ThresholdRules> | ||
| 280 | </Counter> | ||
| 281 | <Counter Name="Page Faults/sec" /> | ||
| 282 | <Counter Name="Pages/sec" /> | ||
| 283 | <Counter Name="Pool Paged Bytes" RangeGroup="Memory Bytes" /> | ||
| 284 | <Counter Name="Pool Nonpaged bytes" RangeGroup="Memory Bytes" /> | ||
| 285 | </Counters> | ||
| 286 | </CounterCategory> | ||
| 287 | <CounterCategory Name="Network Interface"> | ||
| 288 | <Counters> | ||
| 289 | <Counter Name="Bytes Received/sec" RangeGroup="Network Bytes" /> | ||
| 290 | <Counter Name="Bytes Sent/sec" RangeGroup="Network Bytes" /> | ||
| 291 | <Counter Name="Output Queue Length"> | ||
| 292 | <ThresholdRules> | ||
| 293 | <ThresholdRule Classname="Microsoft.VisualStudio.TestTools.WebStress.Rules.ThresholdRuleCompareConstant, Microsoft.VisualStudio.QualityTools.LoadTest"> | ||
| 294 | <RuleParameters> | ||
| 295 | <RuleParameter Name="AlertIfOver" Value="True" /> | ||
| 296 | <RuleParameter Name="WarningThreshold" Value="1.5" /> | ||
| 297 | <RuleParameter Name="CriticalThreshold" Value="2" /> | ||
| 298 | </RuleParameters> | ||
| 299 | </ThresholdRule> | ||
| 300 | </ThresholdRules> | ||
| 301 | </Counter> | ||
| 302 | <Counter Name="Packets Received/sec" RangeGroup="Network Packets" /> | ||
| 303 | <Counter Name="Packets Sent/sec" RangeGroup="Network Packets" /> | ||
| 304 | <Counter Name="Current Bandwidth" RangeGroup="Network Bytes" /> | ||
| 305 | <Counter Name="Bytes Total/sec" RangeGroup="Network Bytes"> | ||
| 306 | <ThresholdRules> | ||
| 307 | <ThresholdRule Classname="Microsoft.VisualStudio.TestTools.WebStress.Rules.ThresholdRuleCompareCounters, Microsoft.VisualStudio.QualityTools.LoadTest, Version=14.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a"> | ||
| 308 | <RuleParameters> | ||
| 309 | <RuleParameter Name="DependentCategory" Value="Network Interface" /> | ||
| 310 | <RuleParameter Name="DependentCounter" Value="Current Bandwidth" /> | ||
| 311 | <RuleParameter Name="DependentInstance" Value="" /> | ||
| 312 | <RuleParameter Name="AlertIfOver" Value="True" /> | ||
| 313 | <RuleParameter Name="WarningThreshold" Value="0.6" /> | ||
| 314 | <RuleParameter Name="CriticalThreshold" Value="0.7" /> | ||
| 315 | </RuleParameters> | ||
| 316 | </ThresholdRule> | ||
| 317 | </ThresholdRules> | ||
| 318 | </Counter> | ||
| 319 | </Counters> | ||
| 320 | <Instances> | ||
| 321 | <Instance Name="*" /> | ||
| 322 | </Instances> | ||
| 323 | </CounterCategory> | ||
| 324 | <CounterCategory Name="PhysicalDisk"> | ||
| 325 | <Counters> | ||
| 326 | <Counter Name="% Disk Read Time" Range="100" /> | ||
| 327 | <Counter Name="% Disk Time" Range="100" /> | ||
| 328 | <Counter Name="% Disk Write Time" Range="100" /> | ||
| 329 | <Counter Name="% Idle Time" Range="100" HigherIsBetter="true"> | ||
| 330 | <ThresholdRules> | ||
| 331 | <ThresholdRule Classname="Microsoft.VisualStudio.TestTools.WebStress.Rules.ThresholdRuleCompareConstant, Microsoft.VisualStudio.QualityTools.LoadTest"> | ||
| 332 | <RuleParameters> | ||
| 333 | <RuleParameter Name="AlertIfOver" Value="False" /> | ||
| 334 | <RuleParameter Name="WarningThreshold" Value="40" /> | ||
| 335 | <RuleParameter Name="CriticalThreshold" Value="20" /> | ||
| 336 | </RuleParameters> | ||
| 337 | </ThresholdRule> | ||
| 338 | </ThresholdRules> | ||
| 339 | </Counter> | ||
| 340 | <Counter Name="Avg. Disk Bytes/Read" RangeGroup="DiskBytesRate" /> | ||
| 341 | <Counter Name="Avg. Disk Bytes/Transfer" RangeGroup="DiskBytesRate" /> | ||
| 342 | <Counter Name="Avg. Disk Bytes/Write" RangeGroup="DiskBytesRate" /> | ||
| 343 | <Counter Name="Avg. Disk Queue Length" RangeGroup="Disk Queue Length" /> | ||
| 344 | <Counter Name="Avg. Disk Read Queue Length" RangeGroup="Disk Queue Length" /> | ||
| 345 | <Counter Name="Avg. Disk Write Queue Length" RangeGroup="Disk Queue Length" /> | ||
| 346 | <Counter Name="Current Disk Queue Length" RangeGroup="Disk Queue Length" /> | ||
| 347 | <Counter Name="Avg. Disk sec/Read" RangeGroup="Disk sec" /> | ||
| 348 | <Counter Name="Avg. Disk sec/Transfer" RangeGroup="Disk sec" /> | ||
| 349 | <Counter Name="Avg. Disk sec/Write" RangeGroup="Disk sec" /> | ||
| 350 | <Counter Name="Disk Bytes/sec" RangeGroup="Disk Bytes sec" /> | ||
| 351 | <Counter Name="Disk Read Bytes/sec" RangeGroup="Disk Bytes sec" /> | ||
| 352 | <Counter Name="Disk Reads/sec" RangeGroup="Disk Transfers sec" /> | ||
| 353 | <Counter Name="Disk Transfers/sec" RangeGroup="Disk Transfers sec" /> | ||
| 354 | <Counter Name="Disk Write Bytes/sec" RangeGroup="Disk Bytes sec" /> | ||
| 355 | <Counter Name="Disk Writes/sec" RangeGroup="Disk Transfers sec" /> | ||
| 356 | <Counter Name="Split IO/Sec" RangeGroup="Disk Transfers sec" /> | ||
| 357 | </Counters> | ||
| 358 | <Instances> | ||
| 359 | <Instance Name="*" /> | ||
| 360 | </Instances> | ||
| 361 | </CounterCategory> | ||
| 362 | <CounterCategory Name="Processor"> | ||
| 363 | <Counters> | ||
| 364 | <Counter Name="% Processor Time" Range="100"> | ||
| 365 | <ThresholdRules> | ||
| 366 | <ThresholdRule Classname="Microsoft.VisualStudio.TestTools.WebStress.Rules.ThresholdRuleCompareConstant, Microsoft.VisualStudio.QualityTools.LoadTest"> | ||
| 367 | <RuleParameters> | ||
| 368 | <RuleParameter Name="AlertIfOver" Value="True" /> | ||
| 369 | <RuleParameter Name="WarningThreshold" Value="75" /> | ||
| 370 | <RuleParameter Name="CriticalThreshold" Value="90" /> | ||
| 371 | </RuleParameters> | ||
| 372 | </ThresholdRule> | ||
| 373 | </ThresholdRules> | ||
| 374 | </Counter> | ||
| 375 | <Counter Name="% Privileged Time" Range="100" /> | ||
| 376 | <Counter Name="% User Time" Range="100" /> | ||
| 377 | </Counters> | ||
| 378 | <Instances> | ||
| 379 | <Instance Name="0" /> | ||
| 380 | <Instance Name="_Total" /> | ||
| 381 | </Instances> | ||
| 382 | </CounterCategory> | ||
| 383 | <CounterCategory Name="System"> | ||
| 384 | <Counters> | ||
| 385 | <Counter Name="Context Switches/sec" /> | ||
| 386 | <Counter Name="Processes" /> | ||
| 387 | <Counter Name="Processor Queue Length" /> | ||
| 388 | <Counter Name="Threads" /> | ||
| 389 | </Counters> | ||
| 390 | </CounterCategory> | ||
| 391 | <CounterCategory Name="Process"> | ||
| 392 | <Counters> | ||
| 393 | <Counter Name="% Processor Time" RangeGroup="Processor Time" /> | ||
| 394 | <Counter Name="% Privileged Time" RangeGroup="Processor Time" /> | ||
| 395 | <Counter Name="% User Time" RangeGroup="Processor Time" /> | ||
| 396 | <Counter Name="Handle Count" /> | ||
| 397 | <Counter Name="Thread Count" /> | ||
| 398 | <Counter Name="Private Bytes" RangeGroup="Memory Bytes" /> | ||
| 399 | <Counter Name="Virtual Bytes" RangeGroup="Memory Bytes" /> | ||
| 400 | <Counter Name="Working Set" RangeGroup="Memory Bytes" /> | ||
| 401 | </Counters> | ||
| 402 | <Instances> | ||
| 403 | <Instance Name="devenv" /> | ||
| 404 | <Instance Name="QTAgentService" /> | ||
| 405 | <Instance Name="QTAgent" /> | ||
| 406 | <Instance Name="QTAgent32" /> | ||
| 407 | <Instance Name="QTDCAgent" /> | ||
| 408 | <Instance Name="QTDCAgent32" /> | ||
| 409 | <Instance Name="QTAgent_35" /> | ||
| 410 | <Instance Name="QTAgent_40" /> | ||
| 411 | <Instance Name="QTAgent32_35" /> | ||
| 412 | <Instance Name="QTAgent32_40" /> | ||
| 413 | </Instances> | ||
| 414 | </CounterCategory> | ||
| 415 | </CounterCategories> | ||
| 416 | <DefaultCountersForAutomaticGraphs> | ||
| 417 | <DefaultCounter CategoryName="Processor" CounterName="% Processor Time" InstanceName="0" GraphName="" RunType="Local" /> | ||
| 418 | <DefaultCounter CategoryName="Processor" CounterName="% Processor Time" InstanceName="_Total" GraphName="" RunType="Remote" /> | ||
| 419 | <DefaultCounter CategoryName="Memory" CounterName="Available MBytes" InstanceName="" GraphName="" /> | ||
| 420 | </DefaultCountersForAutomaticGraphs> | ||
| 421 | </CounterSet> | ||
| 422 | </CounterSets> | ||
| 423 | <RunConfigurations> | ||
| 424 | <RunConfiguration Name="Run Settings1" Description="" ResultsStoreType="Database" TimingDetailsStorage="AllIndividualDetails" SaveTestLogsOnError="true" SaveTestLogsFrequency="1" MaxErrorDetails="200" MaxErrorsPerType="1000" MaxThresholdViolations="1000" MaxRequestUrlsReported="1000" UseTestIterations="true" RunDuration="300" WarmupTime="0" CoolDownTime="0" TestIterations="1" WebTestConnectionModel="ConnectionPerUser" WebTestConnectionPoolSize="50" SampleRate="15" ValidationLevel="High" SqlTracingConnectString="" SqlTracingConnectStringDisplayValue="" SqlTracingDirectory="" SqlTracingEnabled="false" SqlTracingFileCount="2" SqlTracingRolloverEnabled="true" SqlTracingMinimumDuration="500" RunUnitTestsInAppDomain="true" CoreCount="0" UseMultipleIPs="false" TestAgentConfiguration="Default" AgentDiagnosticsLevel="Warning"> | ||
| 425 | <CounterSetMappings> | ||
| 426 | <CounterSetMapping ComputerName="[CONTROLLER MACHINE]"> | ||
| 427 | <CounterSetReferences> | ||
| 428 | <CounterSetReference CounterSetName="LoadTest" /> | ||
| 429 | <CounterSetReference CounterSetName="Controller" /> | ||
| 430 | </CounterSetReferences> | ||
| 431 | </CounterSetMapping> | ||
| 432 | <CounterSetMapping ComputerName="[AGENT MACHINES]"> | ||
| 433 | <CounterSetReferences> | ||
| 434 | <CounterSetReference CounterSetName="Agent" /> | ||
| 435 | </CounterSetReferences> | ||
| 436 | </CounterSetMapping> | ||
| 437 | </CounterSetMappings> | ||
| 438 | <LoadGeneratorLocations> | ||
| 439 | <GeoLocation Location="Default" Percentage="100" /> | ||
| 440 | </LoadGeneratorLocations> | ||
| 441 | </RunConfiguration> | ||
| 442 | </RunConfigurations> | ||
| 443 | <LoadTestPlugins> | ||
| 444 | <LoadTestPlugin Classname="LIL_VSTT_Plugins.ThinkTimeEmulator10190, LIL_VSTT_Plugins, Version=1.3.0.0, Culture=neutral, PublicKeyToken=null" DisplayName="Think Time Emulator 10/190" Description="Sets a context parameter named ThinkTime in each starting test to a random value between 10%-190% of the specified value."> | ||
| 445 | <RuleParameters> | ||
| 446 | <RuleParameter Name="ThinkTime" Value="1" /> | ||
| 447 | </RuleParameters> | ||
| 448 | </LoadTestPlugin> | ||
| 449 | </LoadTestPlugins> | ||
| 450 | </LoadTest> | ||
| ... | \ No newline at end of file | ... | \ No newline at end of file |
| ... | @@ -49,7 +49,9 @@ | ... | @@ -49,7 +49,9 @@ |
| 49 | <Reference Include="Microsoft.VisualStudio.QualityTools.LoadTestFramework, Version=10.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a"> | 49 | <Reference Include="Microsoft.VisualStudio.QualityTools.LoadTestFramework, Version=10.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a"> |
| 50 | <Private>False</Private> | 50 | <Private>False</Private> |
| 51 | </Reference> | 51 | </Reference> |
| 52 | <Reference Include="Microsoft.VisualStudio.QualityTools.UnitTestFramework, Version=10.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a, processorArchitecture=MSIL" /> | 52 | <Reference Include="Microsoft.VisualStudio.QualityTools.UnitTestFramework, Version=10.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a, processorArchitecture=MSIL"> |
| 53 | <Private>False</Private> | ||
| 54 | </Reference> | ||
| 53 | <Reference Include="Microsoft.VisualStudio.QualityTools.WebTestFramework, Version=10.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a" /> | 55 | <Reference Include="Microsoft.VisualStudio.QualityTools.WebTestFramework, Version=10.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a" /> |
| 54 | <Reference Include="System" /> | 56 | <Reference Include="System" /> |
| 55 | <Reference Include="System.Core"> | 57 | <Reference Include="System.Core"> |
| ... | @@ -76,6 +78,9 @@ | ... | @@ -76,6 +78,9 @@ |
| 76 | <None Include="LoadTest3.loadtest"> | 78 | <None Include="LoadTest3.loadtest"> |
| 77 | <CopyToOutputDirectory>Always</CopyToOutputDirectory> | 79 | <CopyToOutputDirectory>Always</CopyToOutputDirectory> |
| 78 | </None> | 80 | </None> |
| 81 | <None Include="LoadTest4.loadtest"> | ||
| 82 | <CopyToOutputDirectory>Always</CopyToOutputDirectory> | ||
| 83 | </None> | ||
| 79 | <None Include="WebTest22.webtest"> | 84 | <None Include="WebTest22.webtest"> |
| 80 | <CopyToOutputDirectory>Always</CopyToOutputDirectory> | 85 | <CopyToOutputDirectory>Always</CopyToOutputDirectory> |
| 81 | </None> | 86 | </None> |
| ... | @@ -85,10 +90,9 @@ | ... | @@ -85,10 +90,9 @@ |
| 85 | <None Include="WebTest3.webtest"> | 90 | <None Include="WebTest3.webtest"> |
| 86 | <CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory> | 91 | <CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory> |
| 87 | </None> | 92 | </None> |
| 88 | <Shadow Include="Test References\LIL_VSTT_Plugins.accessor" /> | 93 | <Resource Include="Userdata.csv"> |
| 89 | <None Include="Userdata.csv"> | 94 | <CopyToOutputDirectory>Always</CopyToOutputDirectory> |
| 90 | <CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory> | 95 | </Resource> |
| 91 | </None> | ||
| 92 | <None Include="WebTest1.webtest"> | 96 | <None Include="WebTest1.webtest"> |
| 93 | <CopyToOutputDirectory>Always</CopyToOutputDirectory> | 97 | <CopyToOutputDirectory>Always</CopyToOutputDirectory> |
| 94 | </None> | 98 | </None> | ... | ... |
| ... | @@ -19,39 +19,37 @@ namespace TestProject1 | ... | @@ -19,39 +19,37 @@ namespace TestProject1 |
| 19 | // | 19 | // |
| 20 | } | 20 | } |
| 21 | 21 | ||
| 22 | private TestContext testContextInstance; | 22 | public TestContext TestContext { get; set; } |
| 23 | |||
| 24 | /// <summary> | ||
| 25 | ///Gets or sets the test context which provides | ||
| 26 | ///information about and functionality for the current test run. | ||
| 27 | ///</summary> | ||
| 28 | public TestContext TestContext | ||
| 29 | { | ||
| 30 | get | ||
| 31 | { | ||
| 32 | return testContextInstance; | ||
| 33 | } | ||
| 34 | set | ||
| 35 | { | ||
| 36 | testContextInstance = value; | ||
| 37 | } | ||
| 38 | } | ||
| 39 | 23 | ||
| 40 | #region Additional test attributes | 24 | #region Additional test attributes |
| 41 | // | 25 | // |
| 42 | // You can use the following additional attributes as you write your tests: | 26 | // You can use the following additional attributes as you write your tests: |
| 43 | // | 27 | // |
| 44 | // Use ClassInitialize to run code before running the first test in the class | 28 | // Use ClassInitialize to run code before running the first test in the class |
| 45 | // [ClassInitialize()] | 29 | |
| 46 | // public static void MyClassInitialize(TestContext testContext) { } | 30 | |
| 47 | // | 31 | // |
| 48 | // Use ClassCleanup to run code after all tests in a class have run | 32 | // Use ClassCleanup to run code after all tests in a class have run |
| 49 | // [ClassCleanup()] | 33 | // [ClassCleanup()] |
| 50 | // public static void MyClassCleanup() { } | 34 | // public static void MyClassCleanup() { } |
| 51 | // | 35 | // |
| 52 | // Use TestInitialize to run code before running each test | 36 | // Use TestInitialize to run code before running each test |
| 53 | // [TestInitialize()] | 37 | private bool inLoadTest = false; |
| 54 | // public void MyTestInitialize() { } | 38 | private bool dontKnow = true; |
| 39 | [TestInitialize()] | ||
| 40 | public void CheckTestContextType() { | ||
| 41 | if (dontKnow) | ||
| 42 | { | ||
| 43 | // Check if the TestContext type is the one that a loadtest provides | ||
| 44 | if (TestContext.GetType().ToString().Equals("Microsoft.VisualStudio.TestTools.TestTypes.Unit.UnitTestAdapterContext")) | ||
| 45 | inLoadTest = true; | ||
| 46 | else | ||
| 47 | inLoadTest = false; | ||
| 48 | dontKnow = false; | ||
| 49 | TestContext.WriteLine("We have a loadtest TestContext: " + inLoadTest); | ||
| 50 | } | ||
| 51 | } | ||
| 52 | |||
| 55 | // | 53 | // |
| 56 | // Use TestCleanup to run code after each test has run | 54 | // Use TestCleanup to run code after each test has run |
| 57 | // [TestCleanup()] | 55 | // [TestCleanup()] |
| ... | @@ -62,11 +60,33 @@ namespace TestProject1 | ... | @@ -62,11 +60,33 @@ namespace TestProject1 |
| 62 | [TestMethod] | 60 | [TestMethod] |
| 63 | public void TestMethod1() | 61 | public void TestMethod1() |
| 64 | { | 62 | { |
| 65 | TestContext.WriteLine("Current Test Context parameters:"); | 63 | // Parameters |
| 64 | int myThinkTime = 5; | ||
| 65 | |||
| 66 | TestContext.WriteLine("# Current Test Context parameters:"); | ||
| 66 | IDictionary<string, object> dic = (IDictionary<string, object>)TestContext.Properties; | 67 | IDictionary<string, object> dic = (IDictionary<string, object>)TestContext.Properties; |
| 67 | foreach (KeyValuePair<string, object> pair in dic) | 68 | foreach (KeyValuePair<string, object> pair in dic) |
| 68 | TestContext.WriteLine(pair.Key + ": " + pair.Value.ToString()); | 69 | TestContext.WriteLine(pair.Key + ": " + pair.Value.ToString()); |
| 69 | TestContext.WriteLine("End of Current Test Context parameters."); | 70 | TestContext.WriteLine("# End of Current Test Context parameters."); |
| 71 | |||
| 72 | // Get think time from load test provided test context if set | ||
| 73 | if (TestContext.Properties.Contains("ThinkTime")) | ||
| 74 | { | ||
| 75 | myThinkTime = int.Parse(TestContext.Properties["ThinkTime"].ToString()); | ||
| 76 | TestContext.WriteLine("Using thinktime " + myThinkTime + " from test context"); | ||
| 77 | } | ||
| 78 | |||
| 79 | // Dummy transaction | ||
| 80 | TestContext.WriteLine("Starting transaction UnitTestTransaction1"); | ||
| 81 | if (inLoadTest) TestContext.BeginTimer("UnitTestTransaction1"); | ||
| 82 | |||
| 83 | // Think time | ||
| 84 | System.Threading.Thread.Sleep(myThinkTime * 1000); | ||
| 85 | |||
| 86 | // End transaction | ||
| 87 | TestContext.WriteLine("Ending transaction UnitTestTransaction1"); | ||
| 88 | if (inLoadTest) TestContext.EndTimer("UnitTestTransaction1"); | ||
| 89 | |||
| 70 | } | 90 | } |
| 71 | } | 91 | } |
| 72 | } | 92 | } | ... | ... |
-
Please register or sign in to post a comment