我正在尝试使用J抄的Graphql HTTP请求来加载我的GraphQL。我正在JSR223预处理器中读取CSV文件以创建ArrayList。我正在将ArrayList加载到参数中。当我使用参数值时,由于格式化问题,我得到了错误。查询时不使用该参数。
query MyQuery { batchGetData(input_data: ["aqwedasd","aqwedasq"]) { data { value1 value2 value3 }
没有参数的JMeter请求体。 下面的请求工作正常,没有任何问题.
POST https://example.com/graphql POST data: {"operationName":null,"query":"query MyQuery {\n batchGetData(input_data: [\"aqwedasd\",\"aqwedasq\"]) {\n data {\n value1\n value2\n value3\n }\n }\n}"} [no cookies]
现在,使用JSR223预处理器,我读取了一个CSV文件,并使用下面的脚本创建了一个ArrayList,并将其添加到 listdata 参数中。
def rows = new File("values.csv").readLines() Collections.shuffle(rows) ArrayList<String> listdata = new ArrayList<String>() listdata = rows.subList(0, 5) vars.putObject("listdata", listdata)
现在,在我的查询中,我使用了上面的 listdata 参数。
GraphQL查询:
query MyQuery { batchGetData(input_data: ${listdata}) { data { value1 value2 value3 }
现在,当我运行线程组时,JMeter将查询转换为下面的请求体。这会失败,因为它没有与之前的请求相同的**。
POST https://example.com/graphql POST data: {"operationName":null,"query":"query MyQuery {\n batchGetData(input_data: ["aqwedasd","aqwedasq"]) {\n data {\n value1\n value2\n value3\n }\n }\n}"} [no cookies]
对于上述请求,我将得到以下错误
{ "errors" : [ {