最近决定用Apifox写接口自动化测试用例,于是研究了这个工具的具体实践,下面把最近实践过程中遇到的问题和解决方案进行总结,方便回看。
Apifox它是集:接口文档管理、接口调试、Mock、接口自动化测试于一体的全流程集成工具,覆盖从开发->测试->管理等环节,等同于 Postman + Swagger + Mock + JMeter几款工具功能累加。
下面从以下几个方面来进行总结:
1json path语法及使用
2.参数化使用
3.结果验证
1.1Json path介绍
- JSONPath 之于 JSON,就如 XPath 之于 XML。
- JsonPath 是设计来作为 JSON 的路径语言,用于确定 JSON 文档中某部分位置的语言。
- JSONPath 可以方便对 JSON 数据结构进行内容提取。
- JsonPath 将 JSON 数据转换为 DOM 树状结构,并提供在数据结构树种寻找节点的能力。
1.2.Json path语法
JsonPath语法要点:
$ 表示文档的根元素
@ 表示文档的当前元素
.node_name 或 ['node_name'] 匹配下级节点
[index] 检索数组中的元素
[start:end:step] 支持数组切片语法
** 作为通配符,匹配所有成员**
.. 子递归通配符,匹配成员的所有子元素
(<expr>) 使用表达式
?(<boolean expr>)进行数据筛选
1.3.Json path使用
直接从返回结果中获取第一个元素
image.png
image.png
从返回结果中获取iata=3Q的子节点中的id号
image.png
image.png
2.如何参数化
1.用两个{}的形式来传参,如{{flightId}}
2.如果提取变量是列表形式,可以取其中某一个,如{{flightId[0]}}
3.可以选择右侧的“魔法棒”动态值来选择变量/常量或动态变量
image.png
3.结果验证
3.1返回结果验证
- 状态码验证(根据实际情况选择响应码,如200或400)
- 内容格式验证(一般返回是json格式,也可能是其他,根据实际情况选择)
-
根节点验证(如果不想做校验,选择any即可)
image.png
3.2添加断言
-
响应内容为字符串,断言对象中选择 Response Text
image.png -
响应内容为json,断言对象选择Response json
image.png -
断言内容为变量,断言对应选择Response xml
image.png -
如果以上都无法满足,使用自定义脚本添加断言
image.png
网友评论