Skip to content

Commit 16edf09

Browse files
author
Israel Fruchter (ifruchte)
committed
pass the [global] parameters into the Transaction
1 parent 84ef580 commit 16edf09

File tree

2 files changed

+13
-8
lines changed

2 files changed

+13
-8
lines changed

multimechanize/core.py

+8-4
Original file line numberDiff line numberDiff line change
@@ -44,7 +44,7 @@ def load_script(script_file):
4444

4545
class UserGroup(multiprocessing.Process):
4646
def __init__(self, queue, process_num, user_group_name, num_threads,
47-
script_file, run_time, rampup, user_group_config):
47+
script_file, run_time, rampup, user_group_config, global_config):
4848
multiprocessing.Process.__init__(self)
4949
self.queue = queue
5050
self.process_num = process_num
@@ -55,6 +55,7 @@ def __init__(self, queue, process_num, user_group_name, num_threads,
5555
self.rampup = rampup
5656
self.start_time = time.time()
5757
self.user_group_config = user_group_config
58+
self.global_config = global_config
5859

5960
def run(self):
6061
# -- ENSURE: (Re-)Import script_module in forked Process
@@ -71,7 +72,7 @@ def run(self):
7172
self.start_time, self.run_time,
7273
self.user_group_name,
7374
script_module, self.script_file,
74-
self.user_group_config)
75+
self.user_group_config, self.global_config)
7576
agent_thread.daemon = True
7677
threads.append(agent_thread)
7778
agent_thread.start()
@@ -82,7 +83,7 @@ def run(self):
8283

8384
class Agent(threading.Thread):
8485
def __init__(self, queue, process_num, thread_num, start_time, run_time,
85-
user_group_name, script_module, script_file, user_group_config):
86+
user_group_name, script_module, script_file, user_group_config, global_config):
8687
threading.Thread.__init__(self)
8788
self.queue = queue
8889
self.process_num = process_num
@@ -93,6 +94,7 @@ def __init__(self, queue, process_num, thread_num, start_time, run_time,
9394
self.script_module = script_module
9495
self.script_file = script_file
9596
self.user_group_config = user_group_config
97+
self.global_config = global_config
9698

9799
# choose most accurate timer to use (time.clock has finer granularity
98100
# than time.time on windows, but shouldn't be used on other systems).
@@ -107,8 +109,10 @@ def run(self):
107109
spec = inspect.getargspec(self.script_module.Transaction.__init__)
108110
if len(spec.args) == 1 and spec.varargs is None and spec.keywords is None:
109111
trans = self.script_module.Transaction()
110-
else:
112+
elif len(spec.args) == 2:
111113
trans = self.script_module.Transaction(self.user_group_config)
114+
else:
115+
trans = self.script_module.Transaction(self.user_group_config, self.global_config)
112116
trans.custom_timers = {}
113117

114118
# scripts have access to these vars, which can be useful for loading unique data

multimechanize/utilities/run.py

+5-4
Original file line numberDiff line numberDiff line change
@@ -77,7 +77,7 @@ def run_test(project_name, cmd_opts, remote_starter=None):
7777
remote_starter.test_running = True
7878
remote_starter.output_dir = None
7979

80-
run_time, rampup, results_ts_interval, console_logging, progress_bar, results_database, post_run_script, xml_report, user_group_configs = configure(project_name, cmd_opts)
80+
run_time, rampup, results_ts_interval, console_logging, progress_bar, results_database, post_run_script, xml_report, user_group_configs, global_config = configure(project_name, cmd_opts)
8181

8282
run_localtime = time.localtime()
8383
if cmd_opts.output_dir:
@@ -100,7 +100,7 @@ def run_test(project_name, cmd_opts, remote_starter=None):
100100
for _ in range(ug_config.num_processes):
101101
cur_rampup = rampup + ug_config.rampup
102102
ug = core.UserGroup(queue, process_num, ug_config.name, ug_config.num_threads,
103-
script_file, run_time, cur_rampup, ug_config)
103+
script_file, run_time, cur_rampup, ug_config, global_config)
104104
user_groups.append(ug)
105105
process_num += 1
106106
for user_group in user_groups:
@@ -183,7 +183,7 @@ def run_test(project_name, cmd_opts, remote_starter=None):
183183
def rerun_results(project_name, cmd_opts, results_dir):
184184
output_dir = '%s/%s/results/%s/' % (cmd_opts.projects_dir, project_name, results_dir)
185185
saved_config = '%s/config.cfg' % output_dir
186-
run_time, rampup, results_ts_interval, console_logging, progress_bar, results_database, post_run_script, xml_report, user_group_configs = configure(project_name, cmd_opts, config_file=saved_config)
186+
run_time, rampup, results_ts_interval, console_logging, progress_bar, results_database, post_run_script, xml_report, user_group_configs, global_config = configure(project_name, cmd_opts, config_file=saved_config)
187187
print '\n\nanalyzing results...\n'
188188
results.output_results(output_dir, 'results.csv', run_time, rampup, results_ts_interval, user_group_configs, xml_report)
189189
print 'created: %sresults.html\n' % output_dir
@@ -202,6 +202,7 @@ def configure(project_name, cmd_opts, config_file=None):
202202
config_file = '%s/%s/%s' % (cmd_opts.projects_dir, project_name, cmd_opts.config_file)
203203
config.read(config_file)
204204
print config_file
205+
global_config = dict(config.items('global'))
205206
for section in config.sections():
206207
if section == 'global':
207208
run_time = config.getint(section, 'run_time')
@@ -253,7 +254,7 @@ def configure(project_name, cmd_opts, config_file=None):
253254
user_group_configs.append(ug_config)
254255

255256
return (run_time, rampup, results_ts_interval, console_logging, progress_bar, results_database,
256-
post_run_script, xml_report, user_group_configs)
257+
post_run_script, xml_report, user_group_configs, global_config)
257258

258259

259260
class UserGroupConfig(object):

0 commit comments

Comments
 (0)