Locust 接口性能测试 - 转载一 (后期熟悉实践自己出一套完整的)
转载大佬 ,。。
另外一篇:https://www.cnblogs.com/imyalost/p/9758189.html
记录一下接口性能测试的学习
先熟悉一下概念:
Locust是使用Python开发的支持分布式的一款开源压力测试工具,Locust在测试时,会产生大量的用户对系统进行访问,每个用户的行为是通过Python代码控制的,并且整个测试过程可以在Web的UI界面实时观察测试数据。
Locust在单台机器上能够支持几千并发用户访问,Locust内部采用了协程gevent,通过采用分布式的方式,理论上Locust工具能够模拟无数的用户。
1.安装locust:直接$ pip install locustio 即可

安装的过程中会安装其他一些依赖的库,不要慌张,安装结束如上图,查看是否安装可以用 locust -h 来验证,当现实各种命令就是安装成功了!
2.安装完成后开始来写一个性能测试脚本

解释一下:baiduy_page()方法表示一个用户行为,使用@task修饰该方法是一个事务,client.get()用于指定请求路径,因为是百度首页所以用‘/’指定为根路径
websiteuser类用于设置性能测试
task_set :定义一个用户行为类
min_wait :执行事务之间用户等待时间的下界(ms)
max_wait: 用户等待时间的上界
下面来启动性能测试:

-f :指定性能测试脚本文件
--host :指定被测试应用的url地址,注意,访问百度使用的是https协议
然后通过该浏览器访问 http://127.0.0.1:8089 locust默认使用8089端口
如图所示:

啊啊啊啊,报错啊,没解决呢,愁死了!默认是8089端口,我改成别的端口还是不行!下班吧!回家思考一下!
3.昨天下班没解决的问题今早搞定啦,不知什么原因,地址输入localhost:8089端口就可以了,有时候就是这么简单:如下图:

number of user to simulate:设置模拟的用户数
hatch rate :每秒产生的虚拟用户数
输入用户数100,每秒产生10

下面作解释一下:
type: 请求类型
name: 请求路径,这里是百度首页,https://www.baidu.com
requests: 当前请求的数量
fails:当前请求失败的数量
median: 中间值,单位毫秒 一半的服务器响应时间低于该值,另一半高于该值
average: 平均值,单位ms 所有请求的平均响应时间
min: 请求服务器最小响应时间 ms
content size : 单个请求的大小,单位字节
reqs/sec: 每秒钟请求的个数
总结:由于这是百度首页的测试,性能需求不明,服务器配置未知,没有分析的必要!
下面拿自己公司的后台管理系统作一个简单的性能测试:

这是脚本内容
所有的操作都要先登录,所以先写一个on_start方法定义了每个用户开始做的第一件事
@task方法装饰的是一个事务
下面启动执行:

此时打开localhost:8089 查看:

这就是我司的后台的测试结果:
进入charts查看折线图:

然后我又把用户数设置为1000,每秒启动20,但是,但是,,此时,我司的后台管理系统就挂掉了,我了割草啊,吓死我了。吓得我赶紧关掉locust,尼玛,吓了我一身冷汗!哎
由此可以看出我司的后台管理系统还是比较渣渣的哈!
php写的,不过这件事只有我自己知道,哈哈哈!好了,这次的练习就到此为止吧!有机会再继续学习locust!
讲解到这里小伙伴应该都会用了;locust做简单的性能测试了啊,有不明白的可以加群,一起学习!
最后附上一个大牛写的关于locust的东西,值得深入学习,有机会仔细阅读!
以下部分为2018年8月9日更新!
由于我司下期项目要新增一个直播的模块,直播嘛想想就只到要做压力测试啦,所以今天把locust有稍微研究了下(半天时间),因为手上有项目不能耽误太久时间!
今天我要做的就是课程的详情页。就是模拟多人并发请求这个课程的详情页,也就相当于同时多个人进入这个课程.

当一切准备就绪时开始执行locust -f locustfile2.py --host=xxx 后一直给我报错,说找不到一个叫common的模块。我一想不对呀,怎么会找不到呢,因为我在locust文件中导入我的公共模块都是正常的啊,为什么执行报错呢?百思不得解!
最后在一边文章中看出了一些端倪:https://www.jianshu.com/p/ec210fd6ca4b
所以我特地根据这个改了一下我的项目结构(真够奇葩的)

把locust文件和要导入用到的文件圈放在根目录,然后执行命令

居然这就成功了,我也是醉了,对于这块我觉得可能是locust对于文件层级目录还是有要求的!还需要好好研究!
还有一种方法就是这种结构:

