我对JMeter相当陌生,正在创建负载测试。我在HTTP Sampler中有一个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 Request Sampler的Path字段中输入了错误的信息。
最初,我的道路是这样的,
/myCalendar?c=calendarName&l=location&i=calendarId&loc=locationId&s=calendarEvent&a=eventId&t=epochTime
并且“随请求一起发送参数”字段中的参数名称/值对为:
我从问题下方的注释中得知,查询字符串不应包含在path字段中,因此问号后的所有内容都应在“随请求一起发送参数”字段中进行处理。因此路径应如下所示:
/myCalendar?
名称/值对中的名称应使用每个等号之前存在的变量,如下所示:
我的所有测试现在都通过了,并按预期遍历了多个.csv文件。
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句