locust压测框架实战:http脚本编写

软件测试呀 软件测试呀     2023-04-08     675

关键词:

使用Locust发送GET请求

对于GET类型的HTTP请求,可以使用self.client.get()函数。

比如请求这样一个GET接口:

http://192.168.2.130:8080/pinter/com/getSku?id=1&type=normal 

  • 先定义请求参数query_data(字典格式)

  • 再调用get函数,将query_data传给params参数

02用Locust发送表单类型的POST请求

对于表单类型的post请求,它的特点是参数格式为key=value&key=value,可以使用self.client.post()函 数

比如请求这样一个POST接口:

http://192.168.2.130:8080/pinter/com/login

  • 先定义请求参数form_data(字典格式)
  • 然后调用post函数,将入参form_data传给data参数

03用Locust发送Json类型的POST请求

对于Json类型的POST请求,它的特点是入参是一个Json字符串,在调用self.client.post()函数时,需要把json字符串转为字典再传入

比如请求这样一个Json接口:

http://192.168.2.130:8080/pinter/com/register

参数:

  • "userName":"test","password":"1234","gender":1,"phoneNum":"110","email":"beihe@http://163.com","address":"Beijing"

04HTTP请求断言

使用Locust发出HTTP请求后,Locust默认是判断HTTP响应状态码,如果是200,则认为请求成功,否则就是失败。

在实际工作场景中,通常都要根据服务端返回的响应内容,来判断业务是否成功。比如服务端返回了状态码为200,响应内容为:"code":400, "msg":"请求参数不能为空" ,很明显, 我们要根据返回的code或者msg来判断,而不是状态码。

在Locust中,调用get/post函数时,加入一个catch_response=True参数,配合with语句,将服务端响应保存到一个变量里,就可以在代码中根据业务规则标记本次请求是成功还是失败。

在压测执行过程中,如果遇到判断失败的请求,会在Locust的控制页面中显示出来

05其他请求参数

在发送get/post请求时,除了url、params、data、json、catch_response参数外,还支持一些其他的参数,请参考下面表格中的描述

性能测试利器-locust框架解析

...自动化软件测试码同学抖音号:小码哥聊软件测试1认识Locust说起性能测试工具,大家肯定想到的都是Jmeter,是的,由于其简单易用、功能强大,已经变成主流的压测工具之一。当需要实现一些高级功能的时候,可以使用Java语言... 查看详情

locust压测非http协议(代码片段)

Locust是以HTTP为主要目标构建的。但是,通过编写触发器request_success和 request_failure事件的自定义客户端,可以轻松扩展到任何基于请求/响应的系统的负载测试 。我们知道locust默认内部只封装httplocust;使用的是requests中的s... 查看详情

python服务器性能测试工具locust使用指南(代码片段)

...唯一性,循环取数据梯度增压非http协议压测参考前言locust是一款由python编写的压测工具,可以很好的和python进行结合使用,功能强大。locust文档是英文版的,不利于阅读,本文从文档出发,模拟真实的压... 查看详情

locust接口压测

前言:locust是完全基于python,是一个简单易用的分布式负载测试工具Locust特性使用Python编写模拟用户行为的代码,无需繁琐的配置分布式可扩展,能够支持上百万用户自带Web界面不仅能测试web系统,也可以测试其它Locust思想在测... 查看详情

locust压测

...的并发请求。因此单台压力机也能产生数千并发请求数。Locust官网特点:支持Python版本:3.6,3.7,3.8安装方式:pipinstalllocust-ihttps://pypi.tuna.tsinghua.edu.cn/simple案例---一个用户下一步具体要执行什么动作,是随机的,也就是locust会从动作列... 查看详情

locust压测之脚本检查点

...务的压测脚本为例:登录脚本:login.py#-*-encoding:utf-8-*-fromlocustimportHttpLocust,TaskSet,taskimportredeflogin(l): l.head=#头部信息 "Accept":"text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,image/apng,*/*;q=0.8", "Accept-Encoding":"gzip,deflate,br", "Accept-Langu... 查看详情

fasthttplocust怎么安装

