searchusermenu
  • 发布文章
  • 消息中心
点赞
收藏
评论
分享
原创

接口性能测试---locust脚本编写(一)

2023-04-24 06:46:02
160
0

一、安装

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服务

 

 

 

0条评论
0 / 1000
丁****乐
1文章数
0粉丝数
丁****乐
1 文章 | 0 粉丝
丁****乐
1文章数
0粉丝数
丁****乐
1 文章 | 0 粉丝
原创

接口性能测试---locust脚本编写(一)

2023-04-24 06:46:02
160
0

一、安装

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服务

 

 

 

文章来自个人专栏
测试工具
1 文章 | 1 订阅
0条评论
0 / 1000
请输入你的评论
0
0