diff options
Diffstat (limited to 'robotframework-onap/loadtest/TestMain.py')
-rw-r--r-- | robotframework-onap/loadtest/TestMain.py | 93 |
1 files changed, 93 insertions, 0 deletions
diff --git a/robotframework-onap/loadtest/TestMain.py b/robotframework-onap/loadtest/TestMain.py new file mode 100644 index 0000000..81c635f --- /dev/null +++ b/robotframework-onap/loadtest/TestMain.py @@ -0,0 +1,93 @@ +#!/usr/bin/env python +# encoding: utf-8 +''' +loadtest.TestMain -- shortdesc + +loadtest.TestMain is a description + +It defines classes_and_methods + +@author: user_name + +@copyright: 2017 organization_name. All rights reserved. + +@license: license + +@contact: user_email +@deffield updated: Updated +''' + +import sys +import os + +from optparse import OptionParser, Values + +from loadtest.TestController import TestController + +__all__ = [] +__version__ = 0.1 +__date__ = '2017-04-07' +__updated__ = '2017-04-07' + +DEBUG = 1 +TESTRUN = 0 +PROFILE = 0 +import time +import logging + +def main(argv=None): + '''Command line options.''' + program_name = os.path.basename(sys.argv[0]) + program_version = "v0.1" + program_build_date = "%s" % __updated__ + + program_version_string = '%%prog %s (%s)' % (program_version, program_build_date) + #program_usage = '''usage: spam two eggs''' # optional - will be autogenerated by optparse + program_longdesc = '''''' # optional - give further explanation about what the program does + program_license = "Copyright 2017 user_name (organization_name) \ + Licensed under the Apache License 2.0\nhttp://www.apache.org/licenses/LICENSE-2.0" + + if argv is None: + argv = sys.argv[1:] + try: + # setup option parser + parser = OptionParser(version=program_version_string, epilog=program_longdesc, description=program_license) + parser.add_option("-d", "--duration", dest="duration", help="duration of soak test in seconds [default: %default]", type=int) + parser.add_option("-l", "--logfile", dest="logfile", help="Full path soak log file name") + parser.add_option("-c", "--cyclelength", dest="cyclelength", help="Length of a single cycle through the config.\nMust be longer than a single iteration", type=int) + parser.add_option("-p", "--profile", dest="profile", help="Filename of json profile file") + parser.set_defaults(logfile="") + (opts, args) = parser.parse_args(argv) + + if (opts.logfile != ""): + logging.basicConfig(filename=opts.logfile, level=logging.DEBUG) + else: + logging.basicConfig(level=logging.DEBUG) + controller = TestController(opts) + controller.execute() + + except Exception, e: + indent = len(program_name) * " " + sys.stderr.write(program_name + ": " + repr(e) + "\n") + sys.stderr.write(indent + " for help use --help") + return 2 + + +if __name__ == "__main__": + if DEBUG: + print "debug" + if TESTRUN: + import doctest + doctest.testmod() + if PROFILE: + import cProfile + import pstats + profile_filename = 'loadtest.TestMain_profile.txt' + cProfile.run('main()', profile_filename) + statsfile = open("profile_stats.txt", "wb") + p = pstats.Stats(profile_filename, stream=statsfile) + stats = p.strip_dirs().sort_stats('cumulative') + stats.print_stats() + statsfile.close() + sys.exit(0) + sys.exit(main())
\ No newline at end of file |