ContentsLocust这一款开源性能测试工具。然而,当前在网络上针对Locust的教程极少,不管是中文还是英文,基本都是介绍安装方法和简单的测试案例演示,但对于较复杂测试场景的案例演示却基本没有,因此很多测试人员都感觉难... 查看详情

分布式压测实战步骤(不包含脚本的编写)

 1.关注压测内存和CPU的使用使用分布式压测命令举例:jmeter-n-t/Users/jack/Desktop/remote.jmx-r-l/Users/jack/Desktop/jtl/result.jtl-e-o/Users/jack/Desktop/result2.压测前修改master节点jmeterremote_hosts=XXX.XX.XX.XX:XXXX, XXX.XX.XX.XX:XXXXXX就是slave的IP地址... 查看详情

locust负载测试框架

Locust是一个简单易用的分布式负载测试工具,主要用来对网站进行负载压力测试。以下是github上的仓库地址https://github.com/yileye/locust官网地址:http://locust.io/Locust特性使用Python编写模拟用户行为的代码,无需繁琐的配置分布式可... 查看详情

性能压测工具之locust(代码片段)

Locust是一款基于python语言开发的一款新的性能压测工具,它是以协程(比线程还小)的方式运行。先看一张locust运行图:源码如下:#!/usr/bin/envpython#--coding:utf-8--fromlocustimportHttpLocust,TaskSet,taskimportsubprocessimportjsonimporttimeimportrandomim... 查看详情

2locust压力测试实战

...网首页。用@task() 装饰该方法为一个任务。1表示一个Locust实例被挑选执行的权重,数值越大,执行频率越高。在当前Test()行为下只有一个beigong()任务,所以,这里的权重设置为几,并无影响。WebsiteUser()类用于设 查看详情

python实现性能自动化测试竟然如此简单

...;1.什么是性能自动化测试?2.Python中的性能自动化测试库?locust库二、基础操作1.安装locust安装成功之后,在cmd控制台将会新增一条命令,可输入如下命令查看:2.基本用法三、综合案例演练1.编写自动化测试脚本2.使用命令行运行3... 查看详情

locust框架(初步安装使用)

首先安装locust(利用pip安装)安装前先将pip更新到最新版:python-mpipinstall--upgradepip 更新完成后开始安装locust:python-mpipinstalllocust 再安装request:python-mpipinstallrequests 安装完成后切换到《测试脚本》所在目录,启动性能... 查看详情

java编写jmeter压测脚本

...较多的是接口测试,功能测个差不多后会对部分接口进行压测,采用的是java编写脚本,导入jmeter进行压测。 使用到的jmeter的相关包写一个测试类,继承AbstractJavaSamplerClient    设置请求参数,这些参数在导入进j... 查看详情

locust扩展支持其它协议压测

...160;:xiaobin#@File  :dnsClient.py#@Software:PyCharmimporttimefromlocustimport(TaskSet,task,events,Locust)fromgevent._semaphoreimportSemaphoreimportsocketall_locusts_spawned=Semaphore()all_locusts_spawned.acquire()defon_hatch_complete(**kwargs):all_locusts_spawned.release()events.hatch_comp... 查看详情

websocket压测

...求可能对用多个响应,最好才用request-response;https://docs.locust.io/en/stable/参考:https://blog.csdn.net/u010481688/article/details/890832391)在scripts目录下,执行locust-f***.py--host=http://0.0.0.0:0000(--host测试的http服务的ip和port);2)打开浏览器,如... 查看详情

性能测试利器-locust框架解析

01认识Locust说起性能测试工具,大家肯定想到的都是Jmeter,是的,由于其简单易用、功能强大,已经变成主流的压测工具之一。当需要实现一些高级功能的时候,可以使用Java语言对Jmeter进行扩展。但是很多小... 查看详情

Locust 负载测试脚本出错 - 连接中止。',RemoteDisconnected

】Locust负载测试脚本出错-连接中止。\\\',RemoteDisconnected【英文标题】:ErrorswithLocustloadtestingscripts-Connectionaborted.\',RemoteDisconnectedLocust负载测试脚本出错-连接中止。\',RemoteDisconnected【发布时间】:2020-06-0503:56:55【问题描述】:... 查看详情