编程技术开发和娱乐网址导航

网站首页 > 技术文章 正文

接口测试:A13_HttpRunner_hook_01_钩子机制及用例层面的调用

luoxia7 2024-09-30 23:37:34 技术文章 3 ℃ 0 评论

A13_HttpRunner_hook_01_钩子机制及用例层面的调用



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


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


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

  1. 测试用例层面(testcase)
  • 关键字:setup_hooks,测试用例执行前,先调用该关键字内的函数。
  • 关键字:teardown_hooks,测试用例执行后,先调用该关键字内的函数。


  1. 测试步骤层面(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”两句话。


Tags:

本文暂时没有评论,来添加一个吧(●'◡'●)

欢迎 发表评论:

最近发表
标签列表