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

辛迪

我对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

并且“随请求一起发送参数”字段中的参数名称/值对为:

  • calendarName,$ {calendarName}
  • 位置,$ {location}
  • calendarId,$ {calendarId}

我从问题下方的注释中得知,查询字符串不应包含在path字段中,因此问号后的所有内容都应在“随请求一起发送参数”字段中进行处理。因此路径应如下所示:

/myCalendar?

名称/值对中的名称应使用每个等号之前存在的变量,如下所示:

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

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

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

如何将url参数(查询字符串)传递给Angular上的HTTP请求?

使用Fetch GET请求设置查询字符串

api 请求 - 参数与查询字符串?

如何在Ionic 3上将URL参数(查询字符串)传递给HTTP POST请求

带有查询字符串参数的node.js http'get'请求

commons httpclient-将查询字符串参数添加到GET / POST请求

如何通过使用JQuery AJAX在GET请求中将数组作为查询字符串传递

使用Node和Express将查询字符串作为实际字符串传递给请求

在Elasticsearch搜索中,GET请求的查询字符串参数和POST请求的“查询DSL”功能是否等效?

尽管查询字符串参数正确,但Ajax GET请求为空

Python中使用请求的查询字符串数组参数

将查询字符串参数传递给SSRS报告

Express - 如何在不使用查询字符串参数的情况下将数据传递给模型

将查询字符串数据传递给表单

从查询字符串中删除请求参数

python从查询字符串参数获取请求

如何将查询字符串参数传递给数据的Ajax调用

服务器如何知道GET请求中正在使用哪个字符编码的查询字符串?

如何在http.Get请求中使用双引号和冒号作为查询字符串?

如何使用node.js将查询字符串参数传递给Smartsheet API?

HTTP GET省略查询字符串参数

AngularJS $ http GET逗号分隔的查询字符串参数

如何从URL中获取查询参数以及泛型而不是Spring Boot中GET请求的字符串

使用查询字符串参数传递表单数据

Jmeter-使用请求有效负载和查询字符串参数创建https发布请求

将+保留在get请求字符串中

在查询字符串NodeJS和请求模块中传递重音字符

将多个选项传递到 POST 请求的 URL 查询字符串的正确方法

如何将 JSON 字符串作为请求参数传递给其他服务