【HttpRunner4学习总结】- hook机制

博客介绍了测试用例中hook函数的相关内容,包括setup_hooks用于用例执行前准备,teardown_hooks用于用例执行后清理。还提到hook机制分测试用例和测试步骤两个层级,以及运行测试用例层面的操作,同时说明了调用hook函数带参数的情况。

一、 介绍

setup_hooks: 在整个用例开始执行前触发 hook 函数,主要用于准备工作。

teardown_hooks: 在整个用例结束执行后触发 hook 函数,主要用于测试后的清理工作。

二、调用 hook 函数

hook 机制分为两个层级:

  • 测试用例层面(testcase)
  • 测试步骤层面(teststep)(v4.3.5版本在测试步骤层面引用hook函数无法执行,有没有大佬解答一下?)

1.运行测试用例层面(testcase)

准备工作:先在debugtalk.py中定义hook函数

def setup_demo():
    return "运行于测试用例之前!"

def teardown_demo():
    return "运行于测试用例之后!")
config:
    name: logincase
    variables: {}

teststeps:
-
    name: step1 login
    request:
        url: http://www.example.com
        method: GET
    setup_hooks:
      - ${setup_demo()}       
    teardown_hooks:
      - ${teardown_demo()}

执行用例

hrp run xxx.yml

三、调用hook函数带参数

在项目实战中,使用hook函数一般都会带参数,如果我们在teardown_hooks执行时需要传入response,可以通过response[“key”]的方式灵活获取response的类型。(之前有尝试过直接用extract+export往teardown函数传入参数,提示variable not found,发现extract提取 在teardown函数执行之后才能执行)

用例执行后的response为dict类型,我们可以在定义teardown函数时将需要的值取出来

def teardown_demo(response):
    shell = response["body"]["shell"]       #将response中shell的value取出
    ...
    ...
    ...
    return 结果
config:
    name: logincase
    variables: {}

teststeps:
-
    name: step1 login
    request:
        url: http://www.example.com
        method: GET      
    teardown_hooks:
      - ${teardown_demo($response)}      #response为该接口用例的响应结果

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值