在循环HTTP请求中使用多个JSON文件

在循环HTTP请求中使用多个JSON文件,json,jmeter,Json,Jmeter,我在循环控制器中有一个HTTP请求。我还有多个.json文件,其中包含基于我要发布到的数据库中的唯一约束的唯一值。每个文件都遵循命名约定\u n.json。(其中n=1、2、3等) 问题是: 如何让HTTP请求的主体在每个循环中拾取不同的文件。我正试图找出实现这一目标的最佳方法。我已经验证了如果我硬编码完整的文件名,它在第一个线程循环中是成功的 ${__FileToString(C:/.../.../recallable payloads/${__eval(Contract_1)}.json,,

我在循环控制器中有一个HTTP请求。我还有多个.json文件,其中包含基于我要发布到的数据库中的唯一约束的唯一值。每个文件都遵循命名约定\u n.json。(其中n=1、2、3等)

问题是:

如何让HTTP请求的主体在每个循环中拾取不同的文件。我正试图找出实现这一目标的最佳方法。我已经验证了如果我硬编码完整的文件名,它在第一个线程循环中是成功的

${__FileToString(C:/.../.../recallable payloads/${__eval(Contract_1)}.json,,)} 
我尝试了以下方法,但每次都失败了:

${__FileToString(C:/.../.../recallable payloads/${__eval(Contract_(.+?))}.json,,)} 
${__FileToString(C:/.../.../recallable payloads/${__eval(Contract_)(.+?)}.json,,)} 
${__FileToString(C:/.../.../recallable payloads/${__eval(Contract_)}(.+?).json,,)} 
关键是,我不能将所有记录放在一个文件中,因为在这种情况下这是不现实的。每个都必须单独存储,并通过线程在每个循环上由HTTP请求获取

我刚刚了解了_StringFromFile函数。我应该用这个吗

我试着在身体里使用下面的方法

 ${_StringFromFile(Contract_#'.'json,,1,2)} 
这导致

 POST http://..../2002/crud/Contract
 POST data:
 **ERR**

 "RuntimeException",
 "cause": null,
 "message": "Unexpected character ('*' (code 42)): expected a valid value (number, String, array, object, 'true', 'false' or 'null')\n 

但我在任何地方都找不到

如果您使用的是jmeter循环控制器,您可以添加一个计数器配置元素。看看这里

另外,我建议将路径放在用户定义的Variables config元素中,以简化操作。。差不多 本地目录 ${u BeanShell(导入org.apache.jmeter.services.FileServer;FileServer.getFileServer().getBaseDir(),)}

然后您可以引用您的配置,比如${localDir}/Contract{counter\u index}.json


如果您将jmeter结构的屏幕截图放到屏幕上,这将非常有用

丹,谢谢你的反馈。我已经添加了HTTP请求和用户定义变量的屏幕截图。Dan,你的回答直接引导了我正确的方向,并取得了成功。创建循环计数器后,我能够将其传递到主体中:
${{FileToString(${Payload}/${uu eval(Contract{CtrtLoopCounter}})json,,)}
谢谢!