json断言(json断言如何设置)
本篇文章给大家谈谈json断言,以及json断言如何设置对应的知识点,希望对各位有所帮助,不要忘了收藏本站喔。
本文目录一览:
http返回的数据是json格式 jmeter怎么断言?
如我们要断言返回值的json中
{"name":"Simpsons family","members":[{"firstName":"Homer", "lastName":"Simpson"},{"firstName":"Marge", "lastName":"Simpson"},{"firstName":"Bart", "lastName":"Simpson"},{"firstName":"Lisa", "lastName":"Simpson"},{"firstName":"Maggie", "lastName":"Simpson"}]}
中members的第三条firstName的值等于Bart
则添加一个jp@gc - JSON Path Assertion断言
JSON Path 输入框填写$.members[2].firstName
Expected Value 输入框填写 Bart
超文本传输协戚早则议(HTTP,HyperText Transfer Protocol)是互联网上应用最为广泛的一种网络协议。所有的WWW文件都必须遵守这个标准。设计HTTP最初的目的是为了提供一种发布和接收HTML页面的方法。
1960年美国人Ted Nelson构思了一种通过计算机处理文本信息的方法,并称之为超文本(睁蔽hypertext),这成为了HTTP超文本传输协议标准架构的发展根基。Ted Nelson组织协调万维网协会高棚(World Wide Web Consortium)和互联网工程工作小组(Internet Engineering Task Force )共同合作研究,最终发布了一系列的RFC,其中著名的RFC 2616定义了HTTP 1.1。
[img]JMeter断言之JSON断言
若服务器返回的Response Body为JSON格式的数据,使用JSON断言来判断测试结果是较好的选择。
首先需要根据JSON Path从返回的JSON数据中提取需要判断的实际结果,再设置预棚贺期结果,两者进行比较得出断言结果。
下面首先介绍JSON与JSON Path相关的基础知识。
▲ 什么是JSON
● JSON(JavaScript Object Notation,JavaScript对象表示法)是一种轻量级的数据交换格式。
● JSON容易理解,便于阅读和编写;同时计算机也易于解析和生成,所以JSON有广泛的应用。
JSON基于如下两种结构:
1.名称/值对的集合
在各种语言中,这可以作为对象(object)、记录(record)、结构(struct)、字典(dictionary)、哈希表(hash table)、键控列表(keyed list)或关联数组(associative array)来实现。
2.值的有序列表
在大多数语言中,这是以数组(array)、向量(vector)、列表(list)或序列(sequence)的形式实现的。
JSON用于描述文本数据结构,有如下形式:
1.对象(object)
对象是一组无序的名称/值对。对象以{(左大括号)开始,以}(右大括号)结束。每个名称后面跟着:冒号,名称/值对之间用逗号分隔。
比如:
2.数组(Array)
数组是值的有序集合。数组以[(左中括号)开始,以](右中括号)结束。值之间用逗号分隔。
比如:
3.值(value)
值可以是字符串、数字、true/false、null、对象或数组。
4.字符串(string)
字符串是由零个或多个Unicode字符组成的序列,用双引号括起来,使用反斜杠转义。
字符表示为单个字符串。字符串非常类似于C或Java中的字符串。
5.数字(number)
一系列0-9的数字组合,枣绝可以为负数或者小数。还可以用e或者E表示为指数形式;数字非常类似于C或Java数字,但只是不使用八进制和十六进制格式。
6.空白符(whitespace)
可以在任意成对的语法符号之间插入空白符(包括空格、换行符、回车符、横向制表符)。
▲ 什么是JSONPath
我们经常使用XPath来分析、转换以及有选择地从XML文档中提取数据。与XPath类似,JOSNPath可以方便从JSON结构中发现和提取数据。
JSONPath中的“根成链岩派员对象”总是被称为$,无论它是对象还是数组。JSONPath表达式有“dot–notation”(.号)和“bracket–notation”([]号)两种不同的表示风格。
例如,
▲ JSONPath语法元素
▲ JSONPath实例
JSON断言可以对服务器返回的JSON文档进行验证。
JSON断言有两种使用模式:
1.根据JSONPath能否在JSON文档中找到路径;
2.根据JSONPath提取值并对值进行验证。
● 若文档格式为非JSON则断言失败;
● 若找不到路径断言失败;
● 若提取值与预期值不一致断言失败。
▲ 配置项
Assert JSON Path exists:
用于断言的JSON元素的路径(JSONPath)。
1.Additionally assert value
是否额外验证根据JSONPath提取的值。
● 不勾选,验证JSONPath能否在JSON文档中找到路径;
● 勾选,验证根据JSONPath提取值是否预期。
2.Match as regular expression
预期值是否可以使用正则表达式。
● 不勾选,预期值不能使用正则表达式表示;
● 勾选,预期值可以使用正则表达式表示。
Expected Value:
预期值。
1.Expect null
● 若验证提取的值为null,则勾选此项。
这里有两个地方需要额外注意:
a.验证null值,还是需要勾选“Additionally assert value”,否则验证的是JSONPath能否找到路径;
b.预期值不填表示空字符,与null不等价。
2.Invert assertion(will fail if above conditions met)
● 若勾选,表示对断言结果取反。
注意:
除了null外,还有一种特殊的值,就是空数组,预期值不能不填,需要设置为:[]
这里仍以前面介绍过的查询被购买商品的总金额接口为例来讲述JSON断言的用法。
该接口返回的响应数据为JSON,故可以使用JSON断言。
▲ 操作步骤
1.对预期结果要验证的项进行参数化
这里验证err_msg,result
将预期结果写入csv文件中
比如:
2.添加JSON Assertion并进行配置
JSON断言每次只能断言一个参数,因此这里需要添加多个JSON断言。
假设对错误消息与商品金额这个两个返回参数值做断言。
▲ JSON断言配置
1. 断言错误消息:
2. 断言商品金额:
jmeter中json提取器和断言器的简单用法
路径:选中测试计划右键-添加-后置处理区-json断言器
JSON Path exists: $.json中的值.json中的值 (与postman类似)
$. 就是json整个的开始 固定写法 后面根据json的层级往里面搜 碰到数组的时候使用:json的值[0] 漏型 数组从0开始 0是第一个数组 以此类推
Expected Value: 固定参数 或变量 ${变量名}
反转条件是满足填写的期望返备猜值就滚迹断言失败
这边有个坑,dafault values不写的话 会报数组越界,不知道为什么,加上就能正常执行获取
关于json断言和json断言如何设置的介绍到此就结束了,不知道你从中找到你需要的信息了吗 ?如果你还想了解更多这方面的信息,记得收藏关注本站。