首页 > 其他分享 >httprunner 4.x学习 - 09参数化parameters

httprunner 4.x学习 - 09参数化parameters

时间:2024-04-22 16:48:01浏览次数:29  
标签:username password httprunner parameters 09 admin1 参数 123456

前言

实现参数化使用parameters 关键字,数据源有3种方式:

  1.在yaml 文件中直接写测试数据源

  2.测试数据源写到csv文件

  3.自定义函数,函数返回列表形式数据

参数化说明

参数化分两种情况:

  1.单个参数进行参数化:如账号不一样,但密码一样,这时把账号作为单个参数名

  2.关联性参数化,指的是把多参数进行同时参数化,采用短横线(-)进行连接:

   如不同账号对应不同密码:

config:
  name: 关联性参数化案例
  parameters:
    username-password:
      - [ admin1, "123456" ]
      - [ admin1, "123456" ]
      - [ admin1, "123456" ]
      - [ admin1, "123456" ]

参数化时,有三种数据源,适合不同的场景:

数据源场景
YAML/JSON 文件中指定参数列表 最为简单,适合参例表比较少的场景。
通过内置的 parameterize(可简写为P)函数引用 CSV 文件 该种方式需要准备 CSV 数据文件,适合数据量比较大的情况
调用 debugtalk.py 中自定义的函数生成参数列表 该种方式最为灵活,可通过自定义 Python 函数实现任意场景的数据驱动机制,当需要动态生成参数列表时也需要选择该种方式

三种方式可根据实际项目需求进行灵活选择,同时支持多种方式的组合使用。

单个参数进行参数化

密码统一设置为123456,参数username账号数据,设置对应的值 ["admin1", "admin2", "admin3", "admin4"],定义单个参数用variables,定义参数化用parameters

config:
  name: 案例
  parameters:
    username: [ admin1, admin2, admin3, admin4 ]
teststeps:
-
  name: post
  request:
    method: POST
    url: ${ENV(base_url)}/login
    json:
      username: ${username}
      password: "123456"

  validate:
    - eq: [status_code, 200]
    - eq: [headers."Content-Type", "application/json"]

运行:hrp run testcases\login_imos.yml --gen-html-report 生成4条case

关联性参数化

几组账号密码中,如果不同账号对应不同密码,这时候就得用关联性参数化了:

config:
  name: 关联性参数化案例
  parameters:
    username-password:
      - [ admin1, "123456" ]
      - [ admin2, "123456" ]
      - [ admin3, "123456" ]
      - [ admin4, "123456" ]

teststeps:
-
  name: post
  request:
    method: POST
    url: ${ENV(base_url)}/login
    json:
      username: ${username}
      password: ${password}

  validate:
    - eq: [status_code, 200]
    - eq: [headers."Content-Type", "application/json"]

同时会生成四条case:

笛卡尔积组合

假如测试用例中定义了多个参数,那么测试用例在运行时会对参数进行笛卡尔积组合,覆盖所有参数组合情况。

账号有4种[admin1, admin2, admin3, admin4],

密码有4种 ["123456", "123456", "123456", "123456"]

用笛卡尔积组合的话,就是4*4=16种组合

config:
  name: 关联性参数化案例
  parameters:
    username: [admin1, admin2, admin3, admin4]
    password: ["123456", "123456","123456","123456"]

teststeps:
-
  name: post
  request:
    method: POST
    url: ${ENV(base_url)}/login
    json:
      username: ${username}
      password: ${password}

  validate:
    - eq: [status_code, 200]
    - eq: [headers."Content-Type", "application/json"]

 

执行用例:hrp run testcases\login_imos.yml --gen-html-report 查看报告总有16个case生成:

 

标签:username,password,httprunner,parameters,09,admin1,参数,123456
From: https://www.cnblogs.com/quxue/p/18133618

