locust接口压测
前言:
locust是完全基于python,是一个简单易用的分布式负载测试工具
Locust特性
使用Python编写模拟用户行为的代码,无需繁琐的配置
分布式可扩展,能够支持上百万用户
自带Web界面
不仅能测试web系统,也可以测试其它
Locust思想
在测试过程中,一群用户将访问你的网站。每个用户的行为由你编写的Python代码定义,同时可以从Web界面中实时观察到用户的行为。
Locust完全是事件驱动的,因此在单台机器上能够支持几千并发用户访问。与其它许多基于事件的应用相比,Locust并不使用回调,而是使用gevent,而gevent是基于协程的,可以用同步的方式来编写异步执行的代码。每个用户实际上运行在自己的greenlet中
http请求完全是基于requests库。Locust支持http、https协议,还支持测试其他协议,websocket等,只要采用Python调用对应的库就可以了
Locust和jmeter、lr优点对比3
性能测试很难在单机上获得很高的并发量,lr、jmeter这类工具采用进程和线程来压测,单机并发量不高。(一般都要用几台电脑做压力发射机)
ocust并发机制摈弃了进程和线程,采用协程(gevent)机制。协程避免了系统级资源调度,可以大大提高单机并发能力
locust的安装
cmd命令下执行 pip install locustio 进行安装
注:小波之前就安装过了~~就不在赘述了
安装完成以后可以查看 locust命令有哪些选项,键入locust --help命令可以查看
如果打算分布式运行locust则需要安装pyzmp
cmd命令下执行pip install pyzmq 执行安装
下面是小波对公司的一个接口进行压测例子
例如:编写名为locust_yace.py文件,如下:
在上面的代码中首先集成了TaskSet类来定义用户的行为,(比如访问网站的行为,或者接口请求的行为)紧接着HttpLocust类表示一个用户,这个用户具有哪些行为,以及该用户在执行下一个任务之前应该等待多长时间。
接下来就可以启动性能测试了~~
cmd命令进入到压测文件目录下,执行测试
-f locust_yace.py 指定性能压测文件
2.--host 指定被测试url的主机地址(IP地址)(如果是接口,就写接口地址即可)
接下来,通过浏览器访问localhost:8089
点击start swarming进行测试:
1.Type:请求类型;
2.Name:请求路径;
3.requests:当前请求的数量;
4.fails:当前请求失败的数量;
5.Median:中间值,单位毫秒,一般服务器响应时间低于该值,而另一半高于该值;
6.Average:所有请求的平均响应时间,毫秒;
7.Min:请求的最小的服务器响应时间,毫秒;
8.Max:请求的最大服务器响应时间,毫秒;
9.Content Size:单个请求的大小,单位字节;
10.reqs/sec:每秒钟请求的个数。
这个是通过浏览器测试的形式,可以通过测试场景设计的时间长度运行,压力测试时间(一般都是5分钟以上)足够后,需要手动点击stop按钮,结束压力测试。
最新文章
- sharepoint powershell 批量处理匿名访问
- mysql时间格式化,按时间段查询的MySQL语句
- btn css
- 参考例子,学习Func<;T, TResult>;委托
- Android7.0 Phone应用源码分析(二) phone来电流程分析
- 14Spring_AOP编程(AspectJ)_环绕通知
- JS创建自定义对象
- SqlDataAdapter怎么处理事务呢
- 编译Firebird的源码
- BZOJ 2301 Problem B(莫比乌斯反演)
- 手工部署Sqlserver CLR程序集
- 【bzoj4198】 Noi2015—荷马史诗
- ActionBar+DrawerLayout实现网易新闻客户端首页
- Visual Studio Code快速删除空行及几个常用快捷键总结
- Ansible第一篇:介绍及安装
- 一个简单的Quartz定时任务
- windows通过node环境搭建安装npm,cnpm,vue-cli
- 《Linux内核设计与实现》第4章读书整理
- BZOJ 1093 [ZJOI2007]最大半连通子图 - Tarjan 缩点
- SQLServer&#160;学习笔记之超详细基础SQL语句&#160;Part&#160;10