def execute(self): events.init.add_listener(self.__on_init) events.user_error.add_listener(self.__on_exception) events.worker_report.add_listener(self.__on_worker_report) events.quitting.add_listener(self.__on_quit) if os.getenv("JTL"): # regular locust worker fname = os.getenv("JTL") self.fhd = open(fname, 'wt') fieldnames = list(self.__getrec(None, None, None, None).keys()) dialect = guess_csv_dialect(",".join(fieldnames)) self.writer = csv.DictWriter(self.fhd, fieldnames=fieldnames, dialect=dialect) self.writer.writeheader() events.request.add_listener(self.__on_request_success) events.request.add_listener(self.__on_request_failure) elif os.getenv("WORKERS_LDJSON"): # master of distributed mode fname = os.getenv("WORKERS_LDJSON") self.fhd = open(fname, 'wt') self.writer = None else: raise ValueError( "Please specify JTL or WORKERS_LDJSON environment variable") main.main() self.fhd.close()
def execute(self): if os.getenv("SLAVES_LDJSON"): fname = os.getenv("SLAVES_LDJSON") is_csv = False elif os.getenv("JTL"): fname = os.getenv("JTL") is_csv = True else: raise ValueError("Please specify JTL or SLAVES_LDJSON environment variable") with open(fname, 'wt') as self.fhd: if is_csv: fieldnames = list(self.__getrec(None, None, None, None).keys()) dialect = guess_csv_dialect(",".join(fieldnames)) self.writer = csv.DictWriter(self.fhd, fieldnames=fieldnames, dialect=dialect) self.writer.writeheader() self.fhd.flush() else: self.writer = None # FIXME: bad code design, have zero object for it events.request_success += self.__on_request_success events.request_failure += self.__on_request_failure events.locust_error += self.__on_exception events.slave_report += self.__on_slave_report events.quitting += self.__on_quit main.main() self.fhd.flush()
def execute(self): if os.getenv("SLAVES_LDJSON"): fname = os.getenv("SLAVES_LDJSON") is_csv = False elif os.getenv("JTL"): fname = os.getenv("JTL") is_csv = True else: raise ValueError( "Please specify JTL or SLAVES_LDJSON environment variable") with open(fname, 'wt') as self.fhd: if is_csv: fieldnames = list(self.__getrec(None, None, None, None).keys()) dialect = guess_csv_dialect(",".join(fieldnames)) self.writer = csv.DictWriter(self.fhd, fieldnames=fieldnames, dialect=dialect) self.writer.writeheader() self.fhd.flush() else: self.writer = None # FIXME: bad code design, have zero object for it events.request_success += self.__on_request_success events.request_failure += self.__on_request_failure events.locust_error += self.__on_exception events.slave_report += self.__on_slave_report main.main() self.fhd.flush()
def execute(self): if os.getenv("WORKERS_LDJSON"): fname = os.getenv("WORKERS_LDJSON") is_csv = False elif os.getenv("JTL"): fname = os.getenv("JTL") is_csv = True else: raise ValueError( "Please specify JTL or WORKERS_LDJSON environment variable") with open(fname, 'wt') as self.fhd: if is_csv: fieldnames = list(self.__getrec(None, None, None, None).keys()) dialect = guess_csv_dialect(",".join(fieldnames)) self.writer = csv.DictWriter(self.fhd, fieldnames=fieldnames, dialect=dialect) self.writer.writeheader() self.fhd.flush() else: self.writer = None # FIXME: bad code design, have zero object for it events.init.add_listener(self.__on_init) events.request.add_listener(self.__on_request_success) events.request.add_listener(self.__on_request_failure) events.user_error.add_listener(self.__on_exception) events.worker_report.add_listener(self.__on_worker_report) events.quitting.add_listener(self.__on_quit) main.main() self.fhd.flush()
def __guess_delimiter(self, path): with open(path) as fhd: header = fhd.read(4096) # 4KB is enough for header try: delimiter = guess_csv_dialect(header).delimiter except BaseException as exc: self.log.debug(traceback.format_exc()) self.log.warning('CSV dialect detection failed (%s), default delimiter selected (",")', exc) delimiter = "," # default value return delimiter