Skip to main content

eztest is a Python package and execution used for performance testing or load testing.

Project description

eztest is a Python package and execution used for performance/load testing.

Home page: https://github.com/lgt1001/eztest

Features

  • Normal: Run selected cases only once.

  • Continuous: Run cases [repeat] times with [interval] seconds’ sleeping.

  • Simultaneous: Start [stress] threads and run cases in each thread, sleep [interval] seconds after all cases are finished, and then start testing again with [repeat] times.

  • Concurrency: Start [stress] threads and each thread will continuously run cases with [interval] seconds’ sleeping.

  • Frequent: Start [stress] threads per [interval] seconds. And only can have [limit] available threads running.

  • Calculate failure rate and average of time taken for report files generated by eztest.

eztest command:

$ eztest -h
usage: eztest [-h] [--target TARGET] [--classes CLASSES [CLASSES ...]]
              [--not-classes NOT_CLASSES [NOT_CLASSES ...]]
              [--cases CASES [CASES ...]]
              [--not-cases NOT_CASES [NOT_CASES ...]]
              [--mode {0,1,2,3,4,normal,continuous,simultaneous,concurrency,frequent}]
              [--stress STRESS] [--repeat REPEAT] [--interval INTERVAL]
              [--limit LIMIT] [--starts STARTS] [--duration DURATION]
              [--ends ENDS] [--mail-config MAIL_CONFIG]
              [--report-folder REPORT_FOLDER] [--noreport] [--nolog]
              [--calc CALC [CALC ...]] [--group-minutes GROUP_MINUTES]
              [--version]

eztest

optional arguments:
  -h, --help            show this help message and exit
  --version, -v         show program's version number and exit

Case Group:
  Define arguments of case related.

  --target TARGET, -t TARGET
                        Folder or file path, or a module, a __init__.py file is required under that folder/module.
  --classes CLASSES [CLASSES ...], -cl CLASSES [CLASSES ...]
                        Class names to be tested. It will be considered if target is file.
  --not-classes NOT_CLASSES [NOT_CLASSES ...], -ncl NOT_CLASSES [NOT_CLASSES ...]
                        Class names to be ignored. It will be considered if target is file.
  --cases CASES [CASES ...], -c CASES [CASES ...]
                        Case names to be tested. It can be whole case name or pattern like: "*a", "a*", "*a*".
  --not-cases NOT_CASES [NOT_CASES ...], -nc NOT_CASES [NOT_CASES ...]
                        Case names to be ignored. It can be whole case name or pattern like: "*a", "a*", "*a*".

Test Mode Group:
  Define arguments of test mode related.

  --mode {0,1,2,3,4,normal,continuous,simultaneous,concurrency,frequent},
  -m {0,1,2,3,4,normal,continuous,simultaneous,concurrency,frequent}
                        (a)0 or normal: Run selected cases only once.
                        (b)1 or continuous: Run cases [repeat] times with [interval] seconds' sleeping.
                        (c)2 or simultaneous: Start [stress] threads and run cases in each thread,
                            sleep [interval] seconds after all cases are finished,
                            and then start testing again with [repeat] times.
                        (d)3 or concurrency: Start [stress] threads,
                            and each thread will continuously run cases with [interval] seconds' sleeping.
                        (e)4 or frequent: Start [stress] threads per [interval] seconds.
                            And only can have [limit] available threads running.
  --stress STRESS, -s STRESS
                        Start [stress] threads in each round of testing. Default value is 1.
  --repeat REPEAT, -r REPEAT
                        Repeat [repeat] times of testing. Default value is 1
  --interval INTERVAL, -i INTERVAL
                        Slept [interval] seconds after one round of testing. Default value is 0.
  --limit LIMIT, -l LIMIT
                        Only can have [limit] count of running threads.
                        No limitation if this is less than or equals to "stress".
  --starts STARTS, -st STARTS
                        Testing will be started at [starts].
                        It is datetime string(e.g.: "2014-01-02 03:04:05").
  --duration DURATION, -d DURATION
                        Testing will continue with [duration] minutes.
                        Will be ignored if "ends" is provided.
  --ends ENDS, -et ENDS
                        Testing will be stopped at [ends].
                        It is datetime string(e.g.: "2014-01-02 03:04:05").

Report/Log Group:
  Define arguments of report or log related.

  --mail-config MAIL_CONFIG, -mc MAIL_CONFIG
                        Mail configuration file which contains mail server information etc.
                        It should be INI format file(http://en.wikipedia.org/wiki/INI_file).
                        Will send report by mail only if mail-config is provided and report file is generated.
                        Section is "SMTP" and properties can be "server", "from_mail", "to_mails", "cc_mails",
                        "bcc_mails", "username", "password", "need_authentication" and "subject".
                        "server", "from_mail" and "to_mails" are mandatory.
                        "to_mails", "cc_mails" and "bcc_mails" can be multiple values separated by comma.
                        "need_authentication" is boolean,
                        "username" and "password" are required if "need_authentication" is True.
  --report-folder REPORT_FOLDER, -rf REPORT_FOLDER
                        Report and log files will be saved under [report-folder].
  --noreport, -nr       No report file will be generated if [noreport] is clarified.
  --nolog, -nl          No log file will be generated if [nolog] is clarified.

Calculate Report Group:
  Calculate failure rate and average of time taken for report files
  generated by eztest.

  --calc CALC [CALC ...], -ca CALC [CALC ...]
                        Report folders or files to be calculated.
  --group-minutes GROUP_MINUTES, -gm GROUP_MINUTES
                        Calculate by grouping case results with [group-minutes] minutes. Default is 60 minutes.

Examples:

# Normal testing
$ eztest --target examples/target_is_unittest/test_case.py

# Continuous testing and repeat 100 times
$ eztest --mode continuous --target examples/target_is_unittest/test_case.py --repeat 100 --nolog

# Simultaneous testing, start 50 threads and repeat 100 times
$ eztest --mode simultaneous --target examples/target_is_unittest/test_case.py --stress 50 --repeat 100 --nolog

# Concurrency testing, start 50 threads and run 1 hour
$ eztest --mode simultaneous --target examples/target_is_unittest/test_case.py --stress 50 --duration 60 --nolog

# Frequent testing, start 50 threads and run 1 hour
$ eztest --mode frequent --target examples/target_is_unittest/test_case.py --stress 50 --duration 60 --nolog

# Ignore cases
$ eztest --target examples/target_is_unittest/test_case.py --not-cases test_hello

# Target is a module with CASES defined.
$ eztest --target examples.target_is_module

# Calculate failure rate and average of time taken for report files.
$ eztest --calc "/tmp/a.csv" "/tmp/b.csv" --group-minutes 30

# Calculate failure rate and average of time taken for files under report folder.
$ eztest --calc "/tmp/reports" --group-minutes 30

Prerequisites

  • C Python 2.7 or higher.

Authors

lgt

License

GNU GPL v2, see http://www.gnu.org/licenses/gpl-2.0.html

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

eztest-1.0.10.tar.gz (24.0 kB view hashes)

Uploaded Source

Built Distributions

eztest-1.0.10-py3.6.egg (3.6 kB view hashes)

Uploaded Source

eztest-1.0.10-py3-none-any.whl (6.9 kB view hashes)

Uploaded Python 3

eztest-1.0.10-py2.7.egg (3.5 kB view hashes)

Uploaded Source

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page