当前位置: 首页 > 知识库问答 >
问题:

来自文件的JMeter HTTP请求Post正文

贾俊艾
2023-03-14

我正试图通过JMeter发送HTTP请求。我创建了一个循环计数为25的线程组。我有一个120的加速期,线程数设置为30。在线程组中,我有20个HTTP请求。对于JMeter如何运行这些请求,我有点困惑。一个线程组内的20个请求是否都在一个线程中运行,而线程组上的每个循环是否在不同的线程上并发运行?或者,20个请求中的每一个都在可用时在不同的线程中运行。

我的另一个问题是,在每个循环中,我想改变通过HTTP请求发送的post数据的主体。是否可以通过文件传递post数据体,而不是将数据插入JMeter body data选项卡,如下所示:

然而,我不想这样做,而是想定义某种变量,根据正在运行的线程组的迭代来选择一个文件,例如,如果它第二次在线程组上循环,我想调用test2。txt,如果第三次测试3。这些文本文件将包含不同的post数据。请告诉我JMeter是否可以实现这一点,如果可以,我将如何进行。

共有1个答案

戴浩初
2023-03-14

第1点——JMeter并发性

JMeter从1个线程开始,并根据渐变集生成更多线程。在您的情况下(30个线程和120秒爬升),每4秒添加一个线程。每个线程执行20个请求,如果有另一个循环——重新开始,如果没有循环——线程将关闭。为了控制负载和并发性,JMeter提供了两个选项:

  1. 同步计时器-暂停所有线程,直到达到指定阈值,然后同时释放所有线程

第2点-发送文件而不是文本

您可以用__fileToString函数替换您的请求正文。如果您想参数化它,您可以使用嵌套函数来提供当前迭代——见下文。

第3点-添加迭代作为参数

JMeter提供了2个关于如何在每个循环中增加计数器的选项

  1. 计数器配置元素-从指定值开始,每次调用时递增指定值。
  2. __counter函数-从1开始,每次调用时递增1。可以是“每个用户”或“全局”

有关上述及更多JMeter函数的全面信息,请参阅《如何使用JMeter函数》系列文章。

 类似资料:
  • 我正在使用最新版本的JMeter,并试图从JMeter发出POST请求,但我无法看到更改HTTP方法的下拉列表。你能告诉我为什么我看不到下拉列表吗? 请在下面找到JMeter的屏幕截图。它没有用于指定HTTP方法的下拉列表。

  • 问题内容: 我想通过PHP 在Blogger博客中添加帖子。Google提供了以下示例。如何在PHP中使用它? 您可以通过向带有帖子JSON正文的帖子集合URI发送POST请求来为博客添加帖子: 问题答案: 您需要使用cURL库发送此请求。 如果由于某种原因您不想/不想使用cURL,可以这样做:

  • 在过去的几天里,我一直在努力解决这个问题,我想我尝试了在互联网上找到的每一个例子。我正在尝试登录我的REST,并获取持续通信的授权码。它在使用邮递员时有效 ------取自邮递员生成代码片段---- 它回来了 我的CodenameOne项目中的代码是: 当使用CodenameOne模拟器网络监视器时,会产生以下结果

  • 我试图从AWS API网关上的REST API调用POST方法。使用curl(用于POST)从命令行正确调用API,使用GET从浏览器正确调用API,因此我知道它工作正常,但我似乎找不到正确的方法使用ConnectionRequest类在codename one上调用POST方法,阅读文档theres addArgument()和setRequestBody(),他们说,它们是独占的,所以我尝试了

  • 不管用。就像文件没有正确地附加到HTTP请求一样。 编辑:我终于明白了问题是POSTMAN可以访问我的文件系统,但我试图运行导出代码段的远程服务器没有--这是我的一个非常愚蠢的错误。

  • 我想通过AJAX请求检索我的本地JSON文件数据。当我在Chrome中启动html时,它产生了错误: XMLHttpRequest无法加载。跨源请求仅支持以下协议方案:超文本传输协议、数据、chrome、chrome-扩展、https、chrome-扩展-资源。 以下是我的代码: 如果我添加<code>数据类型:“jsonp”,则 它返回我错误函数。