summaryrefslogtreecommitdiffstats
path: root/robotframework-onap/loadtest/TestMain.py
diff options
context:
space:
mode:
Diffstat (limited to 'robotframework-onap/loadtest/TestMain.py')
-rw-r--r--robotframework-onap/loadtest/TestMain.py93
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