我又来更新第三篇了,因为我又改进了一些功能。
显示性能测试进度
前些天逛github发现了tqdm,他可以动态显示程序的执行进度。根据前面开发的功能,在运行性能时,如果并发用户和请求数很大,那么终端就处于执行状态,不会有任何信息输出,直到运行结果,结果才被打印出来。
> python3 kb.py https://wwww.baidu.com -u 10 -q 10 请求URL: https://wwww.baidu.com 用户数:10,循环次数: 10 ============== Running =================== # 漫长的等待.... .................................................................................................... ============== Results =================== 最大: 0.955 s 最小: 0.2573 s 平均: 0.4585 s 请求成功 100 请求失败 0 ============== end ===================
这个体验非常糟糕。加入tqdm,体验就好很多了。
tqdm的用法超级简单,看一个简单的例子:
from time import sleep from tqdm import trange for i in trange(10): sleep(0.5)
在终端运行上面的程序,动态显示执行进度。
> python demo.py 100%|██████████████████████████████████████████████████████████████████████████████████| 10/10 [00:05<00:00, 2.00it/s]
生成 kb 命令
上一篇借助 click 来给python文件执行时接收参数
> python3 kb.py https://wwww.baidu.com -u 10 -q 10
这样很不专业,也不够方便。 ab
是这样执行:
> ab -c 10 -n 100 https://wwww.baidu.com
那么,能不能把 kb.py
变成一个命令,一次安装,到处执行,并且去掉前面的 python
。
很简单,只需要使用python的 argparse
模块即可。
import argparse def main(): """ API test: parse command line options and run commands. """ parser = argparse.ArgumentParser(description=__description__) parser.add_argument( '-v', '--version', dest='version', action='store_true', help="show version") args = parser.parse_args() if args.version: print("kb {}".format(__version__)) sys.exit(0) return 0 def console_main(): main() return 0
配合 setup.py
安装文件,就可以生成 命令工具了。
# setup.py entry_points=''' [console_scripts] kb=kb.run:console_main '''
执行 setup.py
命令安装
python setup.py install
在 python安装目录下生成 kb
命令工具.
最新kb使用
- install
> git clone https://github.com/SeldomQA/kb > cd kb > python3 setup.py install
- 使用
查看帮助:
> kb --help usage: kb [-h] [-v] [-u USERS] [-q REQUESTS] [url] kb is a simple performance testing tool, Simulate concurrent requests through a coroutine. positional arguments: url URL to hit optional arguments: -h, --help show this help message and exit -v, --version show version -u USERS, --users USERS Number of concurrent users -q REQUESTS, --requests REQUESTS Number of requests
- 运行
通过 kb
命令实现URL并发请求
> kb https://www.baidu.com -u 5 -q 20 URL: https://www.baidu.com users: 5, requests: 20 ============== Running =================== 100%|████████████████████████████████████████████████████████████████████████████████████████████| 5/5 [00:00<?, ?it/s] 100%|██████████████████████████████████████████████████████████████████████████████████| 20/20 [00:01<00:00, 10.45it/s] 100%|██████████████████████████████████████████████████████████████████████████████████| 20/20 [00:01<00:00, 10.41it/s] 100%|██████████████████████████████████████████████████████████████████████████████████| 20/20 [00:01<00:00, 10.31it/s] 100%|██████████████████████████████████████████████████████████████████████████████████| 20/20 [00:01<00:00, 10.20it/s] 100%|██████████████████████████████████████████████████████████████████████████████████| 20/20 [00:01<00:00, 10.14it/s] ============== Results =================== Max: 0.2601 s Min: 0.054 s Average: 0.0968 s pass: 100 fail: 0 total: 100 ================== end ===================
注意:本文来自网友投稿。本站无法对本文内容的真实性、完整性、及时性、原创性提供任何保证,请您自行验证核实并承担相关的风险与后果!
CoLaBug.com遵循[CC BY-SA 4.0]分享并保持客观立场,本站不承担此类作品侵权行为的直接责任及连带责任。您有版权、意见、投诉等问题,请通过[eMail]联系我们处理,如需商业授权请联系原作者/原网站。