jsonpath

本文介绍了如何使用jsonpath在接口测试中提取数据,包括jsonpath操作符和过滤器运算符的使用,以及一个接口数据驱动测试框架的设计与实现,详细阐述了框架结构、excel数据规则和底层代码实现。
摘要由CSDN通过智能技术生成

jsonpath是使用一种简单的方法提取给定的json文档的部分内容,我们做接口测试时,目前主要流行的数据结构是json,遇到复杂的json格式,使用jsonpath提取数据

1、jsonpath操作符

操作 说明
$ 查询根元素,
@ 当前接口由过滤词处理
* 通配符,
. . 深度扫描
. 表示子节点
[“(,”)] 括号表示子项
[(,)] 数组索引或者索引
[start:end] 数组切片
[?()] 过滤表达式,表达式要求值为一个布尔值

2、过滤器运算符
过滤器是筛选数组的逻辑表达式,一个典型的过滤器是[?@.age>18)],其中@正在处理的当前节点,可以使用逻辑运算符&&和||创建更复杂的过滤器,字符串文字必须用单引号或者双引号括起来,(?@.color==‘blue’)]或者[?@.color==‘blue’)])

在线调试jsonpath:http://www.e123456.com/aaaphp/online/jsonpath/?

jsonpath示例:
在这里插入图片描述
提取token:

token = jsonpath.jsonpath(res.json(),'$.data')[0]
#1、第一个参数表示要解析的对象
#2、第二个参数你要提取的数据对应的jsonpath表达式
#3、如果表达式能够取到值,不管是1个还是多个,返回的都是列表,所以我们在后面加了[0]
#4、如果表达式匹配不到数据,那么它返回的值是False

接口数据驱动测试框架实战

1、数据驱动框架设计

1、框架结构

  • common:这是一个package,主要用来存储所有底层的代码封装
  • logs:这是一个目录,主要用来存储日志文件
  • report:这是一个目录,data表示测试结果数据,htnl测试报告
  • testcases:这是一个目录,用来存储excel文件,excel 文件时接口测试相关的数据
  • conftest.py:重写pytest自带的内置函数,统一管理自定义的fixture
  • pytest.ini:pytest相关的配置参数
  • run.py:整个框架执行的入口

2、excel数据规则设计

按照一定的维度进行分类,每个分类可以当作一个sheet工作表

  • 全局变量:主要用来管理我们的公共数据
变量名称 变量值
host http://82.156.74.26:9099
username 18866668888
password 123456
  • 接口默认参数
    通常在一个项目中,json参数如果有很多个的时候,我们针对测试用例去传递参数会很麻烦,所以我们针对每个接口的默认参数数据进行单独处理,在测试时只需要针对当前测试用例传递你要测试的某个字段值即可,其他字段统统采用默认值
    填写参数的规则:对于接口参数可能会有好几种类型的,data类型、params类型、json类型、文件等

data类型:

{
    
    "data":{
   
        "xxx":"xxxxxxx"
    }
}

params类型

{
    
    "params":{
   
        "xxx":"xxxxxxx"
    }
}

json类型:

{
    
    "json":{
   
        "xxx":"xxxxxxx"
    }
}

混合参数(既有data,也有params,有json

{
    
    "data":{
   
        "xxx":"xxxxxxx"
    }
    "json":{
   
        "xxx":"xxxxxxx"
    }
    "params":{
   
        "xxx":"xxxxxxx"
    }
}
接口名称 默认参数
登录 { “data”: { “username”: “ u s e r n a m e " , " p a s s w o r d " : " {username}", "password": " username","password":"{password}” }}
新增客户 { “json”: { “entity”: { “customer_name”: “沙陌001”, “mobile”: “18729399607”, “telephone”: “01028375678”, “website”: “http://mtongxue.com/”, “next_time”: “2022-05-12 00:00:00”, “remark”: “这是备注”, “address”: “北京市,北京城区,昌平区”, “detailAddress”: “霍营地铁口”, “location”: “”, “lng”: “”, “lat”: “” } }}
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值