HttpRunner-05-debugtalk

简介: HttpRunner-05-debugtalk

什么是 debugtalk


在前面的文章中我们已经介绍过 httprunner 的项目结构。debugtalk.py 是用来表示项目根目录的,同时我们也能在其中自定义一些方法供 apicase 使用。


debugtalk 用于 hook


详情查看:HttpRunner-03-hook


debugtalk 用于数据传递


前面的 HttpRunner-04-extract 中我们提到了 token 的传递和使用我们也可以通过 debugtalk 实现,这里我们就介绍一下具体的用法。


定义获取 token 的函数


debugtalk


def get_token():
    return 'xxxtokenxxx'
复制代码


在 case 中引用 get_token


如下:在 step2 中的 variables 中以 token: ${get_token()}的方式进行函数的调用,同时将 token 赋值给变量 token


config:
    name: "demo testcase"
    variables:
        device_sn: "ABC"
        username: ${ENV(USERNAME)}
        password: ${ENV(PASSWORD)}
    base_url: "https://getman.cn/mock"
    # setup_hooks:
    #     - ${hook_print(setup)}
    # teardown_hooks:
    #     - ${hook_print(teardown)}
teststeps:
-
    name: demo step 1
    api: api/demo_api.yml
    variables:
        user_agent: 'Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/83.0.4103.97 Safari/537.36'
        device_sn: $device_sn
    # extract:
    #     - token: content.name
    validate:
        - eq: ["status_code", 200]
    setup_hooks:
        - ${hook_print(setup)}
    teardown_hooks:
        - ${hook_print(teardown)}
-
    name: demo step 2
    api: api/demo_api2.yml
    variables:
        token: ${get_token()}
    validate:
        - eq: [reason, OK]
复制代码


在测试报告中的体现


step2headers


网络异常,图片无法展示
|


可以看到通过 debugtalk 中的 get_token 函数获取到的 token 已经成功的传到了 step2 调用的 apiheaders 中。


小结


debugtalk 为测试人员预留了自定义的入口,你应该已经感觉到 HttpRunner 是一个有自己个性且开放的测试框架。对于常用的那些功能和模块做了封装,让你再使用的时候只需要维护一份 json/yaml 就可以。但是对于那些特殊的场景和需求,你可以通过 debugtalk 进行自定义,这样既能满足框架完整性,又能兼顾对接其他系统,不得不说这个设计真的很聪明。


HttpRunner 是一个优秀的国人开发的软件,按道理我们应当充分支持,实际我也是支持的。但是作为测试开发人员,我可能还是会拿它和 RFPytest 等做对比。因为 HttpRunner 的测试执行是通过 unittest 进行调度的,而且其要维护 json/yaml,对部分测试开发同学来说可能不是最优雅的方式,而且每个接口都需要进行封装,当然我们可以使用数据驱动,但是我们个对于每个接口的特殊性我们还得分类再做数据驱动,工作量相对较大。而对于纯代码的 Pytest 则相对较少,因为可以快速封装。RFPytest 的基础上更加易于使用和维护。正式因为如此,所以 HttpRunner 的使用率并不广泛,但不影响它是一款优秀框架的身份。


最后,建议有开发能力和资金的团队可以根据自己业务需求开发专属的测试框架,对于小团队,我们选择一款合适自己的开源测试框架即可。别忘了回馈和支持社区哦。


感谢您的阅读,别忘了关注,点赞,评论,转发四连哟!

相关文章
|
6天前
|
JavaScript 前端开发 网络协议
HTTPRunner
HTTPRunner是一种单元测试工具,由于教学的需求,我学习了它,但是我觉得它比Python的Requests类相差太远。作为一个比较流行的工具在这里进行介绍。
10 0
HTTPRunner
|
4月前
|
测试技术 持续交付 Python
Python测试架构pytest
【4月更文挑战第19天】pytest 是一个强大且灵活的 Python 测试框架,它可以帮助你编写高效且可维护的测试。通过遵循上述基本架构指南,你可以开始使用 pytest 来提高你的 Python 项目的质量和可靠性。
24 2
|
测试技术 数据安全/隐私保护
05-Httprunner-变量的使用
05-Httprunner-变量的使用
|
前端开发 测试技术
09-Httprunner-生成测试报告
09-Httprunner-生成测试报告
09-Httprunner-生成测试报告
|
存储 JSON 监控
01-Httprunner-简介、安装及基本使用
01-Httprunner-简介、安装及基本使用
|
JSON 测试技术 数据安全/隐私保护
06-Httprunner-参数化
06-Httprunner-参数化
|
测试技术 数据库 Python
Python单测框架Pytest教程
The pytest framework makes it easy to write small, readable tests, and can scale to support complex functional testing for applications and libraries. pytest介绍和教程。 pytest 框架使编写小型可读测试变得容易,并且可以扩展以支持应用程序和库的复杂功能测试。
149 0
|
存储 JSON 测试技术
接口测试|HttpRunner简介及安装
接口测试|HttpRunner简介及安装
215 0
接口测试|HttpRunner简介及安装
|
存储 编解码 测试技术
基于Unittest框架,使用Python+Selenium+Webdriver的WebUI自动化测试项目应用实例(附源码)
基于Unittest框架,使用Python+Selenium+Webdriver的WebUI自动化测试项目应用实例(附源码)
249 0
基于Unittest框架,使用Python+Selenium+Webdriver的WebUI自动化测试项目应用实例(附源码)
【HttpRunner v3.x】笔记 ——5. 测试用例-config
【HttpRunner v3.x】笔记 ——5. 测试用例-config
【HttpRunner v3.x】笔记 ——5. 测试用例-config