eztest is a Python package and execution used for performance/load testing.
Project description
Project
-------
``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
-------
``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.7.tar.gz
(22.4 kB
view hashes)
Built Distributions
eztest-1.0.7-py3.6.egg
(27.7 kB
view hashes)
eztest-1.0.7-py3-none-any.whl
(31.6 kB
view hashes)
eztest-1.0.7-py2.7.egg
(63.5 kB
view hashes)