Jmeter性能测试学习记录(四)-提取Json数据和获取系统时间

这些天在使用Jmeter进行接口测试的时候,我遇到一些问题,做一下记录:

1.登录的时候会获取到tokenId这个字段信息,后面的接口都要用到这个字段信息。那么怎么拿到这个数据并且让它可以为后面的接口所用呢?

由于我在调用登录接口后,发现tokenId这个字段信息是存放json数据里面,所以就要用到Json Extractor了。

(1)点击线程组的“Add-Sampler-Http Request”,新增一个HTTP请求,命名为“登录系统”,输入正确的网址和参数,改为Post方法;

(2)点击HTTP请求的“Add-Post Processors-Json Extractor”,新增一个Json提取器,如下图:

(3)由于登录系统接口返回的数据大致如下,所以在Json Path expressions输入“$..token”。

有人可能就不明白了,为什么这么写,首先名称也就是Names of created variables,由我们自己定,但是要注意的一点是必须与后面引用时的名称一致。例如,我在后面一个接口中要用到这个参数,所以Value必须是“${对应名称}”,如下图:

JSON Path expressions 的写法是有格式的,为什么是“$..token”呢?

具体可以参考实例:https://github.com/json-path/JsonPath

2.如何获取系统时间

我在接口测试的时候发现有一个接口需要进行实时刷新,其中有一个参数就是系统时间,具体如下:

time=2020-03-27%2B15%3A43%3A12+。

可以用__time()函数获取当前时间

${__time()} 当前时间到计算机元年的毫秒数

${__time(时间格式)}  以预定的格式显示当前时间


time     ${__time()}                           1585300919568
YMD      ${__time(YMD)}                        20200327
HMS      ${__time(HMS)}                        171215
YMDHMS   ${__time(YMDHMS)}                     20200327171215
time1    ${__time(yyMMdd)}                     200327
time2    ${__time(yyyy-MM-dd)}                 2020-03-27         
time3    ${__time(yyyy-MM-dd'T'HH:mm:ss)}      2020-03-27T17:12:15
time4    ${__time(yyyy-MM-dd'T'HH:mm:ss.SSS}   2020-03-27T17:12:15.123

只需要添加参数time,Value设置成“${__time(yyyy-MM-dd'+'HH:mm:ss)} ”

 

你以为这样就没问题了吗?结果还是报错了,一看Request Body,原来是格式不对,所以一定要记得勾选“URL Encode”,让time参数的值做转码处理。

发布了63 篇原创文章 · 获赞 9 · 访问量 6万+

猜你喜欢

转载自blog.csdn.net/shan286/article/details/105112604