pythonlocust使用方法_Python3中性能测试工具Locust安装使用

Locust安装使用:

安装:

python3中  ---> pip3 install locust

验证是否安装成功---> 终端中输入 locust --help  显示帮助信息表示安装成功

大并发量测试时,建议在linux系统下进行;

启动:

终端中--->进入到代码目录: locust -f xxxoo.py --host=xxxxx.com

-f       指定性能测试脚本文件

-host 被测试应用的URL地址【如果不填写,读取继承(HttpLocust)类中定义的host】

通过浏览器访问:http://localhost:8089(Locust启动网络监控器,默认为端口号为:8089)

777ceef33d196b0056cfcd98b5d2a8d2.png

Number of users to simulate 设置虚拟用户数

Hatch rate(users spawned/second)每秒产生(启动)的虚拟用户数 , 点击Start swarming 按钮,开始运行性能测试。

no-web模式运行启动

终端中-->进入代码目录:>> locust -f xxoo.py  --no-web -c10  -r2 -t 1m

启动参数:

--no-web   表示不使用web界面运行测试。  -c 设置虚拟用户数 。  -r 设置每秒启动虚拟用户数  。 -t  设置运行时间.。

no-web模式运行将测试结果保存到当前.py目录中:locust -f xxoo.py --csv=起一个名字

例如:

locust -f test3.py --csv=foobar --no-web -c2 -t10s

分布式压测:

主从机中必须运行相同的测试代码(把主机中代码复制一份到多个从机中),主机负责收集测试数据,从机进行施压测试;

在主机终端中-->进入代码目录:>> locust -f xxxoo.py --master

从机中终端中-->进入代码目录:>> locust -f  xxxoo.py --slave --master-host=主机ip

分布式压测no-web模式保存结果到主机中当前运行.py的目录中:>>locust -f test2.py  --csv=foobartt --no-web -c2 -t10s --master

locust --help  查看帮助信息

概述

Locust寓意蝗虫,蝗虫过境,寸草不生;而Locust工具生成并发请求就和一大群蝗虫一般,向我们的被测系统发起攻击,以此测试系统在高并发压力下是否能正常运转。

Locust测试框架中,采用python进行开发,对常见的http(s)协议的系统,Locust采用request库作为客户端,在发请求时和request库使用方法一样。

在模拟并发时,Locust采用协程、非阻塞IO来实现网络层的并发请求,因此单台压力机也能产生数千并发请求,再加上对分布式运行的支持,Locust能在使用较少压力机的前提下支持极高的并发数测试。

实例脚本

伪代码:

from locust importHttpLocust, TaskSet, task

classWebsiteTasks(TaskSet):

defon_start(self): #进行初始化的工作,每个Locust用户开始做的第一件事

payload ={

"username": "test_user",

"password": "123456",

}

header ={

"User-Agent":"Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/58.0.3029.110 Safari/537.36",

}

self.client.post("/login",data=payload,headers=header)#self.client属性使用Python request库的所有方法,调用和使用方法和requests完全一致;

@task(5) #通过@task()装饰的方法为一个事务,方法的参数用于指定该行为的执行权重,参数越大每次被虚拟用户执行的概率越高,默认为1

defindex(self):

self.client.get("/")

@task(1)

defabout(self):

self.client.get("/about/")

classWebsiteUser(HttpLocust):

host ="https://github.com/" #被测系统的host,在终端中启动locust时没有指定--host参数时才会用到task_set =WebsiteTasks #TaskSet类,该类定义用户任务信息,必填。这里就是:WebsiteTasks类名,因为该类继承TaskSet;

min_wait = 5000 #每个用户执行两个任务间隔时间的上下限(毫秒),具体数值在上下限中随机取值,若不指定默认间隔时间固定为1秒max_wait = 15000

伪代码中对https://github.com/网站的测试场景,先模拟用户登录系统,然后随机访问首页/和/about/,请求比例5:1,并且在测试过程中,两次请求的间隔时间1-5秒的随机值;

on_start方法,在正式执行测试前执行一次,主

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值