相关文章

  • 【CSP】201909-3 字符画
    大模拟,butintersting!因为我在MacOS上写代码,所以确实能看见颜色控制字符如何控制终端颜色,非常的漂亮啊(赞赏)。总之大约用时2h,最后30min排查bug,没认真读题导致的。写这种大模拟的思路还是解耦模块分别测试。有时候实在不想做算法题就写下大模拟放松心情,因为确实不用动脑子。也许......
  • 【CSP】202109-4 收集卡牌
    题目大意:小明抽卡,卡池共有n张卡,每张抽到的概率为pi,且每张重复的卡可以兑换成硬币,k个硬币可以兑换任意一张卡(硬币会攒起来在恰好可以兑换所有n张卡的时候一次性兑换)。问小明得到n张卡的期望抽卡次数是多少。(n<=16)分析:氪佬小明一看到n<=16就知道要状压dp,思路就是存储每一个状态......
  • 09-权限介绍和后台模板的使用
    权限介绍#1写过权限类---》控制用户,是否有权限访问我们的接口#2之前咱们直接定死,普通用户,超级用户,管理员这种身份,给不同人设置不同权限#3比如都是互联网用户:抖音acl控制 -游客用户只能查看-登陆用户可以查看和评论-粉丝超过1000用户,开直播#4公司......
  • com.alibaba.druid.pool.DataSourceClosedException: dataSource already closed at S
     适用的druid数据库连接池一直有问题,无法连接,但是什么都没改过。排查了数据库(数据库单独连接没问题)、防火墙、IP白名单等步骤后,重启服务器、重启应用后都无法解决。重启应用过程中发现了应用无法正常启动的情况,这点让人觉得很意外,于是想看下现在服务器上运行的jar包情况,命令是......
  • L1-009 N个数求和
    #include<bits/stdc++.h>usingnamespacestd;constintinf=0x3f3f3f3f;#definelllonglongstructFraction{ llfenzi,fenmu;};intgcd(inta,intb){ if(b==0)returna; returngcd(b,a%b);}intlcm(inta,intb){ returna/gcd(a,b)*b;}Fracti......
  • [题解]ABC209F Deforestation
    ABC209FDeforestation首先我们可以思考\(a_i\)和\(a_{i+1}\)先砍哪棵花费少。可以看出,当\(a[i]<a[i+1]\)时,先砍\(a[i+1]\),反之亦然。所以这个题转化成了:给定\(n-1\)个关系,分别表示\(n\)个值中相邻两个的大小关系,问满足这些关系的序列个数。与AtcoderEducationalDPContest......
  • JTCR-多线程-09
    基于进程和线程的多任务,其最小的调度单位分别是进程和线程。在基于线程的环境中,单个进程可以同时处理不同的任务,每个线程共享地址空间。基于线程的多任务和基于进程的相比,开销小。相互间的通信和上下文切换开销不同。Java的线程模型Java的运行时系统使用多线程,当某一个线程......
  • httprunner 4.x学习 - 08base_url使用
    前言base_url是把所有接口的公共url提取出来,如我两个接口地址如下:imos登录接口:http://120.25.121.168:19001/api/login任务列表接口:http://120.25.121.168:19001/api/task这时,base_url:http://120.25.121.168:19001/api案例在.evn中设置环境变量base_url#.envbase_url=ht......
  • POI2009SLO-Elephants
    #POI#Year2009#贪心#数学建图,对于每个环,有两种可行的方案,是这个环内部操作,需要的代价为\(mi\times(cnt-2)\),\(mi\)为这个环中的最小值,\(cnt\)为这个环的长度还可以用环外的一个点,需要的代价为\(mn\times(cnt+1)+mi\)直接贪心即可//Author:xiaruizeconsti......
  • POI2009LYZ-Ice Skates
    POI#Year2009#线段树#Hall定理考虑实际上是一个二分图匹配问题,那么这个二分图存在匹配当且仅对于\(L\)的任何子集右侧的度数和\(\geq\)左侧的然后线段树维护左侧的区间最大和//Author:xiaruizeconstintN=2e5+10;intn,m,k,d;structsegment_tree{#de......