如何用python做六色风车

阅读: 评论:0

如何用python做六色风车

如何用python做六色风车

python压测工具Locust

Locust介绍

Locust作为基于Python语言的性能测试框架。

其优点在于他的并发量可以实现单机10倍于LoadRunner和Jmeter工具。他的工作原理为协程并发,也就是gevent库。

Locust的缺点也显而易见,他没有友好的性能监控页面,没有任何关联,参数化,检查点之类的定义。当然基于python这些都不是问题,如果简单的使用,用来做压测是最合适不过了

Locust安装

1、安装了python,并加入了环境变量:pip intsall locustio

2、Pycharm内部直接import Locust,如图:

Locust实例_1(访问百度首页)

代码:

1 from locust import HttpLocust, TaskSet, task #导入需要引用的类

2 ​3 classMyTasks(TaskSet):4 '''

5 创建测试任务,需要继承TaskSet6 可以添加多个测试任务7 '''

8 #每个测试任务,往往会以实例方法的形式呈现

9 #同时需要使用task装饰器来装饰任务

10 @task11 defone_task(self):12 print("执行第一个测试任务")13 ("/") #client封装的requests,所以requests的请求方法都能调用,括号内为子路径,与class RunTasks(HttpLocust)中的host拼接,也可以直接写成("/"),在class RunTasks(HttpLocust)就不需要指host了

14 ​15 classRunTasks(HttpLocust):16 '''

17 创建运行测试类,需要继承HttpLocust父类18 '''

19 task_set = MyTasks #指定测试任务类,使用task_set覆盖父类属性

20 min_wait = 2000 #模拟负载的任务之间执行时的最小等待时间,单位为毫秒

21 max_wait = 5000 #模拟负载的任务之间执行时的最大等待时间,单位为毫秒

22 host = "/" #进行压测的地

启动:

可以在cmd中启动,也可以直接在Pycharm的控制台中启动:locust -f locusttest2.py --web-host=127.0.0.1

-f 后面跟的是需要启动的.py文件,--web-host=127.0.0.1 是我们需要的前端页面展示的地方

启动之后可以在在浏览器中输入127.0.0.1:8089访问页面

开始执行:

统计页面

图图表页面:

第一个为:RPS分别为每秒完成的请求数

第二个为:响应时间

第三个为:不同时间的虚拟数

失败请求页面

异常请求展示页面

数据下载页面

Locust实例2(某子系统系统压测)

from locust importHttpLocust, TaskSet, task

​classAdminLoadTest(TaskSet):'''创建后台管理站点压测类,需要继承TaskSet

可以添加多个任务'''

def login(self): #登录方法

'''登录实例方法

:return:'''self.client.post("ip:port/ssoserver/login?service=ip:port/portal/cas", {'username': 'Y2R6Znc=','password':'MTIzNDU2NzhBYQ==', 'scope': '','lt':'_cFC77B10F-B8C6-39DF-8177-35D753A043FC_kF557C6AB-47D5-9530-3B1F-75EA4B339131', 'eventId': 'submit'})#这里先截包,找到登录接口,由于密码都进行的js加密处理,所已我们直接正确的用户名密码加密的结果传入。post的参数可以直接使用字典的形式传入

​def logout(self): #退出登录方法

'''退出实例方法

:return:'''("ip:port/portal/logout") #子系统的退出接口

​defon_start(self):'''当任何一个task调度执行前,on_start实例方法会被调用

先登录

:return:'''self.login()

​defon_stop(self):'''当任何一个task调度执行之后,on_stop实例方法会被调用

:return:'''self.logout()

@task#task装饰器来装饰任务

defadmin_index(self):'''对后台主页进行压测

:return:'''("ip:port/portal/")

​classRunLoadTests(HttpLocust):'''创建运行类'''task_set=AdminLoadTest

min_wait= 200 #模拟负载的任务之间执行时的最小等待时间,单位为毫秒

max_wait = 500 #模拟负载的任务之间执行时的最大等待时间,单位为毫秒

#启动:locust-f test_load.py --web-host=127.0.0.1 --host=172.25.16.7

安装这样的参数,我们执行的动作为:一共1000个用户,每个用户在2~5秒内进行登录,访问首页,退出3个动作。用户数已没5秒一个的方式递增,我们来看看结果:

总览页面

图表页面:

针对这3个动作,子系统每秒能完成的请求数在150左右

响应时间随着用户量增加,持续上升

没有失败和异常的请求

总结:

locust用来做压测工具还是挺不错了,因为它单机能模拟并发量确实是太高了(采用的是协程的方式模拟并发),初次之外,locust还支持分布式,这样并发量就进一步提升了。由于Locust的缺点也显而易见,他没有友好的性能监控页面,没有任何关联,参数化,检查点之类的定义,所以locust单独不适合做完整的性能测试,当然如果能结合python的其他的库,也应该可以解决。有兴趣的小伙伴可以研究研究...

本文发布于:2024-02-05 02:12:09,感谢您对本站的认可!

本文链接:https://www.4u4v.net/it/170721691562078.html

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。

标签:风车   如何用   python   做六色
留言与评论(共有 0 条评论)
   
验证码:

Copyright ©2019-2022 Comsenz Inc.Powered by ©

网站地图1 网站地图2 网站地图3 网站地图4 网站地图5 网站地图6 网站地图7 网站地图8 网站地图9 网站地图10 网站地图11 网站地图12 网站地图13 网站地图14 网站地图15 网站地图16 网站地图17 网站地图18 网站地图19 网站地图20 网站地图21 网站地图22/a> 网站地图23