一、Locust工具介绍
1.概述
Locust是一款易于使用的分布式负载测试工具,完全基于事件,使用python开发,即一个locust节点也可以在一个进程中支持数千并发用户,不使用回调,通过gevent使用轻量级过程(即在自己的进程内运行)。
2.常见性能测试工具比较
3.环境搭建
源码安装:下载源码https://github.com/locustio/locust,进入文件夹执行安装命令:python setup.py install
pip安装:pip install locust
二、Locust常用类和方法
三、Locust常用参
四、案例
1.参数化
# -*- coding: utf-8 -*- import os,random from locust import TaskSet, task,HttpUser, between #任务类 class Testlocust(TaskSet): def on_start(self): self.login_headers={'x-client-id': 'xxxxxx'} #头文件 self.data=[ { "account_name": "登录账号1", "user_name": "登录账号1", "hashed_password": "登录密码1" }, { "account_name": "登录账号2", "user_name": "登录账号2", "hashed_password": "登录密码2" }, { "account_name": "登录账号3", "user_name": "登录账号3", "hashed_password": "登录密码3" } ] #登录账号密码 print("------on start------") @task() def userlogin(self): r = self.client.post(url='/v1/auth/users/login', headers=self.login_headers, json=random.choice(self.data),name='登录',verify=False) #使用choice方法参数化随机登录 assert r.status_code == 200 and r.json()['status']==0 #登录断言 def on_stop(self): print("------on stop------") #用户类 class WebsiteUser(HttpUser): #locust1.0版本以前是HttpLocust tasks = [Testlocust] #locust1.0版本以前是task_set=Testlocust host = 'https://xxxxxx' #被测主机地址 wait_time = between(min_wait=1,max_wait=5) #任务之间的等待时间 if __name__ == "__main__": os.system("locust -f locust_XX.py") #执行locust脚本