如何使用Jmeter根据用户输入即时更改变量或值?

时间:2018-07-25 18:04:20

标签: jmeter jmeter-4.0

我正在使用JMeter测试一个Web OE网站,用户可以在其中选择产品,然后选择宽度,高度,颜色和其他选项。根据宽度和高度,将返回不同的价格。

我使用脚本记录器记录了创建产品的步骤,但是在HTTP Request中使用设置值来设置参数。我可以使用Width数据集来更改HeightCSV,但是价格的值似乎是硬编码的或基于脚本记录器设置的。我想不出一种方法来使价格变量动态变化,并根据变化进行更新或在宽度和高度变化时重新计算。

我需要根据CSV引入的宽度和高度的不同来进行价格变化。之所以进行测试,是因为我可以测试即使每次编写代码后,每次定价都相同更改站点。任何建议或示例都将有所帮助。

1 个答案:

答案 0 :(得分:0)

很可能正在使用客户端JavaScript 计算 ItemPrice值。

根据JMeter project main page

  

JMeter不是浏览器,它在协议级别工作。就Web服务和远程服务而言,JMeter看起来像一个浏览器(或更确切地说,是多个浏览器)。但是,JMeter不会执行浏览器支持的所有操作。特别是, JMeter不会执行HTML页面中的Javascript 。它也不会像浏览器那样呈现HTML页面(可以将响应查看为HTML等,但是计时未包含在任何示例中,并且一次仅在一个线程中显示一个示例)。

因此,如果我的假设正确,并且此ItemPrice来自JavaScript,您将无法通过修改参数来触发更改。

  1. 以某种方式获得取决于尺寸的价格计算算法(查看页面源,四处询问,与开发人员联系)
  2. JSR223 PreProcessor添加为请求的子项
  3. 即使JavaScript在“语言”下拉列表中存在,也要在Groovy language中进行登录
  4. 用生成的值替换记录的硬编码价格