当前位置: 首页 > news >正文

摄影学校网站模板性能优化工具

摄影学校网站模板,性能优化工具,网站建设的常用技术,汽车网站建设规划书​ TaskSets是一种结构化测试分层网站/系统的方法。你可以在这里阅读更多关于它的信息。 1.TaskSet class ​ 如果你正在对一个以分层方式构建的网站进行性能测试,有章节和子章节,以同样的方式构建你的负载测试可能是有用的。 ​ 为了这个目的&#x…

​ TaskSets是一种结构化测试分层网站/系统的方法。你可以在这里关于它的信息。

1.TaskSet class

​ 如果你正在对一个以分层方式构建的网站进行性能测试,有章节和子章节,以同样的方式构建你的负载测试可能是有用的。

​ 为了这个目的,Locust提供了TaskSet类。它是一个任务的集合,将被执行,就像直接在用户类上声明的那些任务。

注意:

任务集是一个高级功能,只是很少有用。大多数时候,你最好使用常规的 Python 循环和控制语句来实现同样的事情。也有一些问题,最常见的是忘记调用self.interrupt()

from locust import User, TaskSet, constantclass ForumSection(TaskSet):wait_time = constant(1)@task(10)def view_thread(self):pass@taskdef create_thread(self):pass@taskdef stop(self):self.interrupt()class LoggedInUser(User):wait_time = constant(5)tasks = {ForumSection:2}@taskdef my_task(self):pass

一个任务集也可以使用@task装饰器直接内联到User/TaskSet类下。

class MyUser(User):@taskclass MyTaskSet(TaskSet):...

一个任务集类的任务可以是其他的任务集类,允许它们嵌套任何数量的级别。这使得我们可以定义一种行为,以一种更真实的方式模拟用户。

例如,我们可以定义具有以下结构的TaskSets。

- Main user behaviour- Index page- Forum page- Read thread- Reply- New thread- View next page- Browse categories- Watch movie- Filter movies- About page

当一个正在运行的用户线程选择一个TaskSet类来执行时,这个类的实例将被创建,然后执行将进入这个TaskSet。

​ 然后发生的事情是,TaskSet的一个任务将被选中并执行,然后线程将睡眠一个由User的wait_time函数指定的持续时间(除非在TaskSet类上直接声明了一个wait_time函数,在这种情况下,它将使用该函数),然后从TaskSet的任务中挑选一个新任务,再次等待,如此循环。

​ TaskSet实例包含一个对用户的引用 - self.user。它也有一个指向其用户的客户端属性的快捷方式。所以你可以使用self.client.request()进行请求,就像你的任务直接定义在一个HttpUser上一样。

2. 终断 TaskSet

​ 关于TaskSets的一个重要的事情是,它们永远不会停止执行它们的任务,并把执行权交还给它们的父用户/TaskSet,自己。这必须由开发者通过调用TaskSet.interrupt()方法来完成。

interrupt(self, reschedule=True)
# 中断任务集并将执行控制权交还给父任务集。
# 如果reschedule为True(默认),父用户将立即重新安排,并执行一个新任务。

在下面的例子中,如果我们没有调用self.interrupt()的停止任务,模拟用户一旦进入论坛的任务集,就永远不会停止运行任务。

class RegisteredUser(User):@taskclass Forum(TaskSet):@task(5)def view_thread(self):pass@task(1)def stop(self):self.interrupt()@taskdef frontpage(self):pass

使用中断函数,我们可以-与任务加权一起–定义一个模拟用户离开论坛的可能性有多大。

3. TaskSet和User中的任务之间的区别

​ 与直接驻留在用户下的任务相比,驻留在 TaskSet 下的任务的一个区别是,它们在执行时被传递的参数(对于用 @task decorator 声明为方法的任务来说,是对 TaskSet 实例的引用,而不是对用户实例的引用。用户实例可以通过 TaskSet.user 从 TaskSet 实例中被访问。TaskSets 还包含一个方便的客户属性,它指的是 User 实例上的客户属性。

4. 引用用户实例,或父任务集实例

一个TaskSet实例的属性user将指向它的User实例,而属性parent则指向它的父任务集实例。

5. 标签和TaskSet

​ 你可以使用@tag装饰器来标记TaskSets,方法与普通任务类似,但有一些细微差别值得一提。给一个TaskSet打上标签,将自动把标签应用到该任务集的所有任务中。

​ 此外,如果你在一个嵌套的TaskSet中标记一个任务,即使这个TaskSet没有被标记,Locust也会执行这个任务。

6. SequentialTaskSet 类

​ SequentialTaskSet是一个任务集,其任务将按照它们被声明的顺序执行。可以在一个任务集中嵌套SequentialTaskSets,反之亦然。

例如,下面的代码将按顺序请求URLs /1-/4,然后再重复。

def function_task(taskset):taskset.client.get("/3")class SequenceOfTasks(SequentialTaskSet):@taskdef first_task(self):self.client.get("/1")self.client.get("/2")# 您仍然可以使用 tasks 属性来指定任务列表tasks = [function_task]@taskdef last_task(self):self.client.get("/4")

注意,你不需要SequentialTaskSets来按顺序做一些请求。
通常在一个任务中做整个用户流会更容易。

更多教程,更多实战案例,请阅读:https://edu.csdn.net/course/detail/38449

在这里插入图片描述

更多教程,更多实战案例,请阅读:https://edu.csdn.net/course/detail/38449

http://www.hkea.cn/news/26290/

相关文章:

  • 国家企业信息公示网(广东)海南快速seo排名优化
  • 高端网站设计 上海徐州seo排名公司
  • 泰安网站建设公司排名石家庄最新消息
  • 域名只做邮箱没网站要备案吗常见的网络推广方式包括
  • 昆山建设局网站360搜索首页
  • 正常做网站多少钱无锡网站制作无锡做网站
  • php做网站csdn网站seo公司哪家好
  • 今日头条建站工具何鹏seo
  • wordpress 培训模板优化落实疫情防控新十条
  • 关于做外汇现货的网站太原整站优化排名外包
  • 星悦做任务网站是新网站百度收录
  • 十大营销网站seo关键词查询工具
  • 怎么查询网站所有关键词靠谱的广告联盟
  • 超酷的网站设计磁力搜索引擎
  • 网站建设写程序用什么软件成都疫情最新消息
  • 做网站需要什么资金2022今天刚刚发生地震了
  • 建设网站费用主要包括哪些google商店
  • 专注邯郸建设手机网站贴吧友情链接在哪
  • 网站备案拍照背景志鸿优化网官网
  • 网站百度知道怎么做推广网站搜索引擎优化的方法
  • 网站建设注意哪些问题sem和seo是什么职业岗位
  • 一_建设网站前的市场分析奶茶软文案例300字
  • 做网站智能工具江阴企业网站制作
  • 怎么看网站有没有做推广大数据营销系统多少钱
  • 广东工厂搜索seoseo平台优化服务
  • 网站开发平台 eclipseseo网站推广案例
  • 什么网站做调查能赚钱关键词优化报价推荐
  • 网站开发职业认知小结开发一个app平台大概需要多少钱?
  • 装修公司全包项目seo搜索引擎实训心得体会
  • 爱站网是干什么的长沙关键词排名首页