Jmeter 解析json文件(多条件获取数组中某个节点的值)

Jmeter 解析json文件(多条件获取数组中某个节点的值),第1张

使用jmeter做接口测试时,经常会要获取json文件中数组中某个相同节点的值。如下述json文件

想要获取claimLabors节点下claimEstimateItemName="前保险杠骨架"且operationType= "03"的partNo。

分析:

1、jmeter中要想获取到claimLabors节点下claimEstimateItemName="前保险杠骨架"且operationType= "03"的partNo值,必须要解析该json文件。所以需要在beanshell中使用第三方jar包,则先要在idea中新建工程jmeterTool

2、在idea中新建工程jmeterTool,并新增类:JsonUtil

这里提供两种方法获取partNo的值。

方法一:通过jsonpath获取partNo的值。

方法getJsonVal得到一个list返回值,因为是某一个具体的值,所以直接使用substring截取[]内的内容即可。

方法二:通过jsonpath获取partNo所属数组的整个节点,再通过map获取partNo的值。

方法getJsonNode得到一个list<Map>对象,因为是list里只有一个对象,所以使用listget(0)获取到map,再通过mapget("任意字段名称")即可获取对应的值。

上述main方法中的测试,是为了方便后续打jar包。

这里解析json,用到json-path包,所以在工程中需要导入该包:

3、将上述工程打成jar包。

打完包后,进入到包所在的路径下,结构如下:

如果不是上述内容,需要修改一下(将工程的META-INF目录下MANIFESTMF文件中的内容复制过来即可)。否则cmd测试时会提示:没有主清单

4、将打的包放到jmeter安装目录的lib\ext文件夹下

5、打开jmeter,在对应脚本的beanshell中引入该包中的JsonUtil类并调用

ok了。

盒子 原来的位置 0 + 10 盒子现在的offsetLeft 10

|-5| = 5

这三个函数都是 数学函数

Math

比如说 consolelog(Mathceil(101)) 结果 是 2

consolelog(Mathceil(19)) 结果 2

consolelog(Mathceil(-13)) 结果 是 -1

比如说 consolelog(Mathfloor(101)) 结果 是 1

consolelog(Mathfloor(19)) 结果 1

consolelog(Mathfloor(-13)) 结果 是 -2

consolelog(Mathround(101)) 结果 是 1

consolelog(Mathround(19)) 结果 是 2

匀速动画的原理: 盒子本身的位置 + 步长

缓动动画的原理: 盒子本身的位置 + 步长 (不断变化的)

( 缺陷:只能水平方向!随后的“封装运动框架单个属性会进一步改进” )

我们访问得到css 属性,比较常用的有两种:

点语法可以得到 width 属性 和 top属性 带有单位的 。 100px

但是这个语法有非常大的 缺陷, 不变的。

后面的width 和 top 没有办法传递参数的。

var w = width;

boxstylew

最大的优点 : 可以给属性传递参数

我们想要获得css 的样式, boxstyleleft 和 boxstylebackgorundColor

但是它只能得到 行内的样式。

但是我们工作最多用的是 内嵌式 或者 外链式 。

怎么办?

核心: 我们怎么才能得到内嵌或者外链的样式呢?

外部(使用<link>)和内嵌(使用<style>)样式表中的样式(ie和opera)

两个选项是必须的, 没有伪类 用 null 替代

我们这个元素里面的属性很多, left top width ===

我们想要某个属性, 就应该 返回该属性,所有继续封装 返回当前样式的 函数。

千万要记得 每个 的意思 : 那是相当重要

flag在js中一般作为开关,进行判断。

等动画执行完毕再去执行的函数 回调函数

我们怎么知道动画就执行完毕了呢?

很简单 当定时器停止了。 动画就结束了

案例源码:

in运算符也是一个二元运算符,但是对运算符左右两个 *** 作数的要求比较严格。in运算符要求第1个(左边的) *** 作数必须是字符串类型或可以转换为字符串类型的其他类型,而第2个(右边的) *** 作数必须是数组或对象。只有第1个 *** 作数的值是第2个 *** 作数的属性名,才会返回true,否则返回false

案例源码:

链接: > 密码:7fv8

json中取出对象的属性值步骤如下:

1、打开vscode,创建一个测试页面JsonTesthtml,用于演示在js中如何获取json对象的属性集合。

2、在测试页面中,定义一个js变量,将其赋值为json格式的字符串,用于模拟从后台返回过来的json字符串值,以及后续转换为json对象,和获取其属性集合。var json = "[{\"Col1\": \"Hello\", \"Col2\": \"World\"}, {\"Col1\": \"您好\", \"Col2\": \"世界\"}]"。

3、使用js的eval函数,将json字符串的变量值,转换为json对象。var $json = eval("(" + json + ")");

4、得到json对象之后,使用for-in循环语句,得到json对象的序号,也就是,这个json对象中,还有多少个子对象。

5、因为js是弱类型的语言,并不要求json对象中的每个子对象属性都一样。所以,在得到序号之后,使用Objectkeys($json[i]); 就能获取到当前json子对象的属性集合。

6、如果想要获取到json对象的每个具体的列名和值,就需要再加一个for循环,遍历列名,得到列名和值。

以上就是关于Jmeter 解析json文件(多条件获取数组中某个节点的值)全部的内容,包括:Jmeter 解析json文件(多条件获取数组中某个节点的值)、前端基本功:JS(十一)动画封装(CSS样式获取、JSON遍历)、json中怎么取出对象的属性值啊等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!

欢迎分享,转载请注明来源:内存溢出

原文地址:https://54852.com/web/9486221.html

(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
上一篇 2023-04-28
下一篇2023-04-28

发表评论

登录后才能评论

评论列表(0条)

    保存