📝 面试求职: 「面试试题小程序」 ,内容涵盖 测试基础、Linux操作系统、MySQL数据库、Web功能测试、接口测试、APPium移动端测试、Python知识、Selenium自动化测试相关、性能测试、性能测试、计算机网络知识、Jmeter、HR面试,命中率杠杠的。(大家刷起来…)
📝 职场经验干货:
命令行参数
当你使用locust命令启动测试时,可以利用一系列命令行参数进行配置。
-f, --locustfile:指定要运行的Locust文件路径,默认是locustfile.py。
locust -f my_locustfile.py
--headless:无界面模式运行Locust,适用于CI/CD管道或其他自动化场景。
locust -f my_locustfile.py --headless -u 100 -r 10 -t 1m
其中,-u表示用户数,-r表示每秒启动用户的速率,-t表示测试持续时间。
-u, --users:指定并发用户的总数。
-r, --spawn-rate:指定每秒启动用户的速率。
-t, --run-time:指定测试运行的时间长度(例如,1h30m表示1小时30分钟)。
--host:指定被测试的目标主机URL。
--web-host:更改Web UI监听的IP地址,默认为127.0.0.1。
--web-port:更改Web UI监听的端口号,默认为8089。
在脚本中的配置
除了命令行参数外,还可以在Locust脚本内部配置一些行为。
wait_time属性
用于定义虚拟用户在任务之间的等待时间。可以是一个固定值或一个范围,也可以实现更复杂的逻辑。
from locust import HttpUser, task, between
class WebsiteUser(HttpUser):
wait_time = between(1, 5) # 每次任务之间随机等待1到5秒
tasks属性
用于指定用户执行的任务集合。可以通过给不同的任务分配权重来调整它们被执行的概率。
@task(3) # 这个任务将被选择的概率是其他未标记任务的三倍
def high_priority_task(self):
pass
@task(1)
def low_priority_task(self):
pass
自定义客户端
默认情况下,Locust使用HttpSession作为客户端,但你也可以自定义客户端以适应特殊需求,比如支持其他协议。
from locust import HttpUser, task
class MyUser(HttpUser):
def __init__(self, *args, **kwargs):
super(MyUser, self).__init__(*args, **kwargs)
# 可以在这里初始化自定义客户端
其他有用的配置
catch_response:允许你在请求块内捕获响应并根据条件标记成功或失败。
with self.client.get("/", catch_response=True) as response:
if response.content.decode() != "expected content":
response.failure("Content did not match")
on_start 和 on_stop 方法:分别在每个虚拟用户开始和结束时调用,适合做初始化和清理工作。
def on_start(self):
"""用户开始前"""
pass
def on_stop(self):
"""用户结束后"""
pass
这些只是Locust众多特性和配置的一部分。通过灵活运用这些选项,你可以更加精确地模拟真实的用户行为,并对系统进行有效的负载测试。希望这些信息对你有所帮助!如果有任何问题,请随时提问。
最后: 下方这份完整的软件测试视频教程已经整理上传完成,需要的朋友们可以自行领取【保证100%免费】