Jmeter提取接口返回数据并存储为文件

Jmeter提取接口返回数据并存储为文件,第1张

场景

需要对单个接口执行压测,请求该接口需带上token值,且每次发起请求的token值不同。token值是由登录接口返回

解决方法

先使用参数化方式执行登录接口,使用JSON提取器获取token值,使用beanshell将值存储至文件

执行

登录接口返回的数据形式如下:

{"code":1,"msg":"请求成功","data":{"phone":"13055555555","token":"eyJhdWQiOiIxMzV4cCIaNjk3LCJ1c2VySWQiOiIxMzA0MzISJ9"}}

添加JSON提取器

分别填入变量名与提取路径
提取多个值,可用;进行分隔

phone;getToken
$.data.phone;$.data.token


添加BeanShell处理器


脚本代码:

FileWriter fstream = new FileWriter("D:\work\test.txt",true);
BufferedWriter out = new BufferedWriter(fstream);
out.write(vars.get("phone")+",");
out.write(vars.get("getToken")+"\n");
out.close();
fstream.close();

执行后可成功在对应位置找到test.txt文件,里面存储手机号与对应的token值

遇到的问题

最初写脚本时文件路径写为D:\work\test.txt
执行后报错信息显示如下:

 ERROR o.a.j.u.BeanShellInterpreter: Error invoking bsh method: eval	Sourced file: inline evaluation of: ``FileWriter fstream = new FileWriter("D:\work\test.txt",true); BufferedWriter out . . . '' Token Parsing Error: Lexical error at line 1, column 41.  Encountered: "w" (119), after : "\"D:\"

将文件路径改写为D:\work\test.txtD:/work/test.txt 后可正确执行并输出文件
具体原因可查询java中文件路径写法
在java中反斜杠“\”需要进行转义,写成“\”才能被识别

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

原文地址: http://outofmemory.cn/langs/871459.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-05-13
下一篇 2022-05-13

发表评论

登录后才能评论

评论列表(0条)

保存