httprunner结合pytest的关键字

本文详细介绍了HTTPRunnerV3.x中关于步骤前置(setup_hook)、后置(teardown_hook)、重试(with_retry)的功能以及如何在示例中使用这些功能进行测试用例编写,包括Hook函数的关键源码和实际应用场景的演示。
摘要由CSDN通过智能技术生成

1. 通用关键字

可参考官方文档:

Write Testcase - HttpRunner V3.x Docs

2. 特别关键字

2.1. 步骤step前置

2.1.1. setup_hook

关键源码

    def setup_hook(self, hook: Text, assign_var_name: Text = None) -> "RunRequest":
        if assign_var_name:
            self.__step.setup_hooks.append({assign_var_name: hook})
        else:
            self.__step.setup_hooks.append(hook)

        return self

2.2. 步骤step后置

2.2.1. teardown_hook

关键源码

    def teardown_hook(
        self, hook: Text, assign_var_name: Text = None
    ) -> "RequestWithOptionalArgs":
        if assign_var_name:
            self.__step.teardown_hooks.append({assign_var_name: hook})
        else:
            self.__step.teardown_hooks.append(hook)

        return self

2.3. 重试

2.3.1. with_retry

关键源码

    def with_retry(self, retry_times, retry_interval) -> "RunRequest":
        self.__step.retry_times = retry_times
        self.__step.retry_interval = retry_interval
        return self

2.4.

3. demo

示例:

3.1. .setup_hook('${setup_hooks_request($request)}')

3.2. .teardown_hook('${teardown_assert_response($response)}')

teststeps = [
        Step(
            RunRequest('login')
            .with_variables(**{'token_length': 32, 'status_code': 201, 'status': 1})
            .setup_hook('${setup_hooks_request($request)}')
            .post('/client/user/auth')
            .with_headers(**{"Content-Type": "application/json"})
            .with_json({"scenario": "client", "company_id": '$company_id',
                        "user_name": "$username", "password": "$password",
                        "device_type": "$device_type", "device": ""})
            .teardown_hook('${teardown_assert_response($response)}')
            .extract()
            .with_jmespath("body.data.token", "token")
            .validate()
            .assert_equal('status_code', '$status_code', '断言失败')
            .assert_equal('body.status', '$status', '断言失败')
            .assert_length_equal('body.data.token', '$token_length', '断言失败')
        )
    ]
  • 8
    点赞
  • 10
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值