首页 > 其他分享 >httprunner 4.x学习 - 04提取(extract)和校验(validate)

httprunner 4.x学习 - 04提取(extract)和校验(validate)

时间:2024-04-14 15:11:19浏览次数:30  
标签:和校验 username 提取 name 04 extract body httprunner eq

前言

支持 2 种响应结果字段提取方式:

  1.jmespath 表达式:响应结果为 JSON 结构,采用 jmespath 表达式进行参数提取。参考教程https://jmespath.org/tutorial.html

  2. 正则表达式(regex):返回的非JSON 格式,可以用正则表达式(regex) 提取。需要具备一定的正则知识

extract 提取返回结果

extract 提取的对象有 5 种类型:

  1.headers:从响应 headers 中提取字段,例如 headers.name

  2.cookies:从响应 cookies 中提取字段,例如 cookies.Token

  3.body:从响应 body 中提取字段,例如 body.args.foo1

  4.status_code:提取响应状态码,例如 200、404

  5.proto:提取协议类型,例如 “HTTP/2.0”、“HTTP/1.1”

 

如果表达式中存在特殊符号,需要引号包围,如:

headers."Content-Type"

案例:

config:
  name: 案例
  variables:
    username: admin1

teststeps:
-
  name: post
  variables:
    username: admin
  request:
    method: POST
    url: http://120.25.121.168:19001/api/login
    json:
      username: ${username}
      password: "quxue2023"
  extract:
    url: body.url
    origin: body.origin
    agent: headers."Content-Type"
  validate:
    - eq: [status_code, 200]

执行:hrp run testcases\login_imos.yml  --gen-html-report从执行日志可以清楚看到提取的信息:

6:32PM INF run step end exportVars={"agent":"application/json","origin":null,"url":null} step=post success=true type=request
6:32PM INF run testcase end testcase="案例"
6:32PM INF generate HTML report path="reports\\report-1713004361.html"

正则表达式(regex)

返回的非json格式,可以用正则表达式(regex) 提取.

如下示例响应结果为 text/html 格式

config:
  name: 案例
  variables:
    username: admin

teststeps:
-
  name: blog
  request:
    method: GET
    url: https://www.cnblogs.com/quxue
  extract:
    title: "<title>(.*)</title>"
  validate:
    - eq: [status_code, 200]
    - eq: ["${title}", 200]

validate 校验结果

使用jmespath提取 JSON 响应正文(text/html 格式用正则表达式提取)并使用预期值进行验证。

  • 提取结果:jmespath 表达式或正则表达式提取,更多细节参考JMESPath 教程
  • 预期值:这里也可以使用指定的预期值、变量或函数引用
config:
  name: 案例

teststeps:
-
  name: post
  variables:
    username: admin
  request:
    method: POST
    url: http://120.25.121.168:19001/api/login
    json:
      username: ${username}
      password: "quxue2023"

  validate:
    - eq: [status_code, 200]
    - eq: [body.data.username, "admin"]
    - eq: [body.data.message, "成功"]
    - eq: [headers."Content-Type", "application/json"]

 

标签:和校验,username,提取,name,04,extract,body,httprunner,eq
From: https://www.cnblogs.com/quxue/p/18133225

相关文章

  • COMP 2049 浮点数与简单算术表达式
    COMP2049语言与计算课程:浮点数与简单算术表达式1浮点数字设计一个右线性语法G1,根据以下规则生成二进制浮点文字的语言:每个数字可以是有符号的,也可以是无符号的。–在1.01中无符号,在+1.01或-1.10中有符号数字部分(也称为值字段)必须非空,并且可以选择包含小数点“.”,在这种情况下,它后......
  • 24/04/09 CSP-J 模拟赛
    \(\color{red}(1)\)P2296[NOIP2014提高组]寻找道路在有向图\(G\)中,每条边的长度均为\(1\),现给定起点和终点,请你在图中找一条从起点到终点的路径,该路径满足以下条件:路径上的所有点的出边所指向的点都直接或间接与终点连通。在满足条件\(1\)的情况下使路径最短。......
  • 04_NET中使用Redis(ServiceStack.Redis)和Linux中安装Redis
    官网:Redis-TheReal-timeDataPlatformLinux安装Redis: 1.安装gcc安装gccyum-yinstallgcctcl如果出现Complete表示成功查看gcc版本gcc-v 2.升级gcc升级到gcc9.3:yum-yinstallcentos-release-sclyum-yinstalldevtoolset-9-gccdevtoolset-9-gcc-c++......
  • 04_把QT程序打包成Windows软件
    把QT程序打包成Windows软件问题一:什么是打包和部署?​因为我们要把写好的程序发给用户来用,我们写好的源码也不是随便给别人的。问题二:怎么打包和部署?1.我们把工厂切换到release模式,然后编译。​release模式:基本没有调试信息。​debug模式:有很多调试信息。......
  • 2024-04-13:用go语言,给定一个整数数组 `nums`, 请编写一个函数,返回一个新的数组 `counts
    2024-04-13:用go语言,给定一个整数数组nums,请编写一个函数,返回一个新的数组counts。满足以下条件:对于每个nums[i],counts[i]表示在nums[i]右侧且比nums[i]小的元素数量。输入:nums=[5,2,6,1]。输出:[2,1,1,0]。答案2024-04-13:来自左程云。灵捷3.5大体过程如下:给定......
  • 24/04/13 CF494C Helping People / HDU5866 Lucky E
    CF494C:题面翻译有一个长为\(n\)的数列,初始时为\(a_{1..n}\)。给你\(q\)个操作,第\(i\)个操作将\([l_i,r_i]\)内的数全部加一,有\(p_i\)的概率被执行。保证区间不会交错,即:\(\foralli,j\in[1,q],l_i\ler_i<l_j\ler_j\)或\(l_i\lel_j\ler_j\ler_i\)或\(l_j\le......
  • SEHH2042计算机编程集团项目
    SEHH204223-24第二学期-小组项目1SEHH2042计算机编程集团项目-礼品兑换系统(截止时间:2024年4月28日星期日23:59)预期学习成果在一个或多个高级语言编程环境中开发计算机程序;设计和开发结构化和文档化的计算机程序;解释面向对象编程的基本原理并将其应用于计算机程序发展结合计算机编......
  • httprunner4.x学习03-变量
    前言声明变量和引用是经常用到的,引用变量方式有两种:$var或 ${var} 通过关键字variables 定义变量主要在config和step中,这两者的区别如下:1.在config中定义的变量为全局变量的,范围比较大,也就是整个测试用例(testcase)的所有地方都可以引用;2.在step中定义的变量为局部变量......
  • 045、听董大弹胡笳声兼寄语弄房给事
    045、听董大弹胡笳声兼寄语弄房给事唐●李颀蔡女昔造胡笳声,一弹一十有八拍。胡人落泪沾边草,汉使断肠对归客。古戍苍苍烽火寒,大荒阴沉飞雪白。先拂商弦后角羽,四郊秋叶惊摵摵。董夫子,通神明,深山窃听来妖精。言迟更速皆应手,将往复旋如有情。空山百鸟散还合,万里浮云阴且晴,嘶......
  • 047、夜归鹿门歌
    047、夜归鹿门歌唐●孟浩然山寺钟鸣昼已昏,渔梁渡头争渡喧。人随沙岸向江村,余亦乘舟归鹿门。鹿门月照开烟树,忽到庞公栖隐处。岩扉松径长寂寥,惟有幽人自来去。 【现代诗意译】夜归鹿门歌黄昏时分山寺钟声远远传来,鱼梁洲渡头一片争渡的喧闹声。行人沿着沙岸向江边村庄走......