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按钮,结束压力测试。

原文地址:https://www.cnblogs.com/QAyangjianbo/p/10367039.html

时间: 2024-08-24 16:12:12

locust接口压测的相关文章

接口压测笔记(二)

隔了很久再来写第二篇随笔,这篇文章的内容是关于简单接口压测的记录已经报告. 上篇记录了Jmeter的简单操作已经接口的压测,这篇是对接口压测做一些记录,我目前完成公司的任务所记录下的表格. 步骤: 1.先打开我们的Jmeter压测工具,建立一个新的线程组 2.在线程组下面建立一个新的Http请求(Sampler中),以及察看结果树(看请求是否对错,以及访问接口之后返回的信息).聚合报告(吞吐率等相关数据的记录).图形报告(接口在访问过程的图形,不过这边可以不看,问题不大) 3.Http请求的地址

Dubbo接口压测

在每年的双十一大促之前,除了全链路压测,还需要各个业务方对自己业务提供的核心接口进行单接口压测,以评判系统的稳定性和承压能力. 一.准备工作 环境准备:确保应用性能环境(perf)正常可用 压测接口梳理:通过 ops平台 - 应用 - 监控模块 [示例] 获取频繁访问的接口,确定需要压测的接口列表 测试数据准备:根据接口请求的参数列表,从qa库中捞取需要的测试数据,导出到csv备用 二.压测脚本编写(jmeter版本3.2) A: Nova或Dubbo接口 这类接口的压测需要借助jmeter的高

如何用fiddler 做接口压测【转】

一.fiddler接口压测 1)浏览器打开需要测试的url,可以看到url被fiddler拦截到,并出现在列表中. 2)在拦截到的url上点击鼠标右键,->replay -> shift+reissue request 设置访问次数,比如100 二.Composer简介 点开右侧Composer区域,可以看到如下界面,就是测试接口的界面了 1.请求方式:点开可以勾选请求协议是get.post等 2.url地址栏:输入请求的url地址 3.请求头:第三块区域可以输入请求头信息 4.请求body:

JMETER获取短信验证码接口压测

主要学习的内容包括发送HTTP请求.HTTP信息头管理器.HTTP cookies管理器.用户定义的变量.响应断言.CSV数据文件设置的使用. 一.测试相关网站及接口说明: 提供的测试网址为:http://www.qk365.com/security/register 使用Chrome浏览器,先将浏览器的cookies缓存清空. 清空后,打开待测试的网址,按F12键,输入要注册的手机号码,如“18300987622”,点击“发送验证码”,可以看到请求的接口为:http://www.qk365.c

接口压测工具--jmeter

jmeter jmeter是apache公司基于java开发的一款开源压力测试工具,是一个较轻量的测试工具.运行需要安装jdk环境,jmeter为免安装软件,      解压后直接运行jmeter执行脚本即可.它也是跨平台的,支持在windows.linux.macos上使用. 1 jmeter-http接口脚本基本流程 添加线程组 添加http请求 在http请求中写入url.路径.请求方式.参数 添加查看结果树 调用接口.查看返回值 具体操作见下图示: 有时还需添加cookie和header

【接口】接口压测性能分析及调优建议

常见的互联网架构中,一般都能看到spring+mybatis+mysql+redis搭配的身影,在我所服务的公司亦是如此.一般来说,应用内部的接口都是直接调用的,所谓的面向接口编程,应用间的调用直接调或者通过类似dubbo之类的服务框架来执行,数据格式往往采用json,即统一也方便各数据间做转换和取值,缓存一般使用redis或memcached,存储一些对象或json格式的字符串.对外提供的接口,一般都需要进行压力测试,以便估算其性能,并为后续的调优提供指导方向,以下接口便是在压测过程中出现的各

Jmeter接口压测快速入门

[TOC] Jmeter简介 Jmeter是Apache开源的一个使用纯Java编写的压力测试工具,它最初是为测试web应用程序而设计的,但后来扩展到了其他测试功能.例如,可用于测试静态和动态资源以及web动态应用程序的性能等.Jmeter可以用来模拟对服务器.服务器组.网络或对象上的重负载,以测试其强度或分析服务在不同负载类型下的总体性能. 如今Jmeter是一个主流的.功能完善且强大的压测工具,由于是使用Java编写的,所以具有跨平台特性,可以运行在Windows.Mac.Linux等操作系

接口压测之——put方法2

由于LR不支持PUT方式,所以只好通过java Vuser写压测脚本,使用httpclient jar包,我使用的httpclient4.5版本. /* * LoadRunner Java script. (Build: _build_number_) * * Script Description: * */ import lrapi.lr; import lrapi.web; import java.io.BufferedWriter; import java.io.FileWriter; i

LoadRunner 接口压测,请求报文为json格式

重点关注请求报文的参数化 : 请求方法如下: [关注1]        "EncType=application/json",                    //指定响应头的Content-Type,这里是JSON        "RecContentType=application/json",                //指定请求头的Content-Type,这里是JSON [关注2]] 参数化过程中需要注意 原本报文每个参数中间的逗号,前后增加引