Description:
load test reads site_url from command line
Commit status:
[Not Reviewed]
References:
Comments:
0 Commit comments 0 Inline Comments
Unresolved TODOs:
There are no unresolved TODOs
Add another comment

r315:faf1f66729ca - - 5 files changed: 26 inserted, 180 deleted

@@ -1,7 +1,7
1 How to call
1 How to call
2 ===========
2 ===========
3
3
4 Load test for front page:
4 Load test for front page:
5
5
6 - ruby runner.rb common_visitors.rb FirstPageViewer 10 -t 10
6 + ruby runner.rb common_visitors.rb FirstPageViewer 20 -t 10 --site_url=http://localhost/cafe
7
7
@@ -1,7 +1,8
1 - visitor "FirstPageViewer" do
1 + if !defined? VISITOR_OPTION_LIST
2 - stores_cookies
2 + VISITOR_OPTION_LIST = {}
3 + end
3
4
4 - site_url "http://localhost:3000"
5 + visitor "FirstPageViewer", VISITOR_OPTION_LIST do
5 -
6 + stores_cookies
6 get "/"
7 get "/"
7 end
8 end
@@ -127,31 +127,41
127 if ARGV.length==0
127 if ARGV.length==0
128 show_usage
128 show_usage
129 exit(0)
129 exit(0)
130 end
130 end
131
131
132 visitor_file = ARGV.shift
132 visitor_file = ARGV.shift
133 - require visitor_file
134
133
135 load_time = 60
134 load_time = 60
136 dry_run = false
135 dry_run = false
137
136
138 - #build visitor list
137 + #build visitor/option list
139 visitor_list = {}
138 visitor_list = {}
139 + visitor_option_list = {}
140 while ARGV.length>0
140 while ARGV.length>0
141 key = ARGV.shift
141 key = ARGV.shift
142
142
143 case key
143 case key
144 when '-d'
144 when '-d'
145 dry_run = true
145 dry_run = true
146 when '-t'
146 when '-t'
147 num = ARGV.shift.to_i
147 num = ARGV.shift.to_i
148 load_time = num
148 load_time = num
149 else
149 else
150 + if key =~ /--(\w+)=(.*)/
151 + # options
152 + lm = Regexp.last_match
153 + visitor_option_list[lm[1]] = lm[2]
154 + else
155 + # new visitor
150 num = ARGV.shift.to_i
156 num = ARGV.shift.to_i
151 visitor_list[key] = num
157 visitor_list[key] = num
152 end
158 end
153 end
159 end
160 + end
161 +
162 + VISITOR_OPTION_LIST = visitor_option_list
163 + require visitor_file
154
164
155 initialize_temp_dir
165 initialize_temp_dir
156 runner visitor_list, load_time, {:dry_run => dry_run}
166 runner visitor_list, load_time, {:dry_run => dry_run}
157
167
@@ -117,12 +117,18
117 self.commands << { :command => :post,
117 self.commands << { :command => :post,
118 :url => url,
118 :url => url,
119 :params => Visitor.preprocess_param_hash(params),
119 :params => Visitor.preprocess_param_hash(params),
120 :options => options }
120 :options => options }
121 end
121 end
122
122
123 + def self.process_options(options)
124 + if options.has_key? "site_url"
125 + self.base_url = options["site_url"]
126 + end
127 + end
128 +
123 def substitute_id(st)
129 def substitute_id(st)
124 return st if !(st.is_a? String)
130 return st if !(st.is_a? String)
125 st.gsub(/(()|(\$))\$\{id\}/) do |s|
131 st.gsub(/(()|(\$))\$\{id\}/) do |s|
126 if s=="${id}"
132 if s=="${id}"
127 @id.to_s
133 @id.to_s
128 else
134 else
@@ -267,19 +273,20
267 :avg_request_time => average_request_time,
273 :avg_request_time => average_request_time,
268 :std_dev => sd
274 :std_dev => sd
269 }
275 }
270 end
276 end
271 end
277 end
272
278
273 - def visitor(cname,&blk)
279 + def visitor(cname,options={},&blk)
274 c = Class.new(Visitor)
280 c = Class.new(Visitor)
275 begin
281 begin
276 Object.const_set(cname,c)
282 Object.const_set(cname,c)
277 rescue NameError
283 rescue NameError
278 puts <<ERROR
284 puts <<ERROR
279 Error on type #{cname}.
285 Error on type #{cname}.
280 Type name should be capitalized and follow Ruby constant naming rule.
286 Type name should be capitalized and follow Ruby constant naming rule.
281 ERROR
287 ERROR
282 exit(0)
288 exit(0)
283 end
289 end
290 + c.process_options(options)
284 c.instance_eval(&blk)
291 c.instance_eval(&blk)
285 end
292 end
deleted file
You need to be logged in to leave comments. Login now