下次尝试吧!!
————————————————
版权声明:本文为CSDN博主「xgh1951」的原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接及本声明。
原文链接:https://blog.csdn.net/xgh1951/article/details/80511365
Locust 接口性能测试 - 转载一 (后期熟悉实践自己出一套完整的)的更多相关文章
- 软件性能测试分析与调优实践之路-JMeter对RPC服务的性能压测分析与调优-手稿节选
一.JMeter 如何通过自定义Sample来压测RPC服务 RPC(Remote Procedure Call)俗称远程过程调用,是常用的一种高效的服务调用方式,也是性能压测时经常遇到的一种服务调用 ...
- 软件性能测试分析与调优实践之路-Web中间件的性能分析与调优总结
本文主要阐述软件性能测试中的一些调优思想和技术,节选自作者新书<软件性能测试分析与调优实践之路>部分章节归纳. 在国内互联网公司中,Web中间件用的最多的就是Apache和Nginx这两款 ...
- 软件性能测试分析与调优实践之路-Java应用程序的性能分析与调优-手稿节选
Java编程语言自从诞生起,就成为了一门非常流行的编程语言,覆盖了互联网.安卓应用.后端应用.大数据等很多技术领域,因此Java应用程序的性能分析和调优也是一门非常重要的课题.Java应用程序的性能直 ...
- nGrinder工具进行接口性能测试
1.背景 之前在这篇文章中性能测试初探—接口性能测试介绍过nGrinder,本文将介绍在nGrinder脚本中使用资源文件中数据作为接口参数和解析生成的CSV结果,生成TPS标准差,TPS波动率,最小 ...
- 【技术博客】 利用Postman和Jmeter进行接口性能测试
利用Postman和Jmeter进行接口性能测试 作者:ZBW 版本:v1.1 在Phylab的开发过程中,对于生成报告接口的性能考量十分重要.原有的Latex接口虽然生成的报告美观,但编译Latex ...
- 基于locust的性能测试平台搭建
前段时间加入性能测试组,并参与搭建基于locust的性能测试平台,我分到的任务相对独立,开发locust的启动接口和停止运行接口,现开发的差不多了,做一个总结 一.locust运行的相关内容 二.lo ...
- MySQL数据库的性能分析 ---图书《软件性能测试分析与调优实践之路》-手稿节选
1 .MySQL数据库的性能监控 1.1.如何查看MySQL数据库的连接数 连接数是指用户已经创建多少个连接,也就是MySQL中通过执行 SHOW PROCESSLIST命令输出结果中运行着的线程 ...
- 接口性能测试--JMeter
1.JMeter Java Sampler介绍 setupTest做些初始化的工作,每个线程只执行一次 teardownTest做些清理工作,每个线程只执行一次 1.JMeter Java Sampl ...
- Loadrunner Webservice接口性能测试脚本编写优化总结
本文主要介绍使用Loadrunner Webservice接口性能测试脚本编写及优化总结. 1.Webservice协议脚本编写流程 下面介绍使用Loadrunner 11调用Webservice接口 ...
随机推荐
- vue-cli3和element做一个简单的登陆页面
1.先用vue-cli3创建一个项目 2.安装element模块 全局安装 npm i element-ui -S 3在main.js引入模块 import ElementUI from 'eleme ...
- 关于解决Xcode更新7.3之后插件不能用的问题
Xcode更新7.3之后,之前安装好好的插件现在突然间不能用了(如:我在写背景颜色或者字体颜色的时候,突然间不出来联想的图案来供我选择了),解决这个问题的步骤如下: 1.打开电脑终端,把default ...
- ABP进阶教程2 - 组合查询
点这里进入ABP进阶教程目录 更新数据传输对象 打开应用层(即JD.CRS.Application)的Course\Dto\GetAllCoursesInput.cs //Course数据传输对象(查 ...
- 【LeetCode】58.最后一个单词的长度
最后一个单词的长度 给定一个仅包含大小写字母和空格 ' ' 的字符串,返回其最后一个单词的长度. 如果不存在最后一个单词,请返回 0 . 说明:一个单词是指由字母组成,但不包含任何空格的字符串. 示例 ...
- Lustre 文件系统安装
制作一个本地镜像 reposync configfile: [root@localhost html]# cat lustre-repo.conf [lustre-server] name=lustr ...
- oracle存储过程中拼接字符串及转义逗号
在ORACLE中,单引号有两个作用,一是字符串是由单引号引用,二是转义.单引号的使用是就近配对,即就近原则.而在单引号充当转义角色时相对不好理解 1.从第二个单引号开始被视为转义符,如果第二 ...
- [随笔]ICPC2.0
停更半年了.瞎扯下过去,现在与未来. 一.过去 1.插叙 讲道理我应该早就写这段在博客上了,不知怎么一直忘了. 在6月拿到ICPC南昌邀请赛的Ag还是比较满意,满意的最大原因是我弱校从没拿过Ag(? ...
- OpenGL ES 入门
写在前面 记录一下 OpenGL ES Android 开发的入门教程.逻辑性可能不那么强,想到哪写到哪.也可能自己的一些理解有误. 参考资料: LearnOpenGL CN Android官方文档 ...
- MySQL统计信息简介
作者:王小龙@网易乐得DBA 原文地址: http://mp.weixin.qq.com/s/698g5lm9CWqbU0B_p0nLMw MySQL执行SQL会经过SQL解析和查询优化的过程,解析器 ...
- Loj #2719. 「NOI2018」冒泡排序
Loj #2719. 「NOI2018」冒泡排序 题目描述 最近,小 S 对冒泡排序产生了浓厚的兴趣.为了问题简单,小 S 只研究对 *\(1\) 到 \(n\) 的排列*的冒泡排序. 下面是对冒泡排 ...