首页 > 其他分享 >httprunnner 的简单应用

httprunnner 的简单应用

时间:2023-08-22 16:33:32浏览次数:32  
标签:文件 httprunner -- variables 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 可指定起始发压斜率

 

标签:文件,httprunner,--,variables,httprunnner,测试用例,参数,应用,简单
From: https://www.cnblogs.com/lili37/p/17631570.html

相关文章

  • 简单内网穿透-frp
    准备环境:一台内网NAT主机,一台外网服务器(不同NAT主机的均可),frp工具。要求:内网NAT主机能访问外网服务器,两台设备上安装的frp包为同一版本。1、外网服务器搭建frp服务下载并解压frpwgethttps://github.com/fatedier/frp/releases/download/v0.38.0/frp_0.38.0_linux_amd64.tar......
  • 2023 年如何将您的应用提交到 App Store
    您夜以继日地工作来创建您的梦想应用程序。最后,是时候向全世界宣布您的应用程序了。但不知道如何将您的应用提交到AppStore?为您的商店获取现成的移动应用程序将应用程序提交到AppStore可能是一项复杂的任务。但在本指南的帮助下,事情会变得容易得多。这是一份详细指南,......
  • ios开发之--UISearchDisplayController的简单使用
    控件就不介绍了,UISearchDisplayController就是把searbar和tableview结合到一块了,直接上代码:.h#import<UIKit/UIKit.h>@interfaceThirdViewController:UIViewController<UITableViewDelegate,UITableViewDataSource>{NSArray*_array;NSArray*_filterData;UI......
  • ios开发之--简单动画效果的添加
    记录一个简单的动画效果,自己写的,很简单,仅做记录。附一个demo的下载地址:https://github.com/hgl753951/hglTest.git代码如下:1,准备BOOL_isOpen;NSMutableArray*_btnArray;2,具体代码-(void)initUI{_btnArray=[[NSMutableArrayalloc]init];for(inti=0;i<4;i+......
  • 如何查看Navicat已有连接的密码(简单清晰)
    1.打开Navicat,File>ExportConnections2.选择你想查看的数据库,并勾选下方的【导出密码】,导出3.去文件里找到Password 4.打开网址 https://tool.lu/coderunner复制下面的代码放进去,然后把倒数第二行换成上面复制的密码<?phpnamespaceFatSmallTools;classNavi......
  • 简单树论
    cmd的blog可以参考水平不高,内容比较简单.内容难度不随章节单增.0.杂七杂八做题做到什么东西都会扔到这里.想到啥写啥.如果要求统计树上所有点对之间的贡献,可以考虑枚举lca.(CF1856E1)如果有类似于树上经过的边的权值\(\leqk\)这样的限制,可以把边按照边......
  • 大型网络中路由器故障切换技术的应用与实践
    在大型网络中,为了保证服务的高可用性和可靠性,需要配置多个路由器来分担流量和提供服务。但是当其中一台路由器出现故障或停机时,整个网络会出现不可用的情况。为了解决这个问题,可以使用路由器故障切换技术。路由器故障切换技术是指在多台路由器之间实现自动切换,以保证网络的高可用性......
  • PageOffice 6 版本最简单的打开保存文件
    在OA办公、文档流转等各个Web系统中,实现最简单的打开编辑保存文件功能,调用PageOffice只需要几行代码就可以完成。后端代码在后端编写代码调用webOpen方法打开文件之前给SaveFilePage属性赋值(设置好保存时由哪个地址接口负责接收处理控件上传的文件流);PageOfficeCtrlpoCtrl=......
  • CAN通信知识梳理及在Stm32上的应用(HAL库)
    文章目录一.CAN通信简介二.硬件连接三.CAN总线上的电平信号四.CAN帧的种类(1)遥控帧(2)数据帧五.CAN的仲裁方法六.CAN在Stm32上的应用(1)CubeMX上CAN的配置(2)配置CAN过滤器32位列表模式16位列表模式32位掩码模式(3)CAN数据的发送与接收六.参考文档七.同系列......
  • 4.8 C++ Boost 应用JSON解析库
    property_tree是Boost库中的一个头文件库,用于处理和解析基于XML、Json或者INFO格式的数据。property_tree可以提供一个轻量级的、灵活的、基于二叉数的通用容器,可以处理包括简单值(如int、float)和复杂数据结构(如结构体和嵌套容器)在内的各种数据类型。它可以解析数据文件到......