stella 0.5.1 → 0.5.3

Sign up to get free protection for your applications and to get access to all the features.
Files changed (100) hide show
  1. data/README.txt +84 -24
  2. data/Rakefile +6 -1
  3. data/lib/stella.rb +5 -4
  4. data/lib/stella/adapter/ab.rb +31 -4
  5. data/lib/stella/adapter/base.rb +15 -1
  6. data/lib/stella/adapter/httperf.rb +35 -4
  7. data/lib/stella/adapter/siege.rb +51 -29
  8. data/lib/stella/cli.rb +45 -22
  9. data/lib/stella/cli/agents.rb +73 -0
  10. data/lib/stella/cli/language.rb +2 -0
  11. data/lib/stella/cli/localtest.rb +5 -0
  12. data/lib/stella/command/base.rb +1 -1
  13. data/lib/stella/command/localtest.rb +84 -68
  14. data/lib/stella/test/{summarybase.rb → base.rb} +3 -7
  15. data/lib/stella/test/definition.rb +10 -5
  16. data/lib/stella/test/{runsummary.rb → run/summary.rb} +4 -6
  17. data/lib/stella/test/{testsummary.rb → summary.rb} +27 -29
  18. data/lib/utils/escape.rb +302 -0
  19. data/lib/utils/mathutil.rb +36 -34
  20. data/support/text/en.yaml +7 -1
  21. metadata +8 -102
  22. data/doc/classes/Crypto.html +0 -248
  23. data/doc/classes/Crypto/Key.html +0 -308
  24. data/doc/classes/Enumerable.html +0 -309
  25. data/doc/classes/FileUtil.html +0 -310
  26. data/doc/classes/HTTPUtil.html +0 -530
  27. data/doc/classes/MathUtil.html +0 -210
  28. data/doc/classes/Stella.html +0 -238
  29. data/doc/classes/Stella/Adapter.html +0 -127
  30. data/doc/classes/Stella/Adapter/ApacheBench.html +0 -1076
  31. data/doc/classes/Stella/Adapter/Base.html +0 -432
  32. data/doc/classes/Stella/Adapter/CommandNotReady.html +0 -146
  33. data/doc/classes/Stella/Adapter/Httperf.html +0 -949
  34. data/doc/classes/Stella/Adapter/Siege.html +0 -1011
  35. data/doc/classes/Stella/CLI.html +0 -914
  36. data/doc/classes/Stella/CLI/Base.html +0 -186
  37. data/doc/classes/Stella/CLI/Language.html +0 -149
  38. data/doc/classes/Stella/CLI/LocalTest.html +0 -268
  39. data/doc/classes/Stella/Command.html +0 -111
  40. data/doc/classes/Stella/Command/Base.html +0 -335
  41. data/doc/classes/Stella/Config.html +0 -292
  42. data/doc/classes/Stella/InvalidArgument.html +0 -242
  43. data/doc/classes/Stella/LocalTest.html +0 -450
  44. data/doc/classes/Stella/Logger.html +0 -548
  45. data/doc/classes/Stella/Response.html +0 -846
  46. data/doc/classes/Stella/Storable.html +0 -928
  47. data/doc/classes/Stella/Test.html +0 -142
  48. data/doc/classes/Stella/Test/DaySummary.html +0 -249
  49. data/doc/classes/Stella/Test/Definition.html +0 -294
  50. data/doc/classes/Stella/Test/Definition/Rampup.html +0 -215
  51. data/doc/classes/Stella/Test/RunSummary.html +0 -315
  52. data/doc/classes/Stella/Test/SummaryBase.html +0 -286
  53. data/doc/classes/Stella/Test/TestSummary.html +0 -200
  54. data/doc/classes/Stella/Text.html +0 -581
  55. data/doc/classes/Stella/Text/Resource.html +0 -289
  56. data/doc/classes/Stella/UnavailableAdapter.html +0 -242
  57. data/doc/classes/Stella/UnknownValue.html +0 -242
  58. data/doc/classes/Stella/UnsupportedLanguage.html +0 -115
  59. data/doc/classes/Stella/Util.html +0 -348
  60. data/doc/classes/TextGraph.html +0 -460
  61. data/doc/classes/TimerUtil.html +0 -431
  62. data/doc/created.rid +0 -1
  63. data/doc/files/LICENSE_txt.html +0 -129
  64. data/doc/files/README_txt.html +0 -209
  65. data/doc/files/lib/stella/adapter/ab_rb.html +0 -101
  66. data/doc/files/lib/stella/adapter/base_rb.html +0 -101
  67. data/doc/files/lib/stella/adapter/httperf_rb.html +0 -101
  68. data/doc/files/lib/stella/adapter/siege_rb.html +0 -101
  69. data/doc/files/lib/stella/cli/base_rb.html +0 -101
  70. data/doc/files/lib/stella/cli/language_rb.html +0 -101
  71. data/doc/files/lib/stella/cli/localtest_rb.html +0 -101
  72. data/doc/files/lib/stella/cli_rb.html +0 -112
  73. data/doc/files/lib/stella/command/base_rb.html +0 -101
  74. data/doc/files/lib/stella/command/localtest_rb.html +0 -101
  75. data/doc/files/lib/stella/logger_rb.html +0 -101
  76. data/doc/files/lib/stella/response_rb.html +0 -101
  77. data/doc/files/lib/stella/storable_rb.html +0 -109
  78. data/doc/files/lib/stella/support_rb.html +0 -101
  79. data/doc/files/lib/stella/test/daysummary_rb.html +0 -101
  80. data/doc/files/lib/stella/test/definition_rb.html +0 -101
  81. data/doc/files/lib/stella/test/runsummary_rb.html +0 -101
  82. data/doc/files/lib/stella/test/summarybase_rb.html +0 -101
  83. data/doc/files/lib/stella/test/testsummary_rb.html +0 -108
  84. data/doc/files/lib/stella/text/resource_rb.html +0 -108
  85. data/doc/files/lib/stella/text_rb.html +0 -108
  86. data/doc/files/lib/stella_rb.html +0 -128
  87. data/doc/files/lib/utils/crypto-key_rb.html +0 -116
  88. data/doc/files/lib/utils/fileutil_rb.html +0 -108
  89. data/doc/files/lib/utils/httputil_rb.html +0 -110
  90. data/doc/files/lib/utils/mathutil_rb.html +0 -101
  91. data/doc/files/lib/utils/textgraph_rb.html +0 -138
  92. data/doc/files/lib/utils/timerutil_rb.html +0 -108
  93. data/doc/fr_class_index.html +0 -66
  94. data/doc/fr_file_index.html +0 -62
  95. data/doc/fr_method_index.html +0 -309
  96. data/doc/index.html +0 -24
  97. data/doc/rdoc-style.css +0 -208
  98. data/lib/stella/test/daysummary.rb +0 -93
  99. data/spec/base.rb +0 -26
  100. data/spec/shell_spec.rb +0 -12
