stella 0.5.1 → 0.5.3

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
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>