接口性能测试---locust脚本编写(一)
本文分享自天翼云开发者社区《接口性能测试---locust脚本编写(一)》,作者:丁****乐
一、安装
locust是用python编写的一款开源接口性能测试工具,以python3为例,直接使用pip安装即可,pip3 install locust。安装完成之后可使用locust --version查看对应的版本。

二、脚本编写
通过编写python脚本模拟用户行为进行性能测试,locust python脚本一种比较常见的写法是将脚本分成三部分,第一部分进行相关导入、第二部分进行用户行为定义,第三部分进行用户定义。以一个例子进行讲解

首行进行了包导入,导入了常用的类、装饰器和函数。
Behave定义了进行用户行为定义,声明了两个操作,一个是get请求,一个是post请求。
TestUser定义了用户,tasks是用户要操作的行为,wait_time是用户行为之间的间隔时间,host是服务地址(可以不在这里填写,后面进行讲解)。
1、用户行为定义
类定义:需要定义继承自TaskSet的类,其他的还可以有SequentialTaskSet,且该类不可以重写__init__方法;
行为定义:用函数进行用户行为定义,该函数用task装饰器进行装饰,task标识任务权重,值越大权重越大。可以定义多个函数,模拟多个行为。self.client表示当前用户,可以通过self.client进行各种请求操作。
1)请求发送
self.client本质上是一个requests.Session对象,支持常见的请求方法,如get/post/put/delete。涉及header,cookie,请求参数的处理等请参考python requests库。
2)断言设置
locust默认2XX的返回状态码是正确响应,如需自定义断言设置可通过在请求中设置catch_resoponse=True捕获返回值进行处理,对返回值做校验后调用success和failure函数标记响应结果是否正确。如下,只有当返回状态码是302的时候认为测试结果正确,否则提示status error错误

