秦淮html5响应式网站,asp.net ftp发布网站,网址大全是什么浏览器,网站建设的两个方面二 、自定义用户#xff08;场景#xff09;
一个用户类代表了你系统中的一种用户/场景。当你做一个测试运行时#xff0c;你指定你想模拟的并发用户的数量#xff0c;Locust将为每个用户创建一个实例。你可以给这些类/实例添加任何你喜欢的属性#xff0c;但有一些属性对…二 、自定义用户场景
一个用户类代表了你系统中的一种用户/场景。当你做一个测试运行时你指定你想模拟的并发用户的数量Locust将为每个用户创建一个实例。你可以给这些类/实例添加任何你喜欢的属性但有一些属性对Locust有特殊的意义。
1 .等待时间属性
用户的wait_time方法使得在每个任务执行后引入延迟变得容易。
如果没有指定wait_time一个任务完成后下一个任务就会被执行。
from locust import User, task, betweenclass MyUser(User):taskdef my_task(self):print(executing my_task)wait_time between(0.5, 10) # wait_time constant(3) # 每3秒执行一次任务task任务# wait_time constant_throughput(0.1) # 每10秒执行一次task任务# wait_time constant_pacing(10) # 每10秒执行一次task任务constant: 固定时间的常量 between: 介于最小和最大值之间的随机时间 constant_throughput : 自适应时间确保任务每秒运行最多X次。 constant_pacing 为自适应时间确保任务每X秒运行一次最多 constant_throughput 和 constant_pacing 这两个参数互为倒数。 注意 例如如果你想让Locust在峰值负载下每秒运行500个任务迭代你可以使用wait_time constant_throughput(0.1)用户数为5000。 等待时间只能限制吞吐量而不能启动新的用户来达到目标。因此在我们的例子中如果任务迭代的时间超过10秒吞吐量将小于500。 等待时间是在任务执行后应用的所以如果你有一个高的产卵率/升温你可能会在升温期间最终超过你的目标。 等待时间适用于任务而不是请求。例如如果你指定wait_time constant_throughput(2)并在你的任务中做两个请求你的请求率/RPS将是每个用户4。 2. 自定义任务休眠策略
也可以直接在你的类上声明你自己的wait_time方法。例如下面的User类将睡眠一秒然后是两秒然后是三秒等等。
class MyUser(User):last_wait_time 0def wait_time(self):self.last_wait_time 1return self.last_wait_time...3. 权重和固定计数属性
如果文件中存在一个以上的用户类并且没有在命令行中指定用户类每个类都会生成等量的用户。
你也可以通过传递命令行参数来指定使用同一locust文件中的哪些用户类。
locust -f locust_file.py WebUser MobileUser如果你希望模拟更多的某一类型的用户你可以在这些类别上设置一个权重属性。
比如说网络用户比移动用户多三倍。
class WebUser(User):weight 3...class MobileUser(User):weight 1你也可以设置 fixed_count 属性。
在这种情况下权重属性将被忽略精确计数的用户将被催生, 这些用户会先被生成。
在下面的例子中只有一个AdminUser的实例将被生成以使一些特定的工作与独立于总用户数的请求数的更精确控制。
class AdminUser(User):wait_time constant(600)fixed_count 1taskdef restart_app(self): # 此任务只能生成一次。并且它先生成和最先执行。...class WebUser(User):...4. 主机属性
host属性是一个URL前缀即 “http://google.com”指向要加载的主机。通常情况下这是在Locust的Web用户界面或在命令行中使用–host选项在locust启动时指定的。
如果在用户类中声明了一个主机属性在命令行或网络请求中没有指定–host的情况下它将被使用。
host 是user 类的属性可以直接在类中指定。
5. 任务属性
一个用户类可以使用task装饰器将任务声明为其下的方法但我们也可以使用tasks属性来指定任务下面将详细介绍。
6. 环境属性
对用户正在运行的环境的一个引用。使用它来与环境或它所包含的运行器进行交互。
例如从一个任务方法中停止运行器。
self.environment.runner.quit()如果在一个独立的蝗虫实例上运行这将停止整个运行。如果在工作节点上运行它将停止该特定节点。
7. 启动初始化和停止方法
User和 TaskSets可以声明一个 on_start 方法和/或 on_stop 方法。一个用户在开始运行时将调用它的on_start方法在停止运行时调用它的on_stop方法。对于一个任务集当模拟用户开始执行该任务集时on_start方法被调用而当模拟用户停止执行该任务集时当interrupt()被调用或用户被杀死on_stop被调用。
更多教程更多实战案例请阅读https://edu.csdn.net/course/detail/38449 更多教程更多实战案例请阅读https://edu.csdn.net/course/detail/38449