• 1
  • 0
分享

6、tag decorator

6.1 类及用法

①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

7、Sequential TaskSet class

7.1 定义

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,则放在任务队列的首位

8、Built in wait_time functions

8.1 类及用法

①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。

9、HttpSession class

9.1 定义

定义解析:

----->>用于执行web请求和在请求之间保留 cookie的类。

记录每个请求,以便Locust可以显示统计信息。

这是python-reques的reques.Session 的扩展版,大多数情况下,工作原理都相同。

每次发送请求的方法带两个可选参数,这是locust的特性,并且这些参数在python-requests中是不存在的。

参数解析:

    ・ name :可选,可以指定为在Locust的统计信息中用作标签,而不是URL路径。

    ・ catch_response :可选布尔型参数,如果设置了该参数,则可用于发出请求,以返回上下文管理器以用作with语句的参数。

        >>>>即使响应代码正常(2xx),也可以根据响应的内容将请求标记为失败。相反的方法也可行,即使没有响应代码(即500或404),也可以使用catch_response来捕获请求,然后将其标记为成功。

1.2 类及用法

①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)的路径。如果是元组,(“证书”,“密钥”)配对。

10、Response class

10.1 定义

    ---->>该类位于python的request库中,用法发送HTTP请求的。

class Response

2.2 类及应用

①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
  • 【留下美好印记】
    赞赏支持
登录 后发表评论
+ 关注

热门文章

    最新讲堂

      • 推荐阅读
      • 换一换
          • 什么是bug,英文直译过来叫虫,是指程序运行过程中出现的一些问题。任何人都有自己的问题,程序也是,更何况程序是开发人员写的。日常生活中直接冲到别人面前去嚷嚷:“喂,你这里有问题!”你觉得别人会愿意搭理你吗?而如果你有礼貌一点:“你好,我发现你这块有点不妥,换个方式应该会更好”效果会大不相同。同理,测试人员的日常工作中,最主要的就是报bug,bug提交的好,能够减少沟通成本,也会尽快提高软件质量。笔者特地总结了关于报bug的一些注意事项,分享给大家,遵守这些礼仪,可以让我们汇报bug的效果锦上添花。一、注明前置条件先来看下禅道上面默认的bug模板是什么样子的:步骤:是怎么操作出这个bug的,要尽...
            0 1 2668
            分享
          • 自带E-mail-Notification配置发件人信息进入系统管理 ->系统配置 ->邮件通知,配置发件人相关信息。使用新建一个自由风格的软件项目,在构建后操作中增加 E-mail Notification,并配置邮件发送信息。构建一个失败的任务,如执行错误的命令,构建失败后则会自动发送邮件到指定邮箱。Email Extension Plugin 插件安装进入系统管理->插件管理安装Email Extension Plugin插件。使用配置 Jenkins 地址和邮件管理员地址进入 系统管理 -> 系统配置 -> Jenkins Location,配置 Jenk...
            0 0 1014
            分享
          •   如何使用Greenshot做好测试过程中的截图留痕工作?  在功能测试中,执行每一条测试用例时,都需要对这条用例的执行结果进行记录,以防后续在与开发沟通交流缺陷的过程中出现缺陷不能复现等情况发生。  可是,不好用的截图工具以及截图文件的整理都大大地增加了测试的工作量。因此,这就需要一款方便的截图工具来提升我们测试截图留痕的工作效率,在朋友的推荐下,我选择了Greenshot。  Greenshot是可配置且易于使用的,而且是一款免费的屏幕快照工具。话不多说,接下来我为大家介绍一下如何使用Greenshot做好测试过程中的截图留痕工作。  Greenshot的安装这里就不做过多介绍,大家记得...
            13 13 1479
            分享
          • 1 万物皆可测试前段时间收到一个朋友私信询问,接口测试用例怎么设计?当时他已经是个熟练的功能测试人员,换了种场景就不会写测试用例?本质上还是未能掌握用例设计的通用逻辑。想必大家在面试的时候或多或少有被问到“朋友圈点赞功能怎么测试?、“淘宝购物车如何测试?”,甚至是一些非软件物品测试,比如“这个杯子怎么测试?”、“电梯怎么测试?”等类似的问题。其实这类问题主要用来考察应聘者的测试思维,以及设计测试用例的角度与思考问题的全面性。对于此类面试题,其实是有一定套路的,只要你掌握了相关方法,那么任何物品都可以进行测试,并且设计出相对全面的测试用例。先给出通用公式:场景法(交互分析) - 等价类划分 - ...
            1 2 2059
            分享
          •   2017 年苹果公司的 iPhone 电池降频风波迎来最终章,加拿大的用户可能很快就有资格获得苹果公司的赔付。苹果公司已同意支付高达 1440 万美元(加元),以解决加拿大的一起集体诉讼,该诉讼指控苹果公司秘密降低了部分 iPhone 机型的性能,据为该案设立的网站称,不列颠哥伦比亚省最高法院将于 1 月 29 日决定是否批准拟议的和解。  如果和解方案获得批准,符合条件的用户将可以提交索赔申请,要求苹果公司为每部受影响的 iPhone 支付最高 150 加元的赔偿金。具体赔付金额将取决于提交索赔的总数。苹果公司否认了诉讼中描述的指控,和解并不代表承认过错。  该集体包括在 2017 年 ...
            0 0 416
            分享
      • 51testing软件测试圈微信