斗鱼直播间弹幕爬虫实战:WebSocket连接与实时数据采集
2026/6/4 21:42:31
1、创建 任务集 和 任务
2、定义用户类
1、定义任务和任务集(定义一个事务,事务中包含多个接口请求) 2、定义用户类(线程组 用户,控制事务执行)需求:访问 https://www.baidu.com 模拟100人访问
fromlocustimportTaskSet,HttpLocust,task# 1.定义 任务集 和 任务classTaskClass(TaskSet):# TaskClass 表示任务集""""定义任务"""# 访问首页-任务(会被自动调用)@taskdefindex(self):result=self.client.get("/")# 此行代码相当于requests.Session().get()print("响应结果:",result.text)# 打印结果# 2.定义 用户类classUser(HttpLocust):# 定义用户类,继承了 HttpLocust 类# 绑定任务task_set=TaskClass# task_set 属性名不能变; 注意:TaskClass 后,没有 ()# 设置 用户间 最小延迟时间 - 单位 msmin_wait=1000# 设置 用户间 最大延迟时间max_wait=3000# 指定 主机地址host="https://www.baidu.com"自定义的User类继承了 HttpLocust 类, 这个类代表用户, 生成一个实例, 模拟用户发送http请求
task_set: 该属性指向 TaskSet 类, 定义用户的行为
min_wait: 用户执行任务之间等待时间的下界, 单位: 毫秒, 默认值: 1000
max_wait: 用户执行任务之间等待时间的上界, 单位: 毫秒, 默认值: 1000
host: 被测应用的网址, 例如: http://www.baidu.com
weight: 用户被选中的概率, 权重越大, 被选中的机会就越大。 默认值: 10 。
权重——当有多个用户类(线程组)来执行时,通过这个权重来控制不同用户类之间的请求数比例
终端运行命令:
locust -f .\LocustTest\1.py ____________________________________________________________ 参数介绍: -f:用来指定locust文件所在路径 --host:用来指定测试应用的网址 locust -f .\LocustTest\1.py --host=http://example.com使用上面的命令行启动Locust之后, 打开浏览器并访问: http://localhost:8089 (如果你在本地运行Locust)。 可以看到如下界面
参数说明:
设置虚拟用户数100, 每秒启动10个用户, 点击Start swarming 开始运行
界面说明:
三个图标分别是: