①tag( *tags)
---->>装饰器,用于使用给定的tag 名进行标记任务 和 TaskSet
可以将测试限定仅执行使用–tag命令行参数提供的任何标签标记的任务。
不明白的小伙伴,可以看一下这个栗子:
# -*- coding: utf-8 -*- """ @ auth : Carl_奕然 @ time : 2022-06-23 """ class ForumPage(TaskSet): #设置tag标签 @tag('thread') #设置权重值 @task(100) def read_thread(self): pass @tag('thread') @tag('post') @task(7) def create_thread(self): pass @tag('post') @task(22) def comment(self): pass
class SequentialTaskSet(*args, **kwargs)
引用官网原话:
1、Class defining a sequence of tasks that a User will execute. 2、Works like TaskSet, but task weight is ignored, and all tasks are executed in order. Tasks can either be specified by setting the tasks attribute to a list of tasks, or by declaring tasks as methods using the @task decorator. The order of declaration decides the order of execution. 3、It’s possible to combine a task list in the tasks attribute, with some tasks declared using the @task decorator. The order of declaration is respected also in that case.
同样,小鱼来个中文翻译版的:
1、定义用户将要执行的任务序列的类。 2、像TaskSet一样工作,但是忽略任务权重,按顺序执行所有任务。可以通过将task属性设置为任务列表来指定任务,也可以使用@task装饰器将任务声明为方法。声明的顺序决定执行的顺序。 3、可以将task属性中的任务列表与使用@task装饰器声明的某些任务合在一起。同时需要遵循声明的顺序。
7.2 类及用法
① propertyclient
---->> 是TaskSet 的client的一个"快捷方式"
②on_start()
---->>表示开始运行TaskSet
③on_stop()
---->>表示停止运行TaskSet
④interrupt(reschedule=True)
---->>默认为True,父级用户将立即重新安排并执行新任务。
中断TaskSet并将任务移交给父TaskSet。
⑤property user
---->>创建TaskSet 实例
⑥wait_time()
---->> 设置等待时间间隔,单位是 秒,可以对单个TaskSet 设置;
例如:
# -*- coding: utf-8 -*- """ @ auth : Carl_奕然@ time : 2022-06-23 """ from locust import TaskSet,between class Task(TaskSet): #设置等待时间间隔为2~15秒 wait_time = bwtween(2,15)
⑦property parent
---->> 此TaskSet 的父TaskSet实例。
⑧schedule_task(task_callable, first=False)
---->>将任务添加到用户的任务执行队列。
---->>task_callable:要计划的用户任务
---->>first:可选参数,为True,则放在任务队列的首位
①between(min_wait, max_wait)
---->> 返回一个函数,在min_wait 与 max_wait之间返回一个随机数。
例如:
# -*- coding: utf-8 -*- """ @ auth : Carl_奕然@ time : 2022-06-23 """ class TestUser(User): #每个任务等待3秒~15.9秒 wait_time = between(3.0,15.9)
②constant(wait_time)
---->>返回一个仅返回有wait_time参数指定的数字的函数
例如:
# -*- coding: utf-8 -*- """ @ auth : Carl_奕然@ time : 2022-06-23 """ class TestUser(User): wait_time = constant(5)
③constant_pacing(wait_time)
---->>返回一个函数,该函数将跟踪任务的运行时间,并且每次调用该函数时,它将返回一个等待时间,该等待时间将使任务执行之间的总时间等于wait_time参数指定的时间。
例如:
# -*- coding: utf-8 -*- """ @ auth : Carl_奕然@ time : 2022-06-23 """ class MyUser(User): wait_time = constant_pacing(1) @task def my_task(self): time.sleep(random.random())
解析:
1、无论任务执行时间如何,任务总是每秒执行一次;
2、如果任务执行超过指定的wait_time,则在开始下一个任务之前等待将为 0。
定义解析:
----->>用于执行web请求和在请求之间保留 cookie的类。
记录每个请求,以便Locust可以显示统计信息。
这是python-reques的reques.Session 的扩展版,大多数情况下,工作原理都相同。
每次发送请求的方法带两个可选参数,这是locust的特性,并且这些参数在python-requests中是不存在的。
参数解析:
・ name :可选,可以指定为在Locust的统计信息中用作标签,而不是URL路径。
・ catch_response :可选布尔型参数,如果设置了该参数,则可用于发出请求,以返回上下文管理器以用作with语句的参数。
>>>>即使响应代码正常(2xx),也可以根据响应的内容将请求标记为失败。相反的方法也可行,即使没有响应代码(即500或404),也可以使用catch_response来捕获请求,然后将其标记为成功。
①init
定义解析:
---->>初始化。
格式如下:
__init__(base_url,request_success,request_failure,* args,** kwargs)
②delete
定义解析:
---->>发送一个DELETE请求。返回Response对象。
格式如下:
delete(url,** kwargs)
参数解析:
・ url :新Request对象的URL 。
・ kwargs :可选参数。
返回类型:
・ requests.Response
③get
定义解析:
---->>发送get请求。返回Response对象。
格式如下:
get (url,** kwargs)
参数解析:
・ url :新Request对象的URL 。
・ kwargs :可选参数。
返回类型:
・ requests.Response
④head
定义解析:
---->>发送一个head请求。返回Response对象。
格式如下:
head (url,** kwargs)
参数解析:
・ url :新Request对象的URL 。
・ kwargs :可选参数。
返回类型:
・ requests.Response
⑤options
定义解析:
---->>发送一个options请求。返回Response对象。
格式如下:
options (url,** kwargs)
参数解析:
・ url :新Request对象的URL 。
・ kwargs :可选参数。
返回类型:
・ requests.Response
⑥patch
定义解析:
---->>发送一个patch请求。
返回Response对象。
格式如下:
options (url,data = None,** kwargs)
参数解析:
・ url :新Request对象的URL 。
・ data :可选,字典,元组列表,字节或文本文件等。
・ kwargs :可选参数。
返回类型:
・ requests.Response
⑦post
定义解析:
---->>发送一个POST请求。返回Response对象。
格式如下:
post (url,data = None,json = None,** kwargs)
参数解析:
・ url :新Request对象的URL 。
・ data :可选字典,元组列表,字节或文本文件等。
・ json :发送json格式。
・ kwargs :可选参数。
返回类型:
・ requests.Response
⑧put
定义解析:
---->>发送一个PUT请求。
返回Response对象。
格式如下:
put (url,data = None,** kwargs)
参数解析:
・ url :新Request对象的URL 。
・ data :可选字典,元组列表,字节或文本文件等。
・ kwargs :可选参数。
返回类型:
・ requests.Response
⑨request
定义解析:
---->>构造并发送requests.Reuqest。
返回requests.Response对象。
格式如下:
request (method,url,name = None,catch_response = False,** kwargs)
参数解析:
・ method :新Request对象的方法 。
・ url :新Request对象的URL 。
・ name :可选,可以指定为在Locust的统计信息中用作标签,而不是URL路径。
・ catch_response :可选布尔型参数,如果设置了该参数,则可用于发出请求,以返回上下文管理器以用作with语句的参数。
・ kwargs :可选参数。
・ params :可选,在查询字符串中发送的字典或字节请求数据。
・ data :可选,发送的字典或字节请求数据。
・ head :可选,发送的HTTP表头信息。
・ cookies :可选,发送的CookieJar或Dict信息。
・ files :可选,文件名,。
・ auth :可选,认证信息。
・ timeout :可选,超时时间,秒为单位。
・ allow_redirects :可选,默认情况下设置为True。
・ proxies :可选,字典到代理URL的映射协议。
・ stream :可选,是否立即下载响应内容。默认为False。
・ verify :可选,如果为True,将验证SSL证书。也可以提供CA_BUNDLE路径。
・ cert :可选,如果为String,则为ssl客户端证书文件(.pem)的路径。如果是元组,(“证书”,“密钥”)配对。
---->>该类位于python的request库中,用法发送HTTP请求的。
class Response
①apparent_encoding
定义解析:
---->>由chardet库提供。
②close()
定义解析:
---->>关闭,一旦调用此方法,raw就不会再次访问基础对象。
③content
定义解析:
---->>响应内容,以字节为单位。
④cookies
定义解析:
---->>服务器发送的回的Cookie的CookieJar。
格式如下:
cookies = None
⑤elapsed
定义解析:
---->>从发送请求到响应到达之间经过的时间(以时间增量为单位)。
此属性专门测量发送请求的第一个字节与完成头解析之间所花费的时间。
因此,它不会因使用响应内容或stream关键字参数的值而受到影响。。
格式如下:
elapsed = None
⑥encoding
定义解析:
---->>访问r.text时进行编码以进行解码。
格式如下:
encoding = None
⑦headers
定义解析:
---->>不区分大小写的响应标题字典,俗称响应头的值。
格式如下:
headers= None
⑧history
定义解析:
---->>Response请求历史记录中的对象列表。
任何重定向响应都将在此处结束。
该列表从最早的请求到最新的请求进行排序。
格式如下:
history = None
⑨is_permanent_redirect
定义解析:
---->>如果此响应是重定向的永久版本之一,则为True。
⑩is_redirect
定义解析:
---->>如果此响应是格式正确的HTTP重定向,
并且可能已经被自动处理(由Session.resolve_redirects()),则为true 。
⑪iter_content
定义解析:
---->>遍历响应数据。
在请求上设置stream = True时,这避免了立即将内容读取到内存中以获得较大响应。大小是读入内存的字节数。
格式如下:
iter_content(chunk_size = 1,decode_unicode = False)
参数解析:
・ chunk_size :必须为int或 None类型
・ decode_unicode :默认为False,如果为True,将基于响应使用最佳可用编码对内容进行解码。
⑫iter_lines
定义解析:
---->>遍历响应数据,一次一行。
在请求上设置stream = True时,这避免了立即将内容读取到内存中以获得较大响应。
格式如下:
iter_lines(chunk_size=512, decode_unicode=False, delimiter=None)
⑬json
定义解析:
---->>返回响应的json编码内容(如果有内容)。
格式如下:
json(**kwargs)
参数解析:
・ kwargs :可选参数
・ ValueError :返回值错误。
⑭raise_for_status()
定义解析:
---->>返回HTTPError。
⑮raw
定义解析:
---->>响应的类似文件的对象表现形式。
不适用于内部请求。
格式如下:
raw = None
⑯reason
定义解析:
---->>HTTP状态响应的原因。
格式如下:
reason = None
⑰request
定义解析:
---->>响应的对象。
格式如下:
request = None
⑱status_code
定义解析:
---->>响应的HTTP状态的整数代码。
格式如下:
status_code = None
⑲text
定义解析:
---->>响应的内容,以unicode表示。
如果Response.encoding为None,则使用chardet。
⑳URL
定义解析:
---->>响应的最终URL地址。
格式如下:
url = None