Description:
added first page load test on localhost
Commit status:
[Not Reviewed]
References:
Comments:
0 Commit comments 0 Inline Comments
Unresolved TODOs:
There are no unresolved TODOs
Add another comment

r314:933be61bc431 - - 4 files changed: 28 inserted, 4 deleted

@@ -0,0 +1,7
1 + How to call
2 + ===========
3 +
4 + Load test for front page:
5 +
6 + ruby runner.rb common_visitors.rb FirstPageViewer 10 -t 10
7 +
@@ -0,0 +1,7
1 + visitor "FirstPageViewer" do
2 + stores_cookies
3 +
4 + site_url "http://localhost:3000"
5 +
6 + get "/"
7 + end
@@ -11,45 +11,53
11 11 # WITHOUT ANY WARRANTY; without even the implied warranty of
12 12 # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
13 13 # General Public License for more details.
14 14 #
15 15 # You should have received a copy of the GNU General Public License
16 16 # along with this program; if not, write to the Free Software
17 17 # Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA
18 18 # 02110-1301, USA.
19 19 #
20 20
21 21 require 'visitor_curl_cli'
22 22
23 + TEMP_DIR = './tmp'
24 +
23 25 def show_usage
24 26 puts <<USAGE
25 27 using: ruby runner.rb <visitor_file> [<type> <number>] [<type> <number>] ... [options]
26 28 * visitor_file : your visitor definition file, (with or without .rb)
27 29 * type, number : the type and the number of visitors of that type
28 30 * options : any of the following
29 31 -t <sec> specify how long (in seconds)
30 32 -d dry-run: run, but make no real http requests
31 33 USAGE
32 34 end
33 35
36 + def initialize_temp_dir
37 + if !FileTest.exists? TEMP_DIR
38 + Dir.mkdir TEMP_DIR
39 + end
40 + end
41 +
34 42 def runner(visitor_lists, load_time=60, options={})
35 43 visitors = []
36 44 vcount = 0
37 45
38 46 visitor_lists.each do |cname, num|
39 47 begin
40 48 c = Kernel.const_get(cname)
41 49
42 50 num.times do
43 - visitors[vcount] = c.new(vcount+1)
51 + visitors[vcount] = c.new(vcount+1, TEMP_DIR)
44 52 visitors[vcount].talkative = true
45 53 vcount += 1
46 54 end
47 55 rescue NameError
48 56 puts "Can't find class #{cname}"
49 57 show_usage
50 58 exit(0)
51 59 end
52 60 end
53 61
54 62 puts "Having #{vcount} visitors"
55 63
@@ -135,14 +143,15
135 143 case key
136 144 when '-d'
137 145 dry_run = true
138 146 when '-t'
139 147 num = ARGV.shift.to_i
140 148 load_time = num
141 149 else
142 150 num = ARGV.shift.to_i
143 151 visitor_list[key] = num
144 152 end
145 153 end
146 154
155 + initialize_temp_dir
147 156 runner visitor_list, load_time, {:dry_run => dry_run}
148 157
@@ -23,41 +23,42
23 23
24 24 class Visitor
25 25
26 26 attr_accessor :talkative
27 27
28 28 class << self
29 29 attr_accessor :commands
30 30 attr_accessor :base_url
31 31 attr_accessor :cookies_stored
32 32 end
33 33
34 34 def get_cookie_fname
35 - "cookies.#{@id}"
35 + "#{@base_dir}/cookies.#{@id}"
36 36 end
37 37
38 38 def get_output_fname
39 - "output.#{@id}"
39 + "#{@base_dir}/output.#{@id}"
40 40 end
41 41
42 42 def id
43 43 @id
44 44 end
45 45
46 - def initialize(id=0)
46 + def initialize(id=0, base_dir='.')
47 47 # initialize nil class variable
48 48 self.class.base_url = "" if (self.class.base_url) == nil
49 49 self.class.cookies_stored = false if self.class.cookies_stored == nil
50 50
51 51 @id = id
52 + @base_dir = base_dir
52 53 @cookies_fname = get_cookie_fname
53 54 @output_fname = get_output_fname
54 55 @statistics = Array.new
55 56 @talkative = false
56 57
57 58 @stopped = false
58 59 end
59 60
60 61 def cleanup
61 62 trial = 0
62 63 while FileTest.exists?(@cookies_fname)
63 64 File.delete(@cookies_fname)
You need to be logged in to leave comments. Login now