如何在没有 post 请求的情况下使用 Jmeter 在文本框中输入值

How to enter value in text box using Jmeter without post request

我正在构建 Jmeter 测试计划,在网站上我有一个文本,只要我在文本框中输入任何值,它就会计算一些内容并填充一个值。这里没有post/get请求。那么在这种情况下我该如何输入一些值呢?

我什至记录了所有内容,但没有看到该值正在发布,所以我将不得不通过 jmeter 在没有 get/post 的情况下将值输入文本框。

在下面的屏幕截图中,880 是我想通过 Jmeter 插入的值。

Html 文本框代码为:

<input type="number" class="form-control amount_value" id="x_amount" name="amount" placeholder="Number of values" required="required" onkeyup="getprice('SIP','sip-amount',this.value,'4.5556665565')">

根据JMeter project主页:

JMeter is not a browser, it works at protocol level. As far as web-services and remote services are concerned, JMeter looks like a browser (or rather, multiple browsers); however JMeter does not perform all the actions supported by browsers. In particular, JMeter does not execute the Javascript found in HTML pages. Nor does it render the HTML pages as a browser does (it's possible to view the response as HTML etc., but the timings are not included in any samples, and only one sample in one thread is ever displayed at a time).

所以你有两个选择:

  1. 有一个 WebDriver Sampler plugin for JMeter which provides integration with Selenium 所以你将能够启动一个真正的浏览器,它能够执行客户端 JavaScript 因此计算值会在那里
  2. 如果浏览器方法不适合您需要使用 JSR223 PostProcessor with preferably Groovy 语言
  3. 实现此 getprice() JavaScript 功能