JMeter:使用CSV数据向HTTP GET请求查询字符串传递参数

JMeter:使用CSV数据向HTTP GET请求查询字符串传递参数,csv,get,jmeter,httprequest,load-testing,Csv,Get,Jmeter,Httprequest,Load Testing,我是JMeter的新手,正在创建一个负载测试。我在HTTP采样器中有一个GET请求,如下所示: /myCalendar?c={calendarName}&l={location}&i={calendarId}&loc={locationId}&s={calendarEvent}&a={eventId}&t={epochTime} 大括号中显示的名称是我的参数名称。每个参数都有自己的.csv文件,因此也有自己的csv数据集配置元素。在HTTP采样器

我是JMeter的新手,正在创建一个负载测试。我在HTTP采样器中有一个GET请求,如下所示:

/myCalendar?c={calendarName}&l={location}&i={calendarId}&loc={locationId}&s={calendarEvent}&a={eventId}&t={epochTime}
大括号中显示的名称是我的参数名称。每个参数都有自己的.csv文件,因此也有自己的csv数据集配置元素。在HTTP采样器的“随请求发送参数”字段中,这些参数中的每一个都链接到各自的CSV文件

我的测试失败了,但我可以通过单击结果树中的失败测试指示器来判断所有参数都从.csv文件返回了正确的值。但是,我注意到,如果我只将一些值硬编码到查询字符串中,在某些情况下测试将通过

例如,这失败了

/myCalendar?c=calendarName&l=location&i=calendarId&loc=locationId&s=calendarEvent&a=eventId&t=epochTime
……但这一点过去了:

/myCalendar?c=calendarName&l=BMJErIH4Mku4HwdHyuX2XA&i=84Rza73ERUmRGb99NWZytw&loc=locationId&s=calendarEvent&a=odH1gBRnH0moh5YN4tgczw&t=157963549
如果我通过使用指向.csv文件的参数替换硬编码的epochTime来修改通过的请求,则会出现以下错误:

服务器在处理请求时遇到错误。例外 消息为“”的值不能为空。参数名称:edate

如果我将epochTime恢复为其硬编码值,并用其他三个硬编码值的相关参数替换它们,则会出现以下错误:

服务器在处理请求时遇到错误。例外 消息为“错误的base64到GUID的转换”

我意识到这可能是一个完全不同的问题,但这些值在硬编码到查询字符串中时确实有效,因此我不明白如果从.csv文件中提取,它们为什么不起作用

最后,值得注意的是,我确实有使用以下语法的单参数测试用例,其中“生日”是一个用户定义的变量,如下所示。我发现在具有多个变量的查询字符串中使用此语法会在第一个“{”字符处引发异常

myCalendar/${Birthday} 

非常感谢您的帮助!

我的测试失败的原因很简单,因为我在HTTP请求采样器的路径字段中输入了错误的信息

起初,我的道路是这样的

/myCalendar?c=calendarName&l=location&i=calendarId&loc=locationId&s=calendarEvent&a=eventId&t=epochTime
“随请求发送参数”字段中的参数名称/值对为:

  • calendarName,${calendarName}
  • 位置,${location}
  • calendarId,${calendarId}
我从问题下方的注释中了解到,查询字符串不应包含在路径字段中,因此问号后的所有内容都应在“随请求发送参数”字段中处理。因此路径应如下所示:

/myCalendar?
名称/值对中的名称应使用每个等号前面的变量,如下所示:

  • c、 ${calendarName}
  • l、 ${location}
  • i、 ${calendarId等}

我的所有测试现在都通过了,并按预期遍历了我的多个.csv文件。

你的csv文件有标题吗?你能发布每一行的前几行的示例吗?我刚刚创建了测试计划,使用2个csv文件对simple server进行测试,它成功了。这是使用JMeter文件和示例文件进行的测试-。非常感谢,理查德。你帮了我!我的测试失败的原因不是因为CSV文件本身(它们都没有标题)。我的测试失败是因为我在HTTP请求采样器的路径字段中输入了错误的信息,而我之所以能够看到这一点是因为您向我发送了您的JMeter文件。我将用完整的解释来回答问题,但我希望我有足够的声誉来支持您的评论。感谢您的帮助,并为此付出了额外的努力!有什么问题吗制作全局参数的方法?比如共享参数,比如api键。很抱歉,我已经好几年没碰JMeter了。我希望我能帮上忙,但希望其他人能帮上忙。