接口测试 [求助][Jmeter] jmx 为 xml 文件,用 Java 在生成该 xml 文件时,如何生成 bodyData 参数化里的参数

樂易 · May 14, 2019 · Last by carlsenshen replied at May 17, 2019 · 1480 hits

背景

  • jmx 为 xml 文件,用 Java dom4j 来生成对应的 xml 文件

问题描述

  • jmeter 在 bodyData 里,参数化是直接 ${taskId_1},如下图

  • 而我自己用 java 生成的 xml 文件丢到 jmeter 里面查看,格式如下图,直接变成了一串字符串

求助

请问如何用 Java 实现把 ${taskId_1}这一整块塞到 value 里面?如第一张图所示

共收到 10 条回复 时间 点赞

把双引号去掉就行了吧?

樂易 #2 · May 14, 2019 Author
Jerry li 回复

嗯,需要的是去掉引号,但是我这边前面用 String 拼接成"${task_1}",然后用 fastjson 在 body 里面直接 set 进去,像下面这样

然后出来的直接就是 String,想问一下有没有哪种方法可以直接不用引号,直接把 ${task_1}放到 value 里面

你用 json 序列化出来肯定是带引号的,不带引号只能自己拼接字符串

樂易 #4 · May 14, 2019 Author
arrow 回复

我自己拼接的字符串也是 String 形式的,请问自己拼接字符串具体怎么实现

JSONPath.set 的 value 可以不是 String,但是 ${param} 这个形式只能是字符串了。。
JMeter 里面 "${param}" 也是会替换成变量值的吧,请求发到服务端 json 转对象应该也是可以兼容的

樂易 #6 · May 15, 2019 Author
Mr_Peace 回复

我试了一下,JMeter 里面 "${param}"这个不会转换,直接当字符串传过去了,服务端返回参数类型错误,emmm,这就很愁了

樂易 回复

没转的话 说明没这个变量,可以在 debug sampler 里面检查下

樂易 #8 · May 15, 2019 Author
Mr_Peace 回复

按照这个思路排查了一下,真的可以,问题解决了,谢谢大佬👍

樂易 回复

☺ 惭愧惭愧

Author only
需要 Sign In 后方可回复, 如果你还没有账号请点击这里 Sign Up