3)预处理函数
on_start函数是预留的用于进行初始化操作的函数,可以根据需要进行定义,该函数只有在第一次运行的时候才会进行调用。比较常见的如登录操作,关闭https证书校验等
2、用户定义
定义用户类需要继承HttpUser或者FastHttpUser;
tasks属性是一个列表,用于定义用于行为,可以将定义好的用户行为类加进去;
wait_time是只用户两个请求之间的时间间隔,常用的函数有随机时间间隔between,固定时间间隔constant;
host用于指定被测服务地址,可在脚本中进行设置,也可以在脚本运行时再设置;
编写完成之后可以通过locust -f script_name.py命令运行调试,通过http://loccalhost:8089打开默认的web服务。
接口性能测试---locust脚本编写(一)的更多相关文章
- Locust性能测试1 脚本编写与运行
按照官网的quickstart编写脚本并运行 1 编写脚本 2 locust -f filepath 启动locust 3 浏览器打开localhost:8089,设置并发用户数和每秒启动用户数 ...
- Loadrunner Webservice接口性能测试脚本编写优化总结
本文主要介绍使用Loadrunner Webservice接口性能测试脚本编写及优化总结. 1.Webservice协议脚本编写流程 下面介绍使用Loadrunner 11调用Webservice接口 ...
- loadrunner 接口性能脚本编写(Get请求和Post请求)
前段时间接触了一下loadrunner的接口性能测试,然后尝试了一下手动编写脚本,毕竟录制这种东西,不是每次都能通的,而且录制下来的脚本,通常是有很多其他杂七杂八的请求夹杂在中间,没有达到真正的压测接 ...
- Locust 接口性能测试 - 转载一 (后期熟悉实践自己出一套完整的)
转载大佬 ,.. 另外一篇:https://www.cnblogs.com/imyalost/p/9758189.html记录一下接口性能测试的学习 先熟悉一下概念: Locust是使用Pytho ...
- 性能测试二十九:Dubbo框架测试脚本编写
测试脚本编写 新建一个folder命名为lib,用于存放依赖包 把以下jar全部拷进lib下,并build path 找开发要 真正要测试的以jar包形式存在的代码的类, 打开看一下 放到lib并bu ...
- 性能测试学习第九天_脚本编写以及controller场景
创建java脚本 环境配置: 安装jdk(lr11最高支持java1.6) 配置环境变量 在lr选择java Vuser协议 脚本结构: 一般在init中编写初始化脚本,在action中编写业务流程, ...
- Jmeter Web 性能测试入门 (四):一个小实例带你学会 Jmeter 脚本编写
测试场景: 模拟并发100个user,在TesterHome 站内搜索VV00CC 添加线程组 添加HTTP信息头管理器 添加HTTP Sampler 填写HTTP Sampler中的信息 添加监听器 ...
- [性能测试] locust学习-基础篇
在本文中,我将介绍一个名为Locust的性能测试工具.我将从Locust的功能特性出发,结合实例对Locust的使用方法进行介绍. 概述 Locust主要有以下的功能特性: 在Locust测试框架中, ...
- LoadRunner脚本编写(转)
性能测试工程师要懂代码么?答案是必须的.好多测试员认为在loadrunner中编写脚本很难很牛X ,主要是大多测试人员并未做过开发工作,大学的那点程序基础也忘记的差不多了.还有非计算机专业出身的测试员 ...
- Jmeter+jenkins接口性能测试平台实践整理(一)
最近两周在研究jmeter+Jenkin的性能测试平台测试dubbo接口,分别尝试使用maven,ant和Shell进行构建,jmeter相关设置略. 一.Jmeter+jenkins+Shell+t ...
随机推荐
- (Redis基础教程之十一) 如何使Redis中的Key过期
介绍 Redis是一个开源的内存中键值数据存储.默认情况下,Redis密钥是_永久性_的,这意味着Redis服务器将继续存储它们,除非手动将其删除.但是,在某些情况下,您已经设置了密钥,但是您知道要在 ...
- Nuxt.js 应用中的 webpack:done 事件钩子
title: Nuxt.js 应用中的 webpack:done 事件钩子 date: 2024/11/26 updated: 2024/11/26 author: cmdragon excerpt: ...
- 用文字“画出”状态图:用 AI+Mermaid.js 解决对象状态变化的处理问题
什么是状态图 状态图用于描述对象在其生命周期内的状态变化及其处理,例如业务办理流程.病情处置等. 什么是Mermaid Mermaid.js是一个开源项目,它允许你通过简单的语法来绘制图表. 无论你是 ...
- 如何在原生鸿蒙中进行RN的断点调试
方式一 chrome devtools的方式 第一步:metro的方式加载bundle 先设置好原生这边的代码,然后记得打开RN服务器. 注意这个enableDebugger的值一定要设置为true ...
- Java基础面试:关键字与注释
Java 中的关键字 什么是关键字 Java 关键字是 Java 语言中预先定义好的.具有特殊含义的标识符.这些标识符在程序中有固定的用途,不能用作变量名.方法名或类名.Java 中共有 53 个特殊 ...
- 金仓数据库数据迁移实战:从MySQL到KES的顺利迁移
今天我们将开始实践金仓数据库的数据迁移功能.在此之前,我们一直使用的是简化版的 Docker 镜像,这个版本并没有集成可视化操作工具.因此,为了更方便地进行后续的操作,我们需要额外下载一个 Windo ...
- C#向JAVA发送form-data文件问题处理方案
前言 和上一篇文章一样,.NET 和 JAVA之间的接口请求又遇到了新问题 我们有一个用来接收文件的接口,外部把文件流.文件名.目录,传进来,我们系统把生成的附件ID反回去,接口为POST-form- ...
- (三)Springboot + vue + 达梦数据库构建RBAC权限模型前后端分离脚手架保姆级教程(前端项目)
XX后台管理系统 1.技术选型与环境要求 1.1 项目技术选型 1.1.1 前端技术 HTML 5 CSS 3 lavaScript Vue Element UI 1.1.2 后端技术 SpringB ...
- Element Plus组件el-select回显异常
前情 公司有经常需要做一些后台管理页面,我们选择了Element Plus,它是基于 Vue 3,面向设计师和开发者的组件库,是Vue框架生态中比较火的UI组件库,组件库丰富易用,组件链接:一个 Vu ...
- 树莓派下,打包发布能在树莓派中运行的Qt5程序和其运行环境
目标:把Qt程序部署到新的树莓派中. 平台:树莓派 工作:把Qt程序和运行环境分别打包 一.程序打包过程如下,仅供参考: 1.新建文件夹A,把程序拷贝到文件夹中. 2.使用ldd获取依赖关系,并复制到 ...