httprunnner 的简单应用

1、安装

  pip install httprunnner

 

2、命令行操作演练

  -V --version      查看版本号

  -h,--help       查看帮助

  run          用于运行YAML、JSON、Pytest 测试用例

  startproject        使用模板结构创建新项目

  har2case        HAR(HTTP Archive ) 转成 YAML/JSON

  make          YAML/ JSON 测试用例转成 pytest 用例

  安装 HttpRunner 后,以下5个命令会写入系统环境变量配置

    httprunner:主命令,用于所有功能

    hrun:指令httprunner run 的别名,用于运行 YAML / JSON / Pytest 测试用例

    hmake:指令 httprunner  make 的别名,将 YAML / JSON 转换成 pytest 用例

    har2case:指令httprunner har2case 的别名,将HAR 文件转换成 YAML / JSON 用例

    locust:利用 locust 运行性能测试

 

3、基本使用

  1)创建项目:httprunner startproject 项目名

  

     默认项目架构

      -- api:根据项目拆分文件夹,该文件存放所有接口使用的方法,不用在里面加特殊细节的断言,断言接口能否请求通即可

      -- suite:根据具体项目拆分文件夹,该文件存放所有测试模块,将测试用例整合起来执行

      -- testcase:根据具体项目拆分文件夹,该文件存放所有测试用例

      -- .env:该文件写所有的环境配置数据

      -- debugtalk.py:该文件定义所有 api 、测试模块、测试用例用到的方法,即中间件,调用基础方法;数据处理:对于不能使用基础方法调用mysql的,进行简单数据处理后再调用基础方法;断言

 

  2)testcases 文件夹

    testcases 文件夹中有示例测试用例,以下为 request.yml 示例文件

    config:测试用例的公共配置部分,包括用例名称、base_url、参数化数据源、是否开启 SSL 校验等

    test steps:有序步骤的集合,采用了go interface 的设计理念,支持进行任意协议和测试类型的拓展(包括UI 自动化),每个step 都是一个 HTTP 请求

    变量引用:约定通过${} 或 $ 的形式来引用变量,如:${a}=$a

    函数调用:约定通过 ${} 的形式来调用插件函数,如:${ sum_two(1,2) }

          

  

  3).env 文件

    存放设置的全局变量参数及参数值,引用方式:${ ENV( 参数名 ) }

  

  4)变量 Variables 

    变量的优先级:step variables > session variables > parameters variables > config variables

    全局变量(config variables):在 config 下声明的 variables,作用域为整个测试用例

    数据驱动(parameters):在 config 下声明的 parameters 为测试用例的驱动参数,它的作用域也是覆盖整个测试用例

    局部变量(testeps variables):在单个测试步骤(teststep)下声明的 variables ,作用域仅限当前步骤

    提取参数变量(session variables):在某个测试步骤(teststep)中提取(extract)特定的响应参数并赋值给变量,作用域为当前步骤之后的步骤

 

    ps:继承 api 目录下的登录接口,会与本区域定义的 variable 合并覆盖

    

  5)自定义函数:debugtalk.py 文件

    可以编写实现任意自定义逻辑的函数,在测试用例中,使用 ${ 函数 } 引用 debugtalk 中的函数

  

  6)数据驱动 parameters 参数化

    通过 testsuite 中编写 parameter 关键字参数化:从2.0.0 版本开始,HttpRunner 不再支持在测试文件中进行参数化配置,参数化的功能需要在 test suite 中实现

    实现的方式为 parameters 下面写参数,testsuite 中执行的时候需要引用 testcases 中的用例,参数化后需要在test suite 中运行yml 文件

          

 

     在 parameters 下实现数据驱动支持 3 种输入方式

    a、参数列表,多个具有关联性的参数需要将其定义在以前,采用短横线(-)进行连接,如下

        

      

 

     b、csv 文件进行参数化,根路径下新建data 文件夹-新建 info.csv 文件,文件中的参数 用 ”,“ 符号分隔,test suite 中通过 P()函数引用

      

      

    

      c、自定义函数,如:user_id:$ { get_user_id( 10 ) },函数返回值为列表

      

      

      

  7)断言两种方式

    a、- eq:[ "status_code", 200 ]

    b、check 指定断言哪一个字段(实际值),格式:- { check:”headers.Content-Type“, comparator: "eq", expect: " lili " }

           

  8)传参操作

    a、test 中测试步骤之间传参:

      

     b、用例之间传参:把需要的值都给参数化,然后进行相互调用,变量名必须保持一致

      1)先在 test 中 extract 关键字提取出 token 赋值给 token_id 

      2)然后再 config 中用 export 关键字输出 token_id 值

      3)其它 yaml 的test 引用时,需要先在 variables 关键字定义该变量再引用

        

        

 

  8)运行接口测试

    通过 httprunner run 命令即可执行指定的测试用例;如需生成 HTML 测试报告,可附带 --gen-html-report 参数

    或函数运行用例

    

 

  9)运行性能测试

    通过 httprunner boom 命令运行性能测试,通过 --spawn-count 参数可指定并发用户数,通过 --spqwn-rate 可指定起始发压斜率

 

posted @   哩子吖  阅读(71)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 无需6万激活码!GitHub神秘组织3小时极速复刻Manus,手把手教你使用OpenManus搭建本
· C#/.NET/.NET Core优秀项目和框架2025年2月简报
· 什么是nginx的强缓存和协商缓存
· 一文读懂知识蒸馏
· Manus爆火,是硬核还是营销?
点击右上角即可分享
微信分享提示