本文分享自天翼云开发者社区《接口性能测试---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脚本编写(一)的更多相关文章

  1. Locust性能测试1 脚本编写与运行

    按照官网的quickstart编写脚本并运行 1  编写脚本 2  locust -f  filepath 启动locust 3 浏览器打开localhost:8089,设置并发用户数和每秒启动用户数 ...

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

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

  3. loadrunner 接口性能脚本编写(Get请求和Post请求)

    前段时间接触了一下loadrunner的接口性能测试,然后尝试了一下手动编写脚本,毕竟录制这种东西,不是每次都能通的,而且录制下来的脚本,通常是有很多其他杂七杂八的请求夹杂在中间,没有达到真正的压测接 ...

  4. Locust 接口性能测试 - 转载一 (后期熟悉实践自己出一套完整的)

    转载大佬   ,.. 另外一篇:https://www.cnblogs.com/imyalost/p/9758189.html记录一下接口性能测试的学习 先熟悉一下概念: Locust是使用Pytho ...

  5. 性能测试二十九:Dubbo框架测试脚本编写

    测试脚本编写 新建一个folder命名为lib,用于存放依赖包 把以下jar全部拷进lib下,并build path 找开发要 真正要测试的以jar包形式存在的代码的类, 打开看一下 放到lib并bu ...

  6. 性能测试学习第九天_脚本编写以及controller场景

    创建java脚本 环境配置: 安装jdk(lr11最高支持java1.6) 配置环境变量 在lr选择java Vuser协议 脚本结构: 一般在init中编写初始化脚本,在action中编写业务流程, ...

  7. Jmeter Web 性能测试入门 (四):一个小实例带你学会 Jmeter 脚本编写

    测试场景: 模拟并发100个user,在TesterHome 站内搜索VV00CC 添加线程组 添加HTTP信息头管理器 添加HTTP Sampler 填写HTTP Sampler中的信息 添加监听器 ...

  8. [性能测试] locust学习-基础篇

    在本文中,我将介绍一个名为Locust的性能测试工具.我将从Locust的功能特性出发,结合实例对Locust的使用方法进行介绍. 概述 Locust主要有以下的功能特性: 在Locust测试框架中, ...

  9. LoadRunner脚本编写(转)

    性能测试工程师要懂代码么?答案是必须的.好多测试员认为在loadrunner中编写脚本很难很牛X ,主要是大多测试人员并未做过开发工作,大学的那点程序基础也忘记的差不多了.还有非计算机专业出身的测试员 ...

  10. Jmeter+jenkins接口性能测试平台实践整理(一)

    最近两周在研究jmeter+Jenkin的性能测试平台测试dubbo接口,分别尝试使用maven,ant和Shell进行构建,jmeter相关设置略. 一.Jmeter+jenkins+Shell+t ...

随机推荐

  1. http: server gave HTTP response to HTTPS client

    出现这问题的原因是:Docker自从1.3.X之后docker registry交互默认使用的是HTTPS,但是搭建私有镜像默认使用的是HTTP服务,所以与私有镜像交时出现以上错误. 这个报错是在本地 ...

  2. 浅析Flie类getAbsolutePath()方法

    开发中,常常需要上传文件,并将文件存于远程服务器(如minio)或者本地,当存于本地时对存储路径的指定是常见的问题. 当然,你可以在本地写死静态资源路径,如"D:\static\fileUp ...

  3. java 中的Unsafe

    在阅读AtomicInteger的源码时,看到了这个类:sum.msic.Unsafe,之前从没见过.所以花了点时间google了一下. Unsafe的源码:http://www.docjar.com ...

  4. npm run build命令运行后报错 npm ERR! missing script: build

    打开vue项目中的package.json查看一下script的设置,是否如下图 如果是的话,那么运行打包命令的时候要运行 npm run build:prod --report

  5. tmux之常见问题

    1. 使用tmux ls的时候显示错误 failed to connect to server: Connection refused 解决: 查看进程是否存在 ps -aux|grep tmux 发 ...

  6. spring 使用 事件机制

    概述 在编写代码的时候,比如我删除一篇文章,这个时候,如果我想做些额外的逻辑,这是就需要修改删除部分的代码.spring 提供了事件机制更优雅的实现这个,用户只需要实现事件监听即可. 代码实现 注入发 ...

  7. fiddler:The system proxy was changed.Click to reenable capturing

    前情 最近在开发一个老旧项目,由于本地环境已难跑起,于是想通过代理线上代码进行功能开发. 坑位 启动fiddler后,fiddler菜单栏会警告,大概意思是代理被更改了,点击重启fillder代理,但 ...

  8. electron项目icon显示异常

    前情 公司有个桌面端项目是基于Electron开发的. 坑 构建打包好的项目在桌面和任务栏上图标显示正常,但是在任务栏弹框上左上角的图标确不显示 Why? 经过反复搜索,网上有文章说如果ico图标过大 ...

  9. 【Amadeus原创】docker安装TOMCAT,并运行本地代码

    1,docker 下载tomcat [root@it-1c2d ~]# docker pull tomcat ... [root@it-1c2d ~]# docker images REPOSITOR ...

  10. shell 将文件内容读取到 数组中

    #!/bin/bash prod_file=/home/vmuser/linbo/kettleDemo/job/test/CA-20201224.csv test_file=/home/vmuser/ ...