@@ -1,1011 +0,0 @@
1
- <?xml version="1.0" encoding="utf-8"?>
2
- <!DOCTYPE html
3
- PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
4
- "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
5
-
6
- <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
7
- <head>
8
- <title>Class: Stella::Adapter::Siege</title>
9
- <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
10
- <meta http-equiv="Content-Script-Type" content="text/javascript" />
11
- <link rel="stylesheet" href="../../.././rdoc-style.css" type="text/css" media="screen" />
12
- <script type="text/javascript">
13
- // <![CDATA[
14
-
15
- function popupCode( url ) {
16
- window.open(url, "Code", "resizable=yes,scrollbars=yes,toolbar=no,status=no,height=150,width=400")
17
- }
18
-
19
- function toggleCode( id ) {
20
- if ( document.getElementById )
21
- elem = document.getElementById( id );
22
- else if ( document.all )
23
- elem = eval( "document.all." + id );
24
- else
25
- return false;
26
-
27
- elemStyle = elem.style;
28
-
29
- if ( elemStyle.display != "block" ) {
30
- elemStyle.display = "block"
31
- } else {
32
- elemStyle.display = "none"
33
- }
34
-
35
- return true;
36
- }
37
-
38
- // Make codeblocks hidden by default
39
- document.writeln( "<style type=\"text/css\">div.method-source-code { display: none }</style>" )
40
-
41
- // ]]>
42
- </script>
43
-
44
- </head>
45
- <body>
46
-
47
-
48
-
49
- <div id="classHeader">
50
- <table class="header-table">
51
- <tr class="top-aligned-row">
52
- <td><strong>Class</strong></td>
53
- <td class="class-name-in-header">Stella::Adapter::Siege</td>
54
- </tr>
55
- <tr class="top-aligned-row">
56
- <td><strong>In:</strong></td>
57
- <td>
58
- <a href="../../../files/lib/stella/adapter/siege_rb.html">
59
- lib/stella/adapter/siege.rb
60
- </a>
61
- <br />
62
- </td>
63
- </tr>
64
-
65
- <tr class="top-aligned-row">
66
- <td><strong>Parent:</strong></td>
67
- <td>
68
- <a href="Base.html">
69
- Stella::Adapter::Base
70
- </a>
71
- </td>
72
- </tr>
73
- </table>
74
- </div>
75
- <!-- banner header -->
76
-
77
- <div id="bodyContent">
78
-
79
-
80
-
81
- <div id="contextContent">
82
-
83
- <div id="description">
84
- <p>
85
- SIEGE Usage: siege [options]
86
- </p>
87
- <pre>
88
- siege [options] URL
89
- siege -g URL
90
- </pre>
91
- <p>
92
- Options:
93
- </p>
94
- <pre>
95
- -V, --version VERSION, prints version number to screen.
96
- -h, --help HELP, prints this section.
97
- -C, --config CONFIGURATION, show the current configuration.
98
- -v, --verbose VERBOSE, prints notification to screen.
99
- -g, --get GET, pull down headers from the server and display HTTP
100
- transaction. Great for web application debugging.
101
- -c, --concurrent=NUM CONCURRENT users, default is 10
102
- -u, --url=&quot;URL&quot; Deprecated. Set URL as the last argument.
103
- -i, --internet INTERNET user simulation, hits the URLs randomly.
104
- -b, --benchmark BENCHMARK, signifies no delay for time testing.
105
- -t, --time=NUMm TIME based testing where &quot;m&quot; is the modifier S, M, or H
106
- no space between NUM and &quot;m&quot;, ex: --time=1H, one hour test.
107
- -r, --reps=NUM REPS, number of times to run the test, default is 25
108
- -f, --file=FILE FILE, change the configuration file to file.
109
- -R, --rc=FILE RC, change the siegerc file to file. Overrides
110
- the SIEGERC environmental variable.
111
- -l, --log LOG, logs the transaction to PREFIX/var/siege.log
112
- -m, --mark=&quot;text&quot; MARK, mark the log file with a string separator.
113
- -d, --delay=NUM Time DELAY, random delay between 1 and num designed
114
- to simulate human activity. Default value is 3
115
- -H, --header=&quot;text&quot; Add a header to request (can be many)
116
- -A, --user-agent=&quot;text&quot; Sets User-Agent in request
117
- </pre>
118
-
119
- </div>
120
-
121
-
122
- </div>
123
-
124
- <div id="method-list">
125
- <h3 class="section-bar">Methods</h3>
126
-
127
- <div class="name-list">
128
- <a href="#M000032">after</a>&nbsp;&nbsp;
129
- <a href="#M000030">before</a>&nbsp;&nbsp;
130
- <a href="#M000031">command</a>&nbsp;&nbsp;
131
- <a href="#M000039">concurrent</a>&nbsp;&nbsp;
132
- <a href="#M000040">concurrent_f</a>&nbsp;&nbsp;
133
- <a href="#M000043">copy_siegerc</a>&nbsp;&nbsp;
134
- <a href="#M000044">copy_urls_file</a>&nbsp;&nbsp;
135
- <a href="#M000028">loadtest?</a>&nbsp;&nbsp;
136
- <a href="#M000047">log_file</a>&nbsp;&nbsp;
137
- <a href="#M000026">new</a>&nbsp;&nbsp;
138
- <a href="#M000033">process_options</a>&nbsp;&nbsp;
139
- <a href="#M000046">rc_file</a>&nbsp;&nbsp;
140
- <a href="#M000029">ready?</a>&nbsp;&nbsp;
141
- <a href="#M000041">reps</a>&nbsp;&nbsp;
142
- <a href="#M000036">requests</a>&nbsp;&nbsp;
143
- <a href="#M000037">requests=</a>&nbsp;&nbsp;
144
- <a href="#M000049">stats</a>&nbsp;&nbsp;
145
- <a href="#M000045">stats_file</a>&nbsp;&nbsp;
146
- <a href="#M000042">update_orig_logfile</a>&nbsp;&nbsp;
147
- <a href="#M000048">uris_file</a>&nbsp;&nbsp;
148
- <a href="#M000027">version</a>&nbsp;&nbsp;
149
- <a href="#M000038">vuser_requests</a>&nbsp;&nbsp;
150
- <a href="#M000034">vusers</a>&nbsp;&nbsp;
151
- <a href="#M000035">vusers=</a>&nbsp;&nbsp;
152
- </div>
153
- </div>
154
-
155
- </div>
156
-
157
-
158
- <!-- if includes -->
159
-
160
- <div id="section">
161
-
162
-
163
-
164
-
165
-
166
- <div id="attribute-list">
167
- <h3 class="section-bar">Attributes</h3>
168
-
169
- <div class="name-list">
170
- <table>
171
- <tr class="top-aligned-row context-row">
172
- <td class="context-item-name">benchmark</td>
173
- <td class="context-item-value">&nbsp;[RW]&nbsp;</td>
174
- <td class="context-item-desc"></td>
175
- </tr>
176
- <tr class="top-aligned-row context-row">
177
- <td class="context-item-name">concurrent</td>
178
- <td class="context-item-value">&nbsp;[RW]&nbsp;</td>
179
- <td class="context-item-desc"></td>
180
- </tr>
181
- <tr class="top-aligned-row context-row">
182
- <td class="context-item-name">config</td>
183
- <td class="context-item-value">&nbsp;[RW]&nbsp;</td>
184
- <td class="context-item-desc"></td>
185
- </tr>
186
- <tr class="top-aligned-row context-row">
187
- <td class="context-item-name">delay</td>
188
- <td class="context-item-value">&nbsp;[RW]&nbsp;</td>
189
- <td class="context-item-desc"></td>
190
- </tr>
191
- <tr class="top-aligned-row context-row">
192
- <td class="context-item-name">file</td>
193
- <td class="context-item-value">&nbsp;[RW]&nbsp;</td>
194
- <td class="context-item-desc"></td>
195
- </tr>
196
- <tr class="top-aligned-row context-row">
197
- <td class="context-item-name">get</td>
198
- <td class="context-item-value">&nbsp;[RW]&nbsp;</td>
199
- <td class="context-item-desc"></td>
200
- </tr>
201
- <tr class="top-aligned-row context-row">
202
- <td class="context-item-name">header</td>
203
- <td class="context-item-value">&nbsp;[RW]&nbsp;</td>
204
- <td class="context-item-desc"></td>
205
- </tr>
206
- <tr class="top-aligned-row context-row">
207
- <td class="context-item-name">help</td>
208
- <td class="context-item-value">&nbsp;[RW]&nbsp;</td>
209
- <td class="context-item-desc"></td>
210
- </tr>
211
- <tr class="top-aligned-row context-row">
212
- <td class="context-item-name">internet</td>
213
- <td class="context-item-value">&nbsp;[RW]&nbsp;</td>
214
- <td class="context-item-desc"></td>
215
- </tr>
216
- <tr class="top-aligned-row context-row">
217
- <td class="context-item-name">log</td>
218
- <td class="context-item-value">&nbsp;[RW]&nbsp;</td>
219
- <td class="context-item-desc"></td>
220
- </tr>
221
- <tr class="top-aligned-row context-row">
222
- <td class="context-item-name">mark</td>
223
- <td class="context-item-value">&nbsp;[RW]&nbsp;</td>
224
- <td class="context-item-desc"></td>
225
- </tr>
226
- <tr class="top-aligned-row context-row">
227
- <td class="context-item-name">rc</td>
228
- <td class="context-item-value">&nbsp;[RW]&nbsp;</td>
229
- <td class="context-item-desc"></td>
230
- </tr>
231
- <tr class="top-aligned-row context-row">
232
- <td class="context-item-name">reps</td>
233
- <td class="context-item-value">&nbsp;[RW]&nbsp;</td>
234
- <td class="context-item-desc"></td>
235
- </tr>
236
- <tr class="top-aligned-row context-row">
237
- <td class="context-item-name">time</td>
238
- <td class="context-item-value">&nbsp;[RW]&nbsp;</td>
239
- <td class="context-item-desc"></td>
240
- </tr>
241
- <tr class="top-aligned-row context-row">
242
- <td class="context-item-name">user_agent</td>
243
- <td class="context-item-value">&nbsp;[RW]&nbsp;</td>
244
- <td class="context-item-desc"></td>
245
- </tr>
246
- <tr class="top-aligned-row context-row">
247
- <td class="context-item-name">verbose</td>
248
- <td class="context-item-value">&nbsp;[RW]&nbsp;</td>
249
- <td class="context-item-desc"></td>
250
- </tr>
251
- <tr class="top-aligned-row context-row">
252
- <td class="context-item-name">version</td>
253
- <td class="context-item-value">&nbsp;[RW]&nbsp;</td>
254
- <td class="context-item-desc"></td>
255
- </tr>
256
- </table>
257
- </div>
258
- </div>
259
-
260
-
261
-
262
- <!-- if method_list -->
263
- <div id="methods">
264
- <h3 class="section-bar">Public Class methods</h3>
265
-
266
- <div id="method-M000026" class="method-detail">
267
- <a name="M000026"></a>
268
-
269
- <div class="method-heading">
270
- <a href="#M000026" class="method-signature">
271
- <span class="method-name">new</span><span class="method-args">(options={}, arguments=[])</span>
272
- </a>
273
- </div>
274
-
275
- <div class="method-description">
276
- <p><a class="source-toggle" href="#"
277
- onclick="toggleCode('M000026-source');return false;">[Source]</a></p>
278
- <div class="method-source-code" id="M000026-source">
279
- <pre>
280
- <span class="ruby-comment cmt"># File lib/stella/adapter/siege.rb, line 39</span>
281
- 39: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">initialize</span>(<span class="ruby-identifier">options</span>={}, <span class="ruby-identifier">arguments</span>=[])
282
- 40: <span class="ruby-keyword kw">super</span>(<span class="ruby-identifier">options</span>, <span class="ruby-identifier">arguments</span>)
283
- 41: <span class="ruby-ivar">@name</span> = <span class="ruby-value str">'siege'</span>
284
- 42: <span class="ruby-ivar">@reps</span> = <span class="ruby-value">1</span>
285
- 43: <span class="ruby-ivar">@concurrent</span> = <span class="ruby-value">1</span>
286
- 44: <span class="ruby-ivar">@rc</span> = <span class="ruby-constant">File</span>.<span class="ruby-identifier">join</span>(<span class="ruby-constant">ENV</span>[<span class="ruby-value str">'HOME'</span>], <span class="ruby-value str">'.siegerc'</span>)
287
- 45: <span class="ruby-ivar">@private_variables</span> = [<span class="ruby-value str">'private_variables'</span>, <span class="ruby-value str">'name'</span>, <span class="ruby-value str">'arguments'</span>, <span class="ruby-value str">'load_factor'</span>, <span class="ruby-value str">'working_directory'</span>, <span class="ruby-value str">'orig_logfile'</span>]
288
- 46: <span class="ruby-ivar">@load_factor</span> = <span class="ruby-value">1</span>
289
- 47: <span class="ruby-keyword kw">end</span>
290
- </pre>
291
- </div>
292
- </div>
293
- </div>
294
-
295
- <h3 class="section-bar">Public Instance methods</h3>
296
-
297
- <div id="method-M000032" class="method-detail">
298
- <a name="M000032"></a>
299
-
300
- <div class="method-heading">
301
- <a href="#M000032" class="method-signature">
302
- <span class="method-name">after</span><span class="method-args">()</span>
303
- </a>
304
- </div>
305
-
306
- <div class="method-description">
307
- <p>
308
- After calling run
309
- </p>
310
- <p><a class="source-toggle" href="#"
311
- onclick="toggleCode('M000032-source');return false;">[Source]</a></p>
312
- <div class="method-source-code" id="M000032-source">
313
- <pre>
314
- <span class="ruby-comment cmt"># File lib/stella/adapter/siege.rb, line 110</span>
315
- 110: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">after</span>
316
- 111:
317
- 112: <span class="ruby-identifier">update_orig_logfile</span> <span class="ruby-keyword kw">if</span> <span class="ruby-ivar">@orig_logfile</span>
318
- 113:
319
- 114: <span class="ruby-identifier">save_stats</span>
320
- 115: <span class="ruby-keyword kw">end</span>
321
- </pre>
322
- </div>
323
- </div>
324
- </div>
325
-
326
- <div id="method-M000030" class="method-detail">
327
- <a name="M000030"></a>
328
-
329
- <div class="method-heading">
330
- <a href="#M000030" class="method-signature">
331
- <span class="method-name">before</span><span class="method-args">()</span>
332
- </a>
333
- </div>
334
-
335
- <div class="method-description">
336
- <p>
337
- Before calling run
338
- </p>
339
- <p><a class="source-toggle" href="#"
340
- onclick="toggleCode('M000030-source');return false;">[Source]</a></p>
341
- <div class="method-source-code" id="M000030-source">
342
- <pre>
343
- <span class="ruby-comment cmt"># File lib/stella/adapter/siege.rb, line 75</span>
344
- 75: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">before</span>
345
- 76:
346
- 77: <span class="ruby-comment cmt"># Keep a copy of the configuration file. </span>
347
- 78: <span class="ruby-identifier">copy_siegerc</span>
348
- 79:
349
- 80: <span class="ruby-comment cmt"># Keep a copy of the URLs file.</span>
350
- 81: <span class="ruby-identifier">copy_urls_file</span> <span class="ruby-keyword kw">if</span> <span class="ruby-ivar">@file</span>
351
- 82:
352
- 83: <span class="ruby-comment cmt"># TODO: Print message about neither --benchmark or --internet</span>
353
- 84: <span class="ruby-keyword kw">end</span>
354
- </pre>
355
- </div>
356
- </div>
357
- </div>
358
-
359
- <div id="method-M000031" class="method-detail">
360
- <a name="M000031"></a>
361
-
362
- <div class="method-heading">
363
- <a href="#M000031" class="method-signature">
364
- <span class="method-name">command</span><span class="method-args">()</span>
365
- </a>
366
- </div>
367
-
368
- <div class="method-description">
369
- <p><a class="source-toggle" href="#"
370
- onclick="toggleCode('M000031-source');return false;">[Source]</a></p>
371
- <div class="method-source-code" id="M000031-source">
372
- <pre>
373
- <span class="ruby-comment cmt"># File lib/stella/adapter/siege.rb, line 85</span>
374
- 85: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">command</span>
375
- 86: <span class="ruby-identifier">raise</span> <span class="ruby-constant">CommandNotReady</span>.<span class="ruby-identifier">new</span>(<span class="ruby-keyword kw">self</span>.<span class="ruby-identifier">class</span>.<span class="ruby-identifier">to_s</span>) <span class="ruby-keyword kw">unless</span> <span class="ruby-identifier">ready?</span>
376
- 87:
377
- 88: <span class="ruby-identifier">command</span> = <span class="ruby-node">&quot;#{@name} &quot;</span>
378
- 89:
379
- 90: <span class="ruby-identifier">instance_variables</span>.<span class="ruby-identifier">each</span> <span class="ruby-keyword kw">do</span> <span class="ruby-operator">|</span><span class="ruby-identifier">name</span><span class="ruby-operator">|</span>
380
- 91: <span class="ruby-identifier">canon</span> = <span class="ruby-identifier">name</span>.<span class="ruby-identifier">tr</span>(<span class="ruby-value str">'@'</span>, <span class="ruby-value str">''</span>) <span class="ruby-comment cmt"># instance_variables returns '@name'</span>
381
- 92: <span class="ruby-keyword kw">next</span> <span class="ruby-keyword kw">if</span> <span class="ruby-ivar">@private_variables</span>.<span class="ruby-identifier">member?</span>(<span class="ruby-identifier">canon</span>)
382
- 93:
383
- 94: <span class="ruby-comment cmt"># It's important that we take the value from the getter method</span>
384
- 95: <span class="ruby-comment cmt"># because it applies the load factor. </span>
385
- 96: <span class="ruby-identifier">value</span> = <span class="ruby-keyword kw">self</span>.<span class="ruby-identifier">send</span>(<span class="ruby-identifier">canon</span>)
386
- 97: <span class="ruby-keyword kw">if</span> (<span class="ruby-identifier">value</span>.<span class="ruby-identifier">is_a?</span> <span class="ruby-constant">Array</span>)
387
- 98: <span class="ruby-identifier">value</span>.<span class="ruby-identifier">each</span> { <span class="ruby-operator">|</span><span class="ruby-identifier">el</span><span class="ruby-operator">|</span> <span class="ruby-identifier">command</span> <span class="ruby-operator">&lt;&lt;</span> <span class="ruby-node">&quot;--#{cannon.tr('_', '-')} '#{el}' &quot;</span> }
388
- 99: <span class="ruby-keyword kw">else</span>
389
- 100: <span class="ruby-identifier">command</span> <span class="ruby-operator">&lt;&lt;</span> <span class="ruby-node">&quot;--#{canon.tr('_', '-')} '#{value}' &quot;</span>
390
- 101: <span class="ruby-keyword kw">end</span>
391
- 102:
392
- 103: <span class="ruby-keyword kw">end</span>
393
- 104:
394
- 105: <span class="ruby-identifier">command</span> <span class="ruby-operator">&lt;&lt;</span> (<span class="ruby-ivar">@arguments</span>.<span class="ruby-identifier">map</span> { <span class="ruby-operator">|</span><span class="ruby-identifier">uri</span><span class="ruby-operator">|</span> <span class="ruby-node">&quot;'#{uri}'&quot;</span> }).<span class="ruby-identifier">join</span>(<span class="ruby-value str">' '</span>) <span class="ruby-keyword kw">unless</span> <span class="ruby-ivar">@arguments</span>.<span class="ruby-identifier">empty?</span>
395
- 106: <span class="ruby-identifier">command</span>
396
- 107: <span class="ruby-keyword kw">end</span>
397
- </pre>
398
- </div>
399
- </div>
400
- </div>
401
-
402
- <div id="method-M000039" class="method-detail">
403
- <a name="M000039"></a>
404
-
405
- <div class="method-heading">
406
- <a href="#M000039" class="method-signature">
407
- <span class="method-name">concurrent</span><span class="method-args">()</span>
408
- </a>
409
- </div>
410
-
411
- <div class="method-description">
412
- <p><a class="source-toggle" href="#"
413
- onclick="toggleCode('M000039-source');return false;">[Source]</a></p>
414
- <div class="method-source-code" id="M000039-source">
415
- <pre>
416
- <span class="ruby-comment cmt"># File lib/stella/adapter/siege.rb, line 170</span>
417
- 170: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">concurrent</span>
418
- 171: (<span class="ruby-ivar">@concurrent</span> <span class="ruby-operator">*</span> <span class="ruby-ivar">@load_factor</span>).<span class="ruby-identifier">to_i</span>
419
- 172: <span class="ruby-keyword kw">end</span>
420
- </pre>
421
- </div>
422
- </div>
423
- </div>
424
-
425
- <div id="method-M000040" class="method-detail">
426
- <a name="M000040"></a>
427
-
428
- <div class="method-heading">
429
- <a href="#M000040" class="method-signature">
430
- <span class="method-name">concurrent_f</span><span class="method-args">()</span>
431
- </a>
432
- </div>
433
-
434
- <div class="method-description">
435
- <p><a class="source-toggle" href="#"
436
- onclick="toggleCode('M000040-source');return false;">[Source]</a></p>
437
- <div class="method-source-code" id="M000040-source">
438
- <pre>
439
- <span class="ruby-comment cmt"># File lib/stella/adapter/siege.rb, line 173</span>
440
- 173: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">concurrent_f</span>
441
- 174: (<span class="ruby-ivar">@concurrent</span> <span class="ruby-operator">*</span> <span class="ruby-ivar">@load_factor</span>).<span class="ruby-identifier">to_f</span>
442
- 175: <span class="ruby-keyword kw">end</span>
443
- </pre>
444
- </div>
445
- </div>
446
- </div>
447
-
448
- <div id="method-M000043" class="method-detail">
449
- <a name="M000043"></a>
450
-
451
- <div class="method-heading">
452
- <a href="#M000043" class="method-signature">
453
- <span class="method-name">copy_siegerc</span><span class="method-args">()</span>
454
- </a>
455
- </div>
456
-
457
- <div class="method-description">
458
- <p>
459
- We want to keep a copy of the configuration file and also modify it a
460
- little bit to make sure we get all the mad info from siege
461
- </p>
462
- <p><a class="source-toggle" href="#"
463
- onclick="toggleCode('M000043-source');return false;">[Source]</a></p>
464
- <div class="method-source-code" id="M000043-source">
465
- <pre>
466
- <span class="ruby-comment cmt"># File lib/stella/adapter/siege.rb, line 200</span>
467
- 200: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">copy_siegerc</span>
468
- 201:
469
- 202: <span class="ruby-comment cmt"># Read in the siegerc file so we can manipulate it</span>
470
- 203: <span class="ruby-identifier">siegerc_str</span> = <span class="ruby-constant">FileUtil</span>.<span class="ruby-identifier">read_file</span>(<span class="ruby-constant">File</span>.<span class="ruby-identifier">expand_path</span>(<span class="ruby-ivar">@rc</span>))
471
- 204:
472
- 205: <span class="ruby-identifier">siegerc_vars</span> = {
473
- 206: <span class="ruby-identifier">:verbose</span> =<span class="ruby-operator">&gt;</span> [<span class="ruby-keyword kw">false</span>, <span class="ruby-keyword kw">true</span>], <span class="ruby-comment cmt"># We want to maximize the data output by siege</span>
474
- 207: <span class="ruby-identifier">:logging</span> =<span class="ruby-operator">&gt;</span> [<span class="ruby-keyword kw">false</span>, <span class="ruby-keyword kw">true</span>],
475
- 208: <span class="ruby-identifier">:csv</span> =<span class="ruby-operator">&gt;</span> [<span class="ruby-keyword kw">false</span>, <span class="ruby-keyword kw">true</span>]
476
- 209: }
477
- 210:
478
- 211: <span class="ruby-comment cmt">#if (@agent)</span>
479
- 212: <span class="ruby-comment cmt"># siegerc_vars['user-agent'] = ['.*', 'dogs2']</span>
480
- 213: <span class="ruby-comment cmt">#end</span>
481
- 214:
482
- 215: <span class="ruby-comment cmt"># We'll set the variables in the siegerc file</span>
483
- 216: <span class="ruby-identifier">siegerc_vars</span>.<span class="ruby-identifier">each_pair</span> <span class="ruby-keyword kw">do</span> <span class="ruby-operator">|</span><span class="ruby-identifier">var</span>,<span class="ruby-identifier">value</span><span class="ruby-operator">|</span>
484
- 217: <span class="ruby-identifier">siegerc_str</span>.<span class="ruby-identifier">gsub!</span>(<span class="ruby-node">/#{var}\s*=\s*#{value[0]}/</span>, <span class="ruby-node">&quot;#{var} = #{value[1]}&quot;</span>) <span class="ruby-comment cmt"># make true</span>
485
- 218: <span class="ruby-identifier">siegerc_str</span>.<span class="ruby-identifier">gsub!</span>(<span class="ruby-node">/^\#+\s*#{var}/</span>, <span class="ruby-node">&quot;#{var}&quot;</span>) <span class="ruby-comment cmt"># remove comment</span>
486
- 219: <span class="ruby-keyword kw">end</span>
487
- 220:
488
- 221: <span class="ruby-comment cmt"># Look for the enabled logile path</span>
489
- 222: <span class="ruby-comment cmt"># We will use this later to update it from the last line in our copy</span>
490
- 223: <span class="ruby-identifier">siegerc_str</span> <span class="ruby-operator">=~</span> <span class="ruby-regexp re">/^\s*logfile\s*=\s*(.+?)$/</span>
491
- 224: <span class="ruby-ivar">@orig_logfile</span> = <span class="ruby-identifier">$1</span> <span class="ruby-operator">||</span> <span class="ruby-keyword kw">nil</span>
492
- 225:
493
- 226: <span class="ruby-comment cmt"># Replace all environment variables with literal values</span>
494
- 227: <span class="ruby-ivar">@orig_logfile</span>.<span class="ruby-identifier">gsub!</span>(<span class="ruby-node">/\$\{#{$1}\}/</span>, <span class="ruby-constant">ENV</span>[<span class="ruby-identifier">$1</span>]) <span class="ruby-keyword kw">while</span> (<span class="ruby-ivar">@orig_logfile</span> <span class="ruby-operator">=~</span> <span class="ruby-regexp re">/\$\{(.+?)\}/</span> <span class="ruby-operator">&amp;&amp;</span> <span class="ruby-constant">ENV</span>.<span class="ruby-identifier">has_key?</span>(<span class="ruby-identifier">$1</span>))
495
- 228:
496
- 229: <span class="ruby-ivar">@orig_logfile</span> = <span class="ruby-constant">File</span>.<span class="ruby-identifier">expand_path</span>(<span class="ruby-ivar">@orig_logfile</span>) <span class="ruby-keyword kw">if</span> <span class="ruby-ivar">@orig_logfile</span>
497
- 230:
498
- 231:
499
- 232: <span class="ruby-identifier">siegerc_str</span>.<span class="ruby-identifier">gsub!</span>(<span class="ruby-regexp re">/^\#*\s*logfile\s*=\s*.*?$/</span>, <span class="ruby-value str">&quot;logfile = &quot;</span> <span class="ruby-operator">+</span> <span class="ruby-identifier">log_file</span>)
500
- 233:
501
- 234: <span class="ruby-constant">FileUtil</span>.<span class="ruby-identifier">write_file</span>(<span class="ruby-identifier">rc_file</span>, <span class="ruby-identifier">siegerc_str</span>, <span class="ruby-keyword kw">true</span>)
502
- 235: <span class="ruby-ivar">@rc</span> = <span class="ruby-identifier">rc_file</span>
503
- 236: <span class="ruby-keyword kw">end</span>
504
- </pre>
505
- </div>
506
- </div>
507
- </div>
508
-
509
- <div id="method-M000044" class="method-detail">
510
- <a name="M000044"></a>
511
-
512
- <div class="method-heading">
513
- <a href="#M000044" class="method-signature">
514
- <span class="method-name">copy_urls_file</span><span class="method-args">()</span>
515
- </a>
516
- </div>
517
-
518
- <div class="method-description">
519
- <p>
520
- We want to keep a copy of the URLs file too
521
- </p>
522
- <p><a class="source-toggle" href="#"
523
- onclick="toggleCode('M000044-source');return false;">[Source]</a></p>
524
- <div class="method-source-code" id="M000044-source">
525
- <pre>
526
- <span class="ruby-comment cmt"># File lib/stella/adapter/siege.rb, line 239</span>
527
- 239: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">copy_urls_file</span>
528
- 240: <span class="ruby-keyword kw">if</span> <span class="ruby-ivar">@file</span>
529
- 241: <span class="ruby-constant">File</span>.<span class="ruby-identifier">copy</span>(<span class="ruby-constant">File</span>.<span class="ruby-identifier">expand_path</span>(<span class="ruby-ivar">@file</span>), <span class="ruby-identifier">uris_file</span>)
530
- 242: <span class="ruby-ivar">@file</span> = <span class="ruby-identifier">uris_file</span>
531
- 243: <span class="ruby-keyword kw">end</span>
532
- 244: <span class="ruby-keyword kw">end</span>
533
- </pre>
534
- </div>
535
- </div>
536
- </div>
537
-
538
- <div id="method-M000028" class="method-detail">
539
- <a name="M000028"></a>
540
-
541
- <div class="method-heading">
542
- <a href="#M000028" class="method-signature">
543
- <span class="method-name">loadtest?</span><span class="method-args">()</span>
544
- </a>
545
- </div>
546
-
547
- <div class="method-description">
548
- <p>
549
- loadtest
550
- </p>
551
- <p>
552
- True or false: is the call to siege a load test? If it&#8216;s a call to
553
- help or <a href="Siege.html#M000027">version</a> or to display the config
554
- this with return false. It&#8216;s no reason for someone to make this call
555
- through <a href="../../Stella.html">Stella</a> but it&#8216;s here for
556
- goodness sake.
557
- </p>
558
- <p><a class="source-toggle" href="#"
559
- onclick="toggleCode('M000028-source');return false;">[Source]</a></p>
560
- <div class="method-source-code" id="M000028-source">
561
- <pre>
562
- <span class="ruby-comment cmt"># File lib/stella/adapter/siege.rb, line 65</span>
563
- 65: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">loadtest?</span>
564
- 66: <span class="ruby-operator">!</span><span class="ruby-ivar">@arguments</span>.<span class="ruby-identifier">empty?</span> <span class="ruby-comment cmt"># The argument is a URI</span>
565
- 67: <span class="ruby-keyword kw">end</span>
566
- </pre>
567
- </div>
568
- </div>
569
- </div>
570
-
571
- <div id="method-M000047" class="method-detail">
572
- <a name="M000047"></a>
573
-
574
- <div class="method-heading">
575
- <a href="#M000047" class="method-signature">
576
- <span class="method-name">log_file</span><span class="method-args">()</span>
577
- </a>
578
- </div>
579
-
580
- <div class="method-description">
581
- <p><a class="source-toggle" href="#"
582
- onclick="toggleCode('M000047-source');return false;">[Source]</a></p>
583
- <div class="method-source-code" id="M000047-source">
584
- <pre>
585
- <span class="ruby-comment cmt"># File lib/stella/adapter/siege.rb, line 255</span>
586
- 255: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">log_file</span>
587
- 256: <span class="ruby-constant">File</span>.<span class="ruby-identifier">join</span>(<span class="ruby-ivar">@working_directory</span>, <span class="ruby-value str">&quot;siege.log&quot;</span>)
588
- 257: <span class="ruby-keyword kw">end</span>
589
- </pre>
590
- </div>
591
- </div>
592
- </div>
593
-
594
- <div id="method-M000033" class="method-detail">
595
- <a name="M000033"></a>
596
-
597
- <div class="method-heading">
598
- <a href="#M000033" class="method-signature">
599
- <span class="method-name">process_options</span><span class="method-args">(arguments)</span>
600
- </a>
601
- </div>
602
-
603
- <div class="method-description">
604
- <p><a class="source-toggle" href="#"
605
- onclick="toggleCode('M000033-source');return false;">[Source]</a></p>
606
- <div class="method-source-code" id="M000033-source">
607
- <pre>
608
- <span class="ruby-comment cmt"># File lib/stella/adapter/siege.rb, line 118</span>
609
- 118: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">process_options</span>(<span class="ruby-identifier">arguments</span>)
610
- 119: <span class="ruby-identifier">options</span> = <span class="ruby-constant">OpenStruct</span>.<span class="ruby-identifier">new</span>
611
- 120: <span class="ruby-identifier">opts</span> = <span class="ruby-constant">OptionParser</span>.<span class="ruby-identifier">new</span>
612
- 121: <span class="ruby-identifier">opts</span>.<span class="ruby-identifier">on</span>(<span class="ruby-value str">'-V'</span>, <span class="ruby-value str">'--version'</span>) <span class="ruby-keyword kw">do</span> <span class="ruby-operator">|</span><span class="ruby-identifier">v</span><span class="ruby-operator">|</span> <span class="ruby-identifier">options</span>.<span class="ruby-identifier">version</span> = <span class="ruby-identifier">v</span> <span class="ruby-keyword kw">end</span>
613
- 122: <span class="ruby-identifier">opts</span>.<span class="ruby-identifier">on</span>(<span class="ruby-value str">'-h'</span>, <span class="ruby-value str">'--help'</span>) <span class="ruby-keyword kw">do</span> <span class="ruby-operator">|</span><span class="ruby-identifier">v</span><span class="ruby-operator">|</span> <span class="ruby-identifier">options</span>.<span class="ruby-identifier">help</span> = <span class="ruby-identifier">v</span> <span class="ruby-keyword kw">end</span>
614
- 123: <span class="ruby-identifier">opts</span>.<span class="ruby-identifier">on</span>(<span class="ruby-value str">'-C'</span>, <span class="ruby-value str">'--config'</span>) <span class="ruby-keyword kw">do</span> <span class="ruby-operator">|</span><span class="ruby-identifier">v</span><span class="ruby-operator">|</span> <span class="ruby-identifier">options</span>.<span class="ruby-identifier">config</span> = <span class="ruby-identifier">v</span> <span class="ruby-keyword kw">end</span>
615
- 124: <span class="ruby-identifier">opts</span>.<span class="ruby-identifier">on</span>(<span class="ruby-value str">'-v'</span>, <span class="ruby-value str">'--verbose'</span>) <span class="ruby-keyword kw">do</span> <span class="ruby-operator">|</span><span class="ruby-identifier">v</span><span class="ruby-operator">|</span> <span class="ruby-identifier">options</span>.<span class="ruby-identifier">verbose</span> = <span class="ruby-identifier">v</span> <span class="ruby-keyword kw">end</span>
616
- 125: <span class="ruby-identifier">opts</span>.<span class="ruby-identifier">on</span>(<span class="ruby-value str">'-g'</span>, <span class="ruby-value str">'--get'</span>) <span class="ruby-keyword kw">do</span> <span class="ruby-operator">|</span><span class="ruby-identifier">v</span><span class="ruby-operator">|</span> <span class="ruby-identifier">options</span>.<span class="ruby-identifier">get</span> = <span class="ruby-identifier">v</span> <span class="ruby-keyword kw">end</span>
617
- 126: <span class="ruby-identifier">opts</span>.<span class="ruby-identifier">on</span>(<span class="ruby-value str">'-l'</span>, <span class="ruby-value str">'--log'</span>) <span class="ruby-keyword kw">do</span> <span class="ruby-operator">|</span><span class="ruby-identifier">v</span><span class="ruby-operator">|</span> <span class="ruby-identifier">options</span>.<span class="ruby-identifier">log</span> = <span class="ruby-identifier">v</span> <span class="ruby-keyword kw">end</span>
618
- 127: <span class="ruby-identifier">opts</span>.<span class="ruby-identifier">on</span>(<span class="ruby-value str">'-m S'</span>, <span class="ruby-value str">'--mark=S'</span>, <span class="ruby-constant">String</span>) <span class="ruby-keyword kw">do</span> <span class="ruby-operator">|</span><span class="ruby-identifier">v</span><span class="ruby-operator">|</span> <span class="ruby-identifier">options</span>.<span class="ruby-identifier">mark</span> = <span class="ruby-identifier">v</span> <span class="ruby-keyword kw">end</span>
619
- 128: <span class="ruby-identifier">opts</span>.<span class="ruby-identifier">on</span>(<span class="ruby-value str">'-d N'</span>, <span class="ruby-value str">'--delay=N'</span>, <span class="ruby-constant">Float</span>) <span class="ruby-keyword kw">do</span> <span class="ruby-operator">|</span><span class="ruby-identifier">v</span><span class="ruby-operator">|</span> <span class="ruby-identifier">options</span>.<span class="ruby-identifier">delay</span> = <span class="ruby-identifier">v</span> <span class="ruby-keyword kw">end</span>
620
- 129: <span class="ruby-identifier">opts</span>.<span class="ruby-identifier">on</span>(<span class="ruby-value str">'-H S'</span>, <span class="ruby-value str">'--header=S'</span>, <span class="ruby-constant">String</span>) <span class="ruby-keyword kw">do</span> <span class="ruby-operator">|</span><span class="ruby-identifier">v</span><span class="ruby-operator">|</span> <span class="ruby-identifier">options</span>.<span class="ruby-identifier">header</span> <span class="ruby-operator">||=</span> []; <span class="ruby-identifier">options</span>.<span class="ruby-identifier">header</span> <span class="ruby-operator">&lt;&lt;</span> <span class="ruby-identifier">v</span> <span class="ruby-keyword kw">end</span>
621
- 130:
622
- 131: <span class="ruby-identifier">opts</span>.<span class="ruby-identifier">on</span>(<span class="ruby-value str">'-r N'</span>, <span class="ruby-value str">'--reps=N'</span>, <span class="ruby-constant">Integer</span>) <span class="ruby-keyword kw">do</span> <span class="ruby-operator">|</span><span class="ruby-identifier">v</span><span class="ruby-operator">|</span> <span class="ruby-identifier">options</span>.<span class="ruby-identifier">reps</span> = <span class="ruby-identifier">v</span>.<span class="ruby-identifier">to_i</span> <span class="ruby-keyword kw">end</span>
623
- 132: <span class="ruby-identifier">opts</span>.<span class="ruby-identifier">on</span>(<span class="ruby-value str">'-c N'</span>, <span class="ruby-value str">'--concurrent=N'</span>, <span class="ruby-constant">Integer</span>) <span class="ruby-keyword kw">do</span> <span class="ruby-operator">|</span><span class="ruby-identifier">v</span><span class="ruby-operator">|</span> <span class="ruby-identifier">options</span>.<span class="ruby-identifier">concurrent</span> = <span class="ruby-identifier">v</span>.<span class="ruby-identifier">to_i</span> <span class="ruby-keyword kw">end</span>
624
- 133: <span class="ruby-identifier">opts</span>.<span class="ruby-identifier">on</span>(<span class="ruby-value str">'-R S'</span>, <span class="ruby-value str">'--rc=S'</span>, <span class="ruby-constant">String</span>) <span class="ruby-keyword kw">do</span> <span class="ruby-operator">|</span><span class="ruby-identifier">v</span><span class="ruby-operator">|</span> <span class="ruby-identifier">options</span>.<span class="ruby-identifier">rc</span> = <span class="ruby-identifier">v</span> <span class="ruby-keyword kw">end</span>
625
- 134: <span class="ruby-identifier">opts</span>.<span class="ruby-identifier">on</span>(<span class="ruby-value str">'-f S'</span>, <span class="ruby-value str">'--file=S'</span>, <span class="ruby-constant">String</span>) <span class="ruby-keyword kw">do</span> <span class="ruby-operator">|</span><span class="ruby-identifier">v</span><span class="ruby-operator">|</span> <span class="ruby-identifier">options</span>.<span class="ruby-identifier">file</span> = <span class="ruby-identifier">v</span> <span class="ruby-keyword kw">end</span>
626
- 135: <span class="ruby-identifier">opts</span>.<span class="ruby-identifier">on</span>(<span class="ruby-value str">'-t S'</span>, <span class="ruby-value str">'--time=S'</span>, <span class="ruby-constant">String</span>) <span class="ruby-keyword kw">do</span> <span class="ruby-operator">|</span><span class="ruby-identifier">v</span><span class="ruby-operator">|</span> <span class="ruby-identifier">options</span>.<span class="ruby-identifier">time</span> = <span class="ruby-identifier">v</span> <span class="ruby-keyword kw">end</span>
627
- 136: <span class="ruby-identifier">opts</span>.<span class="ruby-identifier">on</span>(<span class="ruby-value str">'-b'</span>, <span class="ruby-value str">'--benchmark'</span>) <span class="ruby-keyword kw">do</span> <span class="ruby-operator">|</span><span class="ruby-identifier">v</span><span class="ruby-operator">|</span> <span class="ruby-identifier">options</span>.<span class="ruby-identifier">benchmark</span> = <span class="ruby-keyword kw">true</span>; <span class="ruby-keyword kw">end</span>
628
- 137: <span class="ruby-identifier">opts</span>.<span class="ruby-identifier">on</span>(<span class="ruby-value str">'-i'</span>, <span class="ruby-value str">'--internet'</span>) <span class="ruby-keyword kw">do</span> <span class="ruby-operator">|</span><span class="ruby-identifier">v</span><span class="ruby-operator">|</span> <span class="ruby-identifier">options</span>.<span class="ruby-identifier">internet</span> = <span class="ruby-keyword kw">true</span>; <span class="ruby-keyword kw">end</span>
629
- 138: <span class="ruby-identifier">opts</span>.<span class="ruby-identifier">on</span>(<span class="ruby-value str">'-A S'</span>, <span class="ruby-value str">'--user-agent=S'</span>, <span class="ruby-constant">String</span>) <span class="ruby-keyword kw">do</span> <span class="ruby-operator">|</span><span class="ruby-identifier">v</span><span class="ruby-operator">|</span> <span class="ruby-identifier">options</span>.<span class="ruby-identifier">user_agent</span> = <span class="ruby-identifier">v</span> <span class="ruby-keyword kw">end</span>
630
- 139:
631
- 140: <span class="ruby-identifier">raise</span> <span class="ruby-value str">&quot;You cannot select both --internet and --benchmark&quot;</span> <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">options</span>.<span class="ruby-identifier">internet</span> <span class="ruby-operator">&amp;&amp;</span> <span class="ruby-identifier">options</span>.<span class="ruby-identifier">benchmark</span>
632
- 141:
633
- 142: <span class="ruby-comment cmt"># parse! removes the options it finds.</span>
634
- 143: <span class="ruby-comment cmt"># It also fails when it finds unknown switches (i.e. -X)</span>
635
- 144: <span class="ruby-comment cmt"># Which should leave only the remaining arguments (URIs in this case)</span>
636
- 145: <span class="ruby-identifier">opts</span>.<span class="ruby-identifier">parse!</span>(<span class="ruby-identifier">arguments</span>)
637
- 146: <span class="ruby-identifier">options</span>
638
- 147: <span class="ruby-keyword kw">rescue</span> <span class="ruby-constant">OptionParser</span><span class="ruby-operator">::</span><span class="ruby-constant">InvalidOption</span> =<span class="ruby-operator">&gt;</span> <span class="ruby-identifier">ex</span>
639
- 148: <span class="ruby-comment cmt"># We want to replace this text so we grab just the name of the argument</span>
640
- 149: <span class="ruby-identifier">badarg</span> = <span class="ruby-identifier">ex</span>.<span class="ruby-identifier">message</span>.<span class="ruby-identifier">gsub</span>(<span class="ruby-value str">'invalid option: '</span>, <span class="ruby-value str">''</span>)
641
- 150: <span class="ruby-identifier">raise</span> <span class="ruby-constant">InvalidArgument</span>.<span class="ruby-identifier">new</span>(<span class="ruby-identifier">badarg</span>)
642
- 151: <span class="ruby-keyword kw">end</span>
643
- </pre>
644
- </div>
645
- </div>
646
- </div>
647
-
648
- <div id="method-M000046" class="method-detail">
649
- <a name="M000046"></a>
650
-
651
- <div class="method-heading">
652
- <a href="#M000046" class="method-signature">
653
- <span class="method-name">rc_file</span><span class="method-args">()</span>
654
- </a>
655
- </div>
656
-
657
- <div class="method-description">
658
- <p><a class="source-toggle" href="#"
659
- onclick="toggleCode('M000046-source');return false;">[Source]</a></p>
660
- <div class="method-source-code" id="M000046-source">
661
- <pre>
662
- <span class="ruby-comment cmt"># File lib/stella/adapter/siege.rb, line 251</span>
663
- 251: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">rc_file</span>
664
- 252: <span class="ruby-constant">File</span>.<span class="ruby-identifier">join</span>(<span class="ruby-ivar">@working_directory</span>, <span class="ruby-value str">&quot;siegerc&quot;</span>)
665
- 253: <span class="ruby-keyword kw">end</span>
666
- </pre>
667
- </div>
668
- </div>
669
- </div>
670
-
671
- <div id="method-M000029" class="method-detail">
672
- <a name="M000029"></a>
673
-
674
- <div class="method-heading">
675
- <a href="#M000029" class="method-signature">
676
- <span class="method-name">ready?</span><span class="method-args">()</span>
677
- </a>
678
- </div>
679
-
680
- <div class="method-description">
681
- <p><a class="source-toggle" href="#"
682
- onclick="toggleCode('M000029-source');return false;">[Source]</a></p>
683
- <div class="method-source-code" id="M000029-source">
684
- <pre>
685
- <span class="ruby-comment cmt"># File lib/stella/adapter/siege.rb, line 69</span>
686
- 69: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">ready?</span>
687
- 70: <span class="ruby-ivar">@name</span> <span class="ruby-operator">&amp;&amp;</span> <span class="ruby-operator">!</span><span class="ruby-identifier">instance_variables</span>.<span class="ruby-identifier">empty?</span>
688
- 71: <span class="ruby-keyword kw">end</span>
689
- </pre>
690
- </div>
691
- </div>
692
- </div>
693
-
694
- <div id="method-M000041" class="method-detail">
695
- <a name="M000041"></a>
696
-
697
- <div class="method-heading">
698
- <a href="#M000041" class="method-signature">
699
- <span class="method-name">reps</span><span class="method-args">()</span>
700
- </a>
701
- </div>
702
-
703
- <div class="method-description">
704
- <p><a class="source-toggle" href="#"
705
- onclick="toggleCode('M000041-source');return false;">[Source]</a></p>
706
- <div class="method-source-code" id="M000041-source">
707
- <pre>
708
- <span class="ruby-comment cmt"># File lib/stella/adapter/siege.rb, line 176</span>
709
- 176: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">reps</span>
710
- 177: <span class="ruby-ivar">@reps</span>
711
- 178: <span class="ruby-keyword kw">end</span>
712
- </pre>
713
- </div>
714
- </div>
715
- </div>
716
-
717
- <div id="method-M000036" class="method-detail">
718
- <a name="M000036"></a>
719
-
720
- <div class="method-heading">
721
- <a href="#M000036" class="method-signature">
722
- <span class="method-name">requests</span><span class="method-args">()</span>
723
- </a>
724
- </div>
725
-
726
- <div class="method-description">
727
- <p><a class="source-toggle" href="#"
728
- onclick="toggleCode('M000036-source');return false;">[Source]</a></p>
729
- <div class="method-source-code" id="M000036-source">
730
- <pre>
731
- <span class="ruby-comment cmt"># File lib/stella/adapter/siege.rb, line 160</span>
732
- 160: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">requests</span>
733
- 161: (<span class="ruby-ivar">@reps</span> <span class="ruby-operator">*</span> <span class="ruby-identifier">concurrent_f</span>).<span class="ruby-identifier">to_i</span>
734
- 162: <span class="ruby-keyword kw">end</span>
735
- </pre>
736
- </div>
737
- </div>
738
- </div>
739
-
740
- <div id="method-M000037" class="method-detail">
741
- <a name="M000037"></a>
742
-
743
- <div class="method-heading">
744
- <a href="#M000037" class="method-signature">
745
- <span class="method-name">requests=</span><span class="method-args">(v)</span>
746
- </a>
747
- </div>
748
-
749
- <div class="method-description">
750
- <p><a class="source-toggle" href="#"
751
- onclick="toggleCode('M000037-source');return false;">[Source]</a></p>
752
- <div class="method-source-code" id="M000037-source">
753
- <pre>
754
- <span class="ruby-comment cmt"># File lib/stella/adapter/siege.rb, line 163</span>
755
- 163: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">requests=</span>(<span class="ruby-identifier">v</span>)
756
- 164: <span class="ruby-ivar">@reps</span> = (<span class="ruby-identifier">v</span> <span class="ruby-operator">/</span> <span class="ruby-identifier">concurrent_f</span>).<span class="ruby-identifier">to_i</span>
757
- 165: <span class="ruby-keyword kw">end</span>
758
- </pre>
759
- </div>
760
- </div>
761
- </div>
762
-
763
- <div id="method-M000049" class="method-detail">
764
- <a name="M000049"></a>
765
-
766
- <div class="method-heading">
767
- <a href="#M000049" class="method-signature">
768
- <span class="method-name">stats</span><span class="method-args">()</span>
769
- </a>
770
- </div>
771
-
772
- <div class="method-description">
773
- <p><a class="source-toggle" href="#"
774
- onclick="toggleCode('M000049-source');return false;">[Source]</a></p>
775
- <div class="method-source-code" id="M000049-source">
776
- <pre>
777
- <span class="ruby-comment cmt"># File lib/stella/adapter/siege.rb, line 263</span>
778
- 263: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">stats</span>
779
- 264: <span class="ruby-keyword kw">return</span> <span class="ruby-keyword kw">unless</span> <span class="ruby-identifier">stats_file</span>
780
- 265: <span class="ruby-identifier">raw</span> = {}
781
- 266: <span class="ruby-identifier">stats_file</span>.<span class="ruby-identifier">each_line</span> { <span class="ruby-operator">|</span><span class="ruby-identifier">l</span><span class="ruby-operator">|</span>
782
- 267: <span class="ruby-identifier">l</span>.<span class="ruby-identifier">chomp!</span>
783
- 268: <span class="ruby-identifier">nvpair</span> = <span class="ruby-identifier">l</span>.<span class="ruby-identifier">split</span>(<span class="ruby-value str">':'</span>)
784
- 269: <span class="ruby-keyword kw">next</span> <span class="ruby-keyword kw">unless</span> <span class="ruby-identifier">nvpair</span> <span class="ruby-operator">&amp;&amp;</span> <span class="ruby-identifier">nvpair</span>.<span class="ruby-identifier">size</span> <span class="ruby-operator">==</span> <span class="ruby-value">2</span>
785
- 270: <span class="ruby-identifier">n</span> = <span class="ruby-identifier">nvpair</span>[<span class="ruby-value">0</span>].<span class="ruby-identifier">strip</span>.<span class="ruby-identifier">tr</span>(<span class="ruby-value str">' '</span>, <span class="ruby-value str">'_'</span>).<span class="ruby-identifier">downcase</span>[<span class="ruby-regexp re">/\w+/</span>]
786
- 271: <span class="ruby-identifier">v</span> = <span class="ruby-identifier">nvpair</span>[<span class="ruby-value">1</span>].<span class="ruby-identifier">strip</span>[<span class="ruby-regexp re">/[\.\d]+/</span>]
787
- 272: <span class="ruby-identifier">raw</span>[<span class="ruby-identifier">n</span>.<span class="ruby-identifier">to_sym</span>] = <span class="ruby-identifier">v</span>.<span class="ruby-identifier">to_f</span>
788
- 273: }
789
- 274:
790
- 275: <span class="ruby-identifier">stats</span> = <span class="ruby-constant">Stella</span><span class="ruby-operator">::</span><span class="ruby-constant">Test</span><span class="ruby-operator">::</span><span class="ruby-constant">RunSummary</span>.<span class="ruby-identifier">new</span>
791
- 276:
792
- 277: <span class="ruby-identifier">stats</span>.<span class="ruby-identifier">vusers</span> = <span class="ruby-identifier">raw</span>[<span class="ruby-identifier">:concurrency</span>]
793
- 278: <span class="ruby-identifier">stats</span>.<span class="ruby-identifier">data_transferred</span> = <span class="ruby-identifier">raw</span>[<span class="ruby-identifier">:data_transferred</span>]
794
- 279:
795
- 280:
796
- 281: <span class="ruby-identifier">stats</span>.<span class="ruby-identifier">elapsed_time</span> = <span class="ruby-identifier">raw</span>[<span class="ruby-identifier">:elapsed_time</span>]
797
- 282: <span class="ruby-identifier">stats</span>.<span class="ruby-identifier">response_time</span> = <span class="ruby-identifier">raw</span>[<span class="ruby-identifier">:response_time</span>]
798
- 283:
799
- 284: <span class="ruby-comment cmt">#stats.shortest_transaction = raw[:shortest_transaction]</span>
800
- 285: <span class="ruby-comment cmt">#stats.longest_transaction = raw[:longest_transaction]</span>
801
- 286:
802
- 287: <span class="ruby-identifier">stats</span>.<span class="ruby-identifier">transactions</span> = <span class="ruby-identifier">raw</span>[<span class="ruby-identifier">:transactions</span>].<span class="ruby-identifier">to_i</span>
803
- 288: <span class="ruby-identifier">stats</span>.<span class="ruby-identifier">transaction_rate</span> = <span class="ruby-identifier">raw</span>[<span class="ruby-identifier">:transaction_rate</span>]
804
- 289: <span class="ruby-identifier">stats</span>.<span class="ruby-identifier">failed</span> = <span class="ruby-identifier">raw</span>[<span class="ruby-identifier">:failed_transactions</span>].<span class="ruby-identifier">to_i</span>
805
- 290: <span class="ruby-identifier">stats</span>.<span class="ruby-identifier">successful</span> = <span class="ruby-identifier">raw</span>[<span class="ruby-identifier">:successful_transactions</span>].<span class="ruby-identifier">to_i</span>
806
- 291: <span class="ruby-comment cmt">#stats.raw = raw if @global_options.debug</span>
807
- 292: <span class="ruby-identifier">stats</span>
808
- 293: <span class="ruby-keyword kw">end</span>
809
- </pre>
810
- </div>
811
- </div>
812
- </div>
813
-
814
- <div id="method-M000045" class="method-detail">
815
- <a name="M000045"></a>
816
-
817
- <div class="method-heading">
818
- <a href="#M000045" class="method-signature">
819
- <span class="method-name">stats_file</span><span class="method-args">()</span>
820
- </a>
821
- </div>
822
-
823
- <div class="method-description">
824
- <p>
825
- <a href="Siege.html">Siege</a> writes the summary to STDERR
826
- </p>
827
- <p><a class="source-toggle" href="#"
828
- onclick="toggleCode('M000045-source');return false;">[Source]</a></p>
829
- <div class="method-source-code" id="M000045-source">
830
- <pre>
831
- <span class="ruby-comment cmt"># File lib/stella/adapter/siege.rb, line 247</span>
832
- 247: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">stats_file</span>
833
- 248: <span class="ruby-constant">File</span>.<span class="ruby-identifier">new</span>(<span class="ruby-identifier">stderr_path</span>)
834
- 249: <span class="ruby-keyword kw">end</span>
835
- </pre>
836
- </div>
837
- </div>
838
- </div>
839
-
840
- <div id="method-M000042" class="method-detail">
841
- <a name="M000042"></a>
842
-
843
- <div class="method-heading">
844
- <a href="#M000042" class="method-signature">
845
- <span class="method-name">update_orig_logfile</span><span class="method-args">()</span>
846
- </a>
847
- </div>
848
-
849
- <div class="method-description">
850
- <p>
851
- Take the last line of the siege.log file and write it to the log file
852
- specified by the user. We don&#8216;t this so running with <a
853
- href="../../Stella.html">Stella</a> is identical to running it standalone
854
- </p>
855
- <p><a class="source-toggle" href="#"
856
- onclick="toggleCode('M000042-source');return false;">[Source]</a></p>
857
- <div class="method-source-code" id="M000042-source">
858
- <pre>
859
- <span class="ruby-comment cmt"># File lib/stella/adapter/siege.rb, line 184</span>
860
- 184: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">update_orig_logfile</span>
861
- 185:
862
- 186: <span class="ruby-keyword kw">return</span> <span class="ruby-keyword kw">unless</span> (<span class="ruby-ivar">@orig_logfile</span>)
863
- 187: <span class="ruby-identifier">log_str</span> = <span class="ruby-constant">FileUtil</span>.<span class="ruby-identifier">read_file_to_array</span>(<span class="ruby-identifier">log_file</span>) <span class="ruby-operator">||</span> <span class="ruby-value str">''</span>
864
- 188: <span class="ruby-keyword kw">return</span> <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">log_str</span>.<span class="ruby-identifier">empty?</span>
865
- 189:
866
- 190: <span class="ruby-keyword kw">if</span> <span class="ruby-constant">File</span>.<span class="ruby-identifier">exists?</span>(<span class="ruby-ivar">@orig_logfile</span>)
867
- 191: <span class="ruby-constant">FileUtil</span>.<span class="ruby-identifier">append_file</span>(<span class="ruby-ivar">@orig_logfile</span>, <span class="ruby-identifier">log_str</span>[<span class="ruby-value">-1</span>], <span class="ruby-keyword kw">true</span>)
868
- 192: <span class="ruby-keyword kw">else</span>
869
- 193: <span class="ruby-constant">FileUtil</span>.<span class="ruby-identifier">write_file</span>(<span class="ruby-ivar">@orig_logfile</span>, <span class="ruby-identifier">log_str</span>.<span class="ruby-identifier">join</span>(<span class="ruby-value str">''</span>), <span class="ruby-keyword kw">true</span>)
870
- 194: <span class="ruby-keyword kw">end</span>
871
- 195:
872
- 196: <span class="ruby-keyword kw">end</span>
873
- </pre>
874
- </div>
875
- </div>
876
- </div>
877
-
878
- <div id="method-M000048" class="method-detail">
879
- <a name="M000048"></a>
880
-
881
- <div class="method-heading">
882
- <a href="#M000048" class="method-signature">
883
- <span class="method-name">uris_file</span><span class="method-args">()</span>
884
- </a>
885
- </div>
886
-
887
- <div class="method-description">
888
- <p><a class="source-toggle" href="#"
889
- onclick="toggleCode('M000048-source');return false;">[Source]</a></p>
890
- <div class="method-source-code" id="M000048-source">
891
- <pre>
892
- <span class="ruby-comment cmt"># File lib/stella/adapter/siege.rb, line 259</span>
893
- 259: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">uris_file</span>
894
- 260: <span class="ruby-constant">File</span>.<span class="ruby-identifier">join</span>(<span class="ruby-ivar">@working_directory</span>, <span class="ruby-constant">File</span>.<span class="ruby-identifier">basename</span>(<span class="ruby-ivar">@file</span>))
895
- 261: <span class="ruby-keyword kw">end</span>
896
- </pre>
897
- </div>
898
- </div>
899
- </div>
900
-
901
- <div id="method-M000027" class="method-detail">
902
- <a name="M000027"></a>
903
-
904
- <div class="method-heading">
905
- <a href="#M000027" class="method-signature">
906
- <span class="method-name">version</span><span class="method-args">()</span>
907
- </a>
908
- </div>
909
-
910
- <div class="method-description">
911
- <p><a class="source-toggle" href="#"
912
- onclick="toggleCode('M000027-source');return false;">[Source]</a></p>
913
- <div class="method-source-code" id="M000027-source">
914
- <pre>
915
- <span class="ruby-comment cmt"># File lib/stella/adapter/siege.rb, line 50</span>
916
- 50: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">version</span>
917
- 51: <span class="ruby-identifier">vsn</span> = <span class="ruby-value">0</span>
918
- 52: <span class="ruby-identifier">text</span> = <span class="ruby-value str">&quot;&quot;</span>
919
- 53: <span class="ruby-constant">Open3</span>.<span class="ruby-identifier">popen3</span>(<span class="ruby-node">&quot;#{@name} --version&quot;</span>) <span class="ruby-keyword kw">do</span> <span class="ruby-operator">|</span><span class="ruby-identifier">stdin</span>, <span class="ruby-identifier">stdout</span>, <span class="ruby-identifier">stderr</span><span class="ruby-operator">|</span>
920
- 54: <span class="ruby-identifier">text</span> = <span class="ruby-identifier">stderr</span>.<span class="ruby-identifier">readlines</span>.<span class="ruby-identifier">join</span>
921
- 55: <span class="ruby-identifier">text</span>.<span class="ruby-identifier">scan</span>(<span class="ruby-regexp re">/SIEGE (\d+?\.\d+)/</span>) { <span class="ruby-operator">|</span><span class="ruby-identifier">v</span><span class="ruby-operator">|</span> <span class="ruby-identifier">vsn</span> = <span class="ruby-identifier">v</span>[<span class="ruby-value">0</span>] }
922
- 56: <span class="ruby-keyword kw">end</span>
923
- 57: <span class="ruby-identifier">vsn</span>
924
- 58: <span class="ruby-keyword kw">end</span>
925
- </pre>
926
- </div>
927
- </div>
928
- </div>
929
-
930
- <div id="method-M000038" class="method-detail">
931
- <a name="M000038"></a>
932
-
933
- <div class="method-heading">
934
- <a href="#M000038" class="method-signature">
935
- <span class="method-name">vuser_requests</span><span class="method-args">()</span>
936
- </a>
937
- </div>
938
-
939
- <div class="method-description">
940
- <p><a class="source-toggle" href="#"
941
- onclick="toggleCode('M000038-source');return false;">[Source]</a></p>
942
- <div class="method-source-code" id="M000038-source">
943
- <pre>
944
- <span class="ruby-comment cmt"># File lib/stella/adapter/siege.rb, line 166</span>
945
- 166: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">vuser_requests</span>
946
- 167: <span class="ruby-ivar">@reps</span>
947
- 168: <span class="ruby-keyword kw">end</span>
948
- </pre>
949
- </div>
950
- </div>
951
- </div>
952
-
953
- <div id="method-M000034" class="method-detail">
954
- <a name="M000034"></a>
955
-
956
- <div class="method-heading">
957
- <a href="#M000034" class="method-signature">
958
- <span class="method-name">vusers</span><span class="method-args">()</span>
959
- </a>
960
- </div>
961
-
962
- <div class="method-description">
963
- <p><a class="source-toggle" href="#"
964
- onclick="toggleCode('M000034-source');return false;">[Source]</a></p>
965
- <div class="method-source-code" id="M000034-source">
966
- <pre>
967
- <span class="ruby-comment cmt"># File lib/stella/adapter/siege.rb, line 154</span>
968
- 154: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">vusers</span>
969
- 155: <span class="ruby-identifier">concurrent</span> <span class="ruby-operator">||</span> <span class="ruby-value">0</span>
970
- 156: <span class="ruby-keyword kw">end</span>
971
- </pre>
972
- </div>
973
- </div>
974
- </div>
975
-
976
- <div id="method-M000035" class="method-detail">
977
- <a name="M000035"></a>
978
-
979
- <div class="method-heading">
980
- <a href="#M000035" class="method-signature">
981
- <span class="method-name">vusers=</span><span class="method-args">(v)</span>
982
- </a>
983
- </div>
984
-
985
- <div class="method-description">
986
- <p><a class="source-toggle" href="#"
987
- onclick="toggleCode('M000035-source');return false;">[Source]</a></p>
988
- <div class="method-source-code" id="M000035-source">
989
- <pre>
990
- <span class="ruby-comment cmt"># File lib/stella/adapter/siege.rb, line 157</span>
991
- 157: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">vusers=</span>(<span class="ruby-identifier">v</span>)
992
- 158: <span class="ruby-ivar">@concurrent</span> = <span class="ruby-identifier">v</span>
993
- 159: <span class="ruby-keyword kw">end</span>
994
- </pre>
995
- </div>
996
- </div>
997
- </div>
998
-
999
-
1000
- </div>
1001
-
1002
-
1003
- </div>
1004
-
1005
-
1006
- <div id="validator-badges">
1007
- <p><small><a href="http://validator.w3.org/check/referer">[Validate]</a></small></p>
1008
- </div>
1009
-
1010
- </body>
1011
- </html>