def test_default_weight(self): @scenario() async def _default_weight(self): pass self.assertEqual(len(get_scenarios()), 1) self.assertEqual(get_scenarios()[0]['weight'], 1)
def run(args): if not args.quiet: log('**** Molotov v%s. Happy breaking! ****' % __version__, pid=None) if os.path.exists(args.scenario): spec = spec_from_file_location("loadtest", args.scenario) module = module_from_spec(spec) spec.loader.exec_module(module) else: try: import_module(args.scenario) except (ImportError, ValueError): print('Cannot import %r' % args.scenario) sys.exit(1) if len(get_scenarios()) == 0: print('You need at least one scenario. No scenario was found.') print('A scenario with a weight of 0 is ignored') sys.exit(1) if args.verbose and args.quiet: print("You can't use -q and -v at the same time") sys.exit(1) if args.verbose and not args.console: print("You have to be in console mode (-c) to use -v") sys.exit(1) res = runner(args, screen=ui.init_screen) if not args.quiet: log('', pid=False) log('%(OK)d OK, %(FAILED)d Failed' % res, pid=False)
def test_no_scenario(self): @scenario(weight=0) async def _one(self): pass @scenario(weight=0) async def _two(self): pass self.assertEqual(get_scenarios(), [])
def run(args): args.shared_console = SharedConsole(interval=args.console_update) if not args.quiet: args.shared_console.print(HELLO) if os.path.exists(args.scenario): spec = spec_from_file_location("loadtest", args.scenario) module = module_from_spec(spec) spec.loader.exec_module(module) else: try: import_module(args.scenario) except (ImportError, ValueError): print('Cannot import %r' % args.scenario) sys.exit(1) if len(get_scenarios()) == 0: print('You need at least one scenario. No scenario was found.') print('A scenario with a weight of 0 is ignored') sys.exit(1) if args.verbose > 0 and args.quiet: print("You can't use -q and -v at the same time") sys.exit(1) if args.single_mode: if get_scenario(args.single_mode) is None: print("Can't find %r in registered scenarii" % args.single_mode) sys.exit(1) res = runner(args) def _dict(counters): res = {} for k, v in counters.items(): if k == 'RATIO': res[k] = float(v.value) / 100. else: res[k] = v.value return res res = _dict(res) if not args.quiet: if args.sizing: if res['REACHED'] == 1: print(_SIZING % res) else: print('Sizing was not finished. (interrupted)') else: print('SUCCESSES: %(OK)d | FAILURES: %(FAILED)d\r' % res) print('*** Bye ***')
def run(args, stream=None): if stream is None: stream = sys.stdout args.shared_console = SharedConsole(interval=args.console_update, stream=stream) if not args.quiet: direct_print(stream, HELLO) if args.use_extension: for extension in args.use_extension: if not args.quiet: direct_print(stream, "Loading extension %r" % extension) if os.path.exists(extension): spec = spec_from_file_location("extension", extension) module = module_from_spec(spec) spec.loader.exec_module(module) else: try: import_module(extension) except (ImportError, ValueError) as e: direct_print(stream, "Cannot import %r" % extension) direct_print(stream, "\n".join(printable_error(e))) sys.exit(1) if os.path.exists(args.scenario): sys.path.insert(0, os.path.dirname(args.scenario)) spec = spec_from_file_location("loadtest", args.scenario) module = module_from_spec(spec) spec.loader.exec_module(module) else: try: module = import_module(args.scenario) except (ImportError, ValueError) as e: direct_print(stream, "Cannot import %r" % args.scenario) direct_print(stream, "\n".join(printable_error(e))) sys.exit(1) sys.path.insert(0, os.path.dirname(module.__file__)) if len(get_scenarios()) == 0: direct_print(stream, "You need at least one scenario. No scenario was found.") direct_print(stream, "A scenario with a weight of 0 is ignored") sys.exit(1) if args.verbose > 0 and args.quiet: direct_print(stream, "You can't use -q and -v at the same time") sys.exit(1) if args.single_mode and args.single_run: direct_print(stream, "You can't use --singlee-mode and --single-run") sys.exit(1) if args.single_mode: if get_scenario(args.single_mode) is None: direct_print( stream, "Can't find %r in registered scenarii" % args.single_mode ) sys.exit(1) res = Runner(args)() def _dict(counters): res = {} for k, v in counters.items(): if k == "RATIO": res[k] = float(v.value) / 100.0 else: res[k] = v.value return res res = _dict(res) if not args.quiet: if args.sizing: if res["REACHED"] == 1: direct_print(stream, _SIZING % res) else: direct_print(stream, "Sizing was not finished. (interrupted)") else: direct_print(stream, "SUCCESSES: %(OK)d | FAILURES: %(FAILED)d\r" % res) direct_print(stream, "*** Bye ***") if args.fail is not None and res["FAILED"] >= args.fail: sys.exit(1) return res
def run(args): args.shared_console = SharedConsole(interval=args.console_update) if not args.quiet: print(HELLO) if args.use_extension: for extension in args.use_extension: if not args.quiet: print("Loading extension %r" % extension) if os.path.exists(extension): spec = spec_from_file_location("extension", extension) module = module_from_spec(spec) spec.loader.exec_module(module) else: try: import_module(extension) except (ImportError, ValueError) as e: print('Cannot import %r' % extension) print('\n'.join(printable_error(e))) sys.exit(1) if os.path.exists(args.scenario): spec = spec_from_file_location("loadtest", args.scenario) module = module_from_spec(spec) spec.loader.exec_module(module) else: try: import_module(args.scenario) except (ImportError, ValueError) as e: print('Cannot import %r' % args.scenario) print('\n'.join(printable_error(e))) sys.exit(1) if len(get_scenarios()) == 0: print('You need at least one scenario. No scenario was found.') print('A scenario with a weight of 0 is ignored') sys.exit(1) if args.verbose > 0 and args.quiet: print("You can't use -q and -v at the same time") sys.exit(1) if args.single_mode: if get_scenario(args.single_mode) is None: print("Can't find %r in registered scenarii" % args.single_mode) sys.exit(1) res = Runner(args)() def _dict(counters): res = {} for k, v in counters.items(): if k == 'RATIO': res[k] = float(v.value) / 100. else: res[k] = v.value return res res = _dict(res) if not args.quiet: if args.sizing: if res['REACHED'] == 1: print(_SIZING % res) else: print('Sizing was not finished. (interrupted)') else: print('SUCCESSES: %(OK)d | FAILURES: %(FAILED)d\r' % res) print('*** Bye ***') if args.fail is not None and res['FAILED'] >= args.fail: sys.exit(1)