转载大佬   ,。。

另外一篇: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 接口性能测试 - 转载一 (后期熟悉实践自己出一套完整的)的更多相关文章

  1. 软件性能测试分析与调优实践之路-JMeter对RPC服务的性能压测分析与调优-手稿节选

    一.JMeter 如何通过自定义Sample来压测RPC服务 RPC(Remote Procedure Call)俗称远程过程调用,是常用的一种高效的服务调用方式,也是性能压测时经常遇到的一种服务调用 ...

  2. 软件性能测试分析与调优实践之路-Web中间件的性能分析与调优总结

    本文主要阐述软件性能测试中的一些调优思想和技术,节选自作者新书<软件性能测试分析与调优实践之路>部分章节归纳. 在国内互联网公司中,Web中间件用的最多的就是Apache和Nginx这两款 ...

  3. 软件性能测试分析与调优实践之路-Java应用程序的性能分析与调优-手稿节选

    Java编程语言自从诞生起,就成为了一门非常流行的编程语言,覆盖了互联网.安卓应用.后端应用.大数据等很多技术领域,因此Java应用程序的性能分析和调优也是一门非常重要的课题.Java应用程序的性能直 ...

  4. nGrinder工具进行接口性能测试

    1.背景 之前在这篇文章中性能测试初探—接口性能测试介绍过nGrinder,本文将介绍在nGrinder脚本中使用资源文件中数据作为接口参数和解析生成的CSV结果,生成TPS标准差,TPS波动率,最小 ...

  5. 【技术博客】 利用Postman和Jmeter进行接口性能测试

    利用Postman和Jmeter进行接口性能测试 作者:ZBW 版本:v1.1 在Phylab的开发过程中,对于生成报告接口的性能考量十分重要.原有的Latex接口虽然生成的报告美观,但编译Latex ...

  6. 基于locust的性能测试平台搭建

    前段时间加入性能测试组,并参与搭建基于locust的性能测试平台,我分到的任务相对独立,开发locust的启动接口和停止运行接口,现开发的差不多了,做一个总结 一.locust运行的相关内容 二.lo ...

  7. MySQL数据库的性能分析 ---图书《软件性能测试分析与调优实践之路》-手稿节选

    1  .MySQL数据库的性能监控 1.1.如何查看MySQL数据库的连接数 连接数是指用户已经创建多少个连接,也就是MySQL中通过执行 SHOW  PROCESSLIST命令输出结果中运行着的线程 ...

  8. 接口性能测试--JMeter

    1.JMeter Java Sampler介绍 setupTest做些初始化的工作,每个线程只执行一次 teardownTest做些清理工作,每个线程只执行一次 1.JMeter Java Sampl ...

  9. Loadrunner Webservice接口性能测试脚本编写优化总结

    本文主要介绍使用Loadrunner Webservice接口性能测试脚本编写及优化总结. 1.Webservice协议脚本编写流程 下面介绍使用Loadrunner 11调用Webservice接口 ...

随机推荐

  1. java.lang.IllegalArgumentException: java.util.zip.ZipException: invalid LOC header (bad signature)异常解决方法

    java.util.concurrent.ExecutionException: org.apache.catalina.LifecycleException: Failed to start com ...

  2. golang 的几个入门资料

    =====================视频=====================无闻 老师的<Go 编程基础>视频https://github.com/Unknwon/go-fun ...

  3. Web服务器—Nginx

    Nginx常用命令: 启动nginx服务 [root@localhost ~]# service nginx start [root@localhost ~]# systemctl start ngi ...

  4. WindowsServer2003中IIS支持php的配置

    1.安装MySQL(没有特殊说明的就按照默认安装)选择 Custom 自定义安装点击"Change"更改 MySQL 安装目录(自定义)其他按照默认的下一步就可以 安装完成后会自动 ...

  5. python pip 升级 或者换源

    1. 临时换源python -m pip install --upgrade pip -i https://pypi.douban.com/simple pip国内的一些镜像   阿里云  https ...

  6. CAS你知道吗?原子类AtomicInteger的ABA问题谈谈?

    (1)CAS是什么?  比较并交换 举例1,  CAS产生场景代码? import java.util.concurrent.atomic.AtomicInteger; public class CA ...

  7. JS的节流、防抖及使用场景

    前言 据说阿里有一道面试题就是谈谈函数节流和函数防抖. 糟了,这可触碰到我的知识盲区了,好像听也没听过这2个东西,痛定思痛,赶紧学习学习.here we go! 概念和例子 函数防抖(debounce ...

  8. Python进阶-XVV hashlib模块、configparse模块、logging模块

    1.配置相关的configparse模块 配置文件如何组织?python中常见的是将配置文件写成py,然后引入该模块即可.优点是方便访问. 但是也有用类似windows中的ini文件的配置文件,了解即 ...

  9. 9.28 csp-s模拟测试54 x+y+z

    T1 x 求出每个数的质因数,并查集维护因子相同的数,最后看一共有多少个联通块,$ans=2^{cnt}-2$ 但是直接分解会$T$,埃筛是个很好的选择,或者利用每个数最多只会有1个大于$\sqrt{ ...

  10. [NewLife.XCode]实体工厂(拦截处理实体操作)

    NewLife.XCode是一个有10多年历史的开源数据中间件,支持nfx/netcore,由新生命团队(2002~2019)开发完成并维护至今,以下简称XCode. 整个系列教程会大量结合示例代码和 ...