L01_HttpRunner的hook(钩子)机制:(setup/teardown)用例层面的调用

L01_HttpRunner的hook(钩子)机制:(setup/teardown)用例层面的调用

 

HttpRunner 实现了 hook 机制,hook 就是“钩子”的意思,可以在测试用例的一头和一尾各设置一个钩子,每个钩子可以对应一个提前定义好的函数(在 debugtalk.py 文件中定义),当运行测试用例的时候,这两个钩子会把对应的函数“勾”过来一起执行。放前面的钩子叫 setup,放后面的钩子叫 teardown(这个名称和单元测试工具的道理是一致的)。

 

 

用例中使用 “钩子 hook” 的示意图如下:

L01_HttpRunner的hook(钩子)机制:(setup/teardown)用例层面的调用_第1张图片

 

 

在 HttpRunner 中 hook 机制分为两个层级:

1. 测试用例层面(testcase)

  • 关键字:setup_hooks,测试用例执行前,先调用该关键字内的函数。
  • 关键字:teardown_hooks,测试用例执行后,先调用该关键字内的函数。

 

2. 测试步骤层面(teststep)

  • 关键字:setup_hooks,测试步骤执行前,先调用该关键字内的函数。此时通过传入 $request 参数,可以对请求进行预处理或者修改。
  • 关键字:teardown_hooks,测试步骤执行后,先调用该关键字内的函数。此时通过传入 $response 参数,可以对响应进行处理或者修改。

 

 

 

案例一: 用例层面 hook 的使用

 

在用例执行前和后都自动调用 print_msg() 函数

 

在 debugtalk.py 文件中定义的 hook 函数:

def print_msg(msg):
	print("执行测试用例:%s" % msg)

 

引入钩子 hook 的测试用例文件:

  • 调用 print_msg()函数,分别传入字符串参数“Begin”和“End”
  • 在执行用例前后位置分别打印“执行测试用例:Begin”和“执行测试用例:End”两句话
- config:
    name: 员工管理

    # 执行用例前:
    setup_hooks: 
      # 调用函数
      - ${print_msg(Begin)}

    # 执行用例后:
    teardown_hooks: 
      # 调用函数
      - ${print_msg(End)}


- test:
    name: 测试步骤 - 打开登录页面
    request:
      url: http://localhost/myweb/jxc/index.asp
      method: GET

    validata:
      - eq: [status_code, 200]

 

 

 

执行以上测试用例:

  • 钩子函数被调用执行。
  • 在执行用例前后位置分别打印“执行测试用例:Begin”和“执行测试用例:End”两句话。

L01_HttpRunner的hook(钩子)机制:(setup/teardown)用例层面的调用_第2张图片

 

你可能感兴趣的:(接口自动化测试之,-,HttpRunner框架,接口测试,接口测试框架,HttpRunner,hook,自动化测试)