python脚本驱动locust执行性能测试,执行方法总结

一、前言
本篇主要讲如何通过Python脚本进行驱动locust做性能测试

二、登录性能脚本

#独立场景性能测试: 用户登录
#需求:用户量100,每秒并发10个

#导入类包
import os
from locust import HttpLocust,task,TaskSet

#定义用户行为类
class UserBehavior(TaskSet):
    #定义执行测试任务的方法:登录
    @task
    def test__login(self):
        user_info = {
            'userName':'testuser',
            'passWord':'pwd,123'
        }
        response = self.client.post('........./login',data =user_info,verify=False )
        if response.status_code == 200:
            print('登录成功')
        else:
            print('登录失败')

#定义站点访问类:访问房车首页
class WebSiteUser(HttpLocust):
    #地址
    host = 'http://xxxx.xxxx.xxxx.com/'
    #制定执行的测试任务
    task_set = UserBehavior
    #设置最大最小等待时间
    max_wait = 5000
    min_wait = 2000

if __name__ == '__main__':
    os.system("locust -f fangche_login.py")

2-1、脚本执行分析
1、如果启动的locust文件名为locustfile.py 并位于当前工作目录中,可以在点击右键-open in terminal,编译器中直接运行该文件,或者通过命令行,执行如下命令:

locust -f test.py --host=https://www.cnblogs.com

上面的脚本中host写在WebSiteUser中,执行代码使用OS模块,可以直接右键运行脚本

os.system(“locust -f fangche_login.py”)

2、如果Locust文件位于子目录下且名称不是locustfile.py,可以使用-f命令启动上面的示例locust文件:

locust -f testscript/load_test.py --host=https://www.cnblogs.com

-f 参数是指定运行的脚本
–host是指定运行项目的host地址,这里用的https://www.cnblogs.com,代码里面get访问的是"/jinjiangongzuoshi",拼接起来就是完整地址了。

3、如果要运行分布在多个进程中的Locust,通过指定-master以下内容来启动主进程 :

locust -f testscript/load_test.py --master --host=https://www.cnblogs.com

4、如果要启动任意数量的从属进程,可以通过-salve命令来启动locust文件:

locust -f testscript/load_test.py --salve --host=https://www.cnblogs.com

5、如果要运行分布式Locust,必须在启动从机时指定主机(运行分布在单台机器上的Locust时不需要这样做,因为主机默认为127.0.0.1)

locust -f testscript/load_test.py --slave --master-host=192.168.0.100 --host=https://www.cnblogs.com

2-2、locust启动
(1) Locust Web界面模式
如果是本地启动,可以直接在浏览器输入http://localhost:8089打开UI界面,如果是其他机器搭建locust服务,则输入该机器的IP+端口即可。启动后可以看到Locust WEB页面,设置并发用户数及每秒请求数后即可开始性能测试。
在这里插入图片描述

在这里插入图片描述

Type:请求类型,即接口的请求方法;
Name:请求路径;
requests:当前已完成的请求数量;
fails:当前失败的数量;
Median:响应时间的中间值,即50%的响应时间在这个数值范围内,单位为毫秒;
Average:平均响应时间,单位为毫秒;
Min:最小响应时间,单位为毫秒;
Max:最大响应时间,单位为毫秒;
Content Size:所有请求的数据量,单位为字节;
reqs/sec:每秒钟处理请求的数量,即QPS;

(2)Locust 命令行无界面模式

locust -f load_test.py --host=https://www.cnblogs.com --no-web --csv=locust -c 10 -r 2 -t 1m

启动参数:

–no-web 表示不使用Web界面运行测试,使用no-web模式。
-c 设置虚拟用户数,即并发用户数。
-r 设置每秒启动虚拟用户数,即每秒请求数。
-t 或–run_time,设置设置运行时间。
–csv 表示运行结果文件名。

  • 0
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
以下是一个使用 Locust API 接口实现阶梯式压测的示例代码: ```python from locust import HttpUser, task, between import random class MyUser(HttpUser): wait_time = between(5, 9) min_users = 10 max_users = 100 step_users = 10 step_time = 5 @task def my_task(self): self.client.get("/") def on_start(self): self.user_count = self.min_users self.set_user_count() def set_user_count(self): self.environment.runner.user_count = self.user_count def on_stop(self): self.user_count = 0 self.set_user_count() def on_step(self, step): if (step + 1) % self.step_time == 0 and self.user_count < self.max_users: self.user_count += self.step_users self.set_user_count() ``` 这个示例代码定义了一个名为 MyUser 的用户类,其中定义了压测任务 my_task,用于模拟用户访问网站的行为。在 on_start 方法中,初始化用户数为最小用户数 min_users,并调用 set_user_count 方法设置 Locust 运行时的用户数。在 on_stop 方法中,停止用户数,并将 Locust 运行时的用户数设置为 0。 在 on_step 方法中,每隔一定时间(由 step_time 参数控制),将用户数增加 step_users(由 step_users 参数控制),并调用 set_user_count 方法,重新设置 Locust 运行时的用户数。 需要注意的是,这个示例代码仅作为演示使用,实际使用时需要根据测试场景和网站实际情况进行调整。同时,需要使用命令行启动 Locust 进行压测,并传递相关参数。具体命令行参数可以参考 Locust 的官方文档。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值