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