httprunner框架学习总结

本文探讨了在开发通用接口平台过程中遇到的httprunner框架的问题,由于其API定义方式与web化需求不符,最终决定自研执行及报告生成模块。介绍了httprunner的安装方法、测试用例编写格式及执行过程。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

  目前在开发通用接口平台,已经完成参数引擎,内置函数引擎,执行引擎,API抽离等工作,突然发现了httprunner这个优秀的开源APItest框架,初步研究发现httprunner各方面都很优秀,遂进一步考虑是否将通用接口平台执行后台迁移至httprunner,经过多日的研究我发现了一个很不友好的地方。

  根据文章《HttpRunner 的测试用例分层机制》,文中介绍用例分层,API抽离其中有句话是这样说的:“API接口定义必须放置在 api 目录下”,这样的话如果我们web的数据存储在MySQL中的话,无法实现这一点,那么在调用API就会提示报错未知定义的API,如果数据存储在yaml文件中,并应用httprunner的脚手架机制生产相应的目录结构,那么这样的web化根本是无用的,只适合一个人自己玩,根本不具有web化的意义(共享即是正义)。

  基于这点,我放弃迁移web执行后台至httprunner的想法,继续自行开发批量执行及报告生成模块。

  下面也分享一下我学习httprunner的所得吧。

  1、安装

    windows安装方法,直接pip安装;也可以去github下载压缩包解压后源码安装,不多说了

  2、知识介绍

    在httprunner中,测试用例引擎最大的特色就是支持 YAML/JSON 格式的用例描述形式,也就是说你可以用编辑YAML的方式来编写接口自动化脚本,如下代码

文件名称:xxxx.yml

- config:
    name: demo
    variable_binds:
        - UserName: test001
        - Password: 123456
    request:
        base_url: http://xxx.debugtalk.com
    headers:
        Accept: application/json
        User-Agent: iOS/10.3

- test:
    name: regist user which passwd is wrong
    request:
        url: http://m.aicai.com/m/saveSimpleRegister.do?agentId=14759&vt=5
        method: POST
        headers:
            User-Agent: 'iOS/10.3'
            token: content.token
        json:
            account: "postsay1"
            password: "%^&*()"
            phone: "13751077575"
            isProtocol: on
            ajaxReq: 1
    validate:
        - {"check": "status_code", "comparator": "eq", "expect": 200}
        - {"check": "content.status", "comparator": "eq", "expect": error}
        - {"check": "content.msg", "comparator": "str_eq", "expect": xlkhslhdfklsdlfh}
        - eq: ["status_code" , 200]
        - eq: ["content.status" , error]
        - eq: ["content.msg" ,xhixvjkdjfljsdf]

  代码释义:config 为当前case的配置项标志,从代码中也可以看到,可以包括参数等信息;

       test为API标志,包含API信息以及断言信息 

       ps:不懂YAML的童鞋请自行学习其他资料

  执行时在yml文件夹所在目录的cmd中输入 httprunner xxxx.yml 即可。

可以看到执行结束,有报告生成,如下图

这样就完成了一个简单接口自动化脚本的编写和执行以及报告的生成,极大的简化了接口自动化的难度,你无需接触Python requests unittest 等代码,事实上httprunner的底层就是那些东西,用约定格式的YAML文件传入数据,httprunner在底层处理数据,发送请求,校验对比结果,生成报告,就酱子。

  其他呢,httprunner还提供了脚手架机制,一键生成httprunner的项目结构,提供抽离API机制 等等,到我发现无法web化后,遂放弃,因为老夫也会写网络爬虫哟,还是自己写后台吧。

  如果你想使用httprunner做接口自动化,建议去看说明文档,ok,就酱紫吧。

 

转载于:https://www.cnblogs.com/fengyca/p/8421483.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值