【HttpRunner4学习总结】- 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为该接口用例的响应结果

你可能感兴趣的:(测试用例,测试工具)