一键压测工具改造(locust)

本文内容来自“天外归云”大神,原文链接http://www.cnblogs.com/LanTianYou/p/5987741.html,目前只对启动脚本做了一些改造,应该说是,不适用powershell脚本,而使用bat批处理文件执行。之所以这么做,是考虑到powershell脚本运行权限默认没有开启,再者,开启了之后存在一定的风险。故做了这个简单的改造。

结构目录如下:

原来使用的是start.sp1启动脚本,用来调用start_locust.py,而后再由start_locust.py启动locust并载入用例locust_test.py

原powershell脚本如下:

现在要做的是,使用bat批处理文件实现相同功能。其实查看代码,比较简单,就是让用户传入两个参数,然后再将参数传给启动locust的脚本。知道怎么做了,就好办了,bat批处理文件脚本是通过set /p来传入参数的,那么稍微改下就好了。新建文本,重命名为start.bat。右键编辑。写入代码如下:

其实此时功能已经实现,但算不上完美,所有再加点提示,体验就更好了。

比如输入为空提示,为窗口加上标题、时间,

@echo off
:menu
echo 使用说明:
echo 先输入需要压测的网站host,在输入路由,即会自动打开页面、进行压力测试
:start1
title 这是一个一键压测工具,现在时间是:%time%
echo 第一步,请先输入压测网站host(例如:http://www.cnblogs.com)
set /p a=:
if "%a%" == "" goto sorry1
echo 您输入的压测host是:%a%

:start2
title 这是一个一键压测工具,现在时间是:%time%
echo 第二步,然后再输入压测网站host后的路由(例如:/mikasama)
set /p b=:
if "%b%" == "" goto sorry2
echo 您输入的压测路由是:%b%

python .\start_locust.py %a% %b%
pause
goto end

:sorry1
echo Warnning!!!Please enter the host!(eg:http://www.cnblogs.com)
goto start1

:sorry2
echo Warnning!!!Please enter the rout!(eg:/mikasama)
goto start2

:end
echo 不要瞎点,已经开始测试了

 效果如下:

好了,现在可以愉快的玩耍了。注意,目前这个工具只针对单个页面进行压力测试,下一篇再讲如何将locust作为生产力工具,实现关联测试,各种场景如多用户每个用户只执行一次、多用户使用不用参数进行测试等等。

=====================================locust第一部分已完结================================

 

有个想法,也不知道可不可行,用django搭建一个性能测试平台,将locust整合进去。只要点点点就可以进行压力测试,不过听起来有点像是在造轮子,毕竟接口测试的工具实在太多了,比如postman、jmeter等。试想一下,比如我想测试一个接口,先不考虑验签等问题,它需要传5个参数,其中有个参数需要传大量不同数据,现在我只需要将固定的参数填上,而那个需要大量数据的参数,它的value我点击下上传按钮,将已经准备好的csv、excel或者json,都好,上传完毕,选择压力测试运行模式(施压模式,如所有虚拟用户循环使用数据、每个用户只能使用一个等等),点击start按钮,开始压测,并自动跳转到对应监控页面。虽然只是想想,但感觉好激动啊,一旦实现了,那做起性能测试来,太方便啦。而且还可以设计一个接口出来,用来修改脚本,定时器什么的肯定要的,只要有脑洞,都可以做上去吧。

灵感来自于公司运维同学正在做的自动化运维平台,整个运维过程,只要点点点,这种思想其实应该算是来自jenkin吧。当我发现他们正在做这个的时候,特别兴奋,也许,性能测试也可以这么整,于是有了上面的“胡思乱想”。无论如何,试试吧。记在这里,不要忘了此想法,尽快实现。

有个疑问,locust是基于flask的,那么搭这平台用django还是flask呢?打住打住,不要想了,请先动手,谢谢。

 时间:20180127

posted on 2018-01-26 17:53  Mikasama  阅读(4416)  评论(0编辑  收藏  举报

导航