JMeter HTTP请求从文件发布正文

kus*_*uza 3 testing jmeter performance-testing

我试图通过JMeter发送HTTP请求.我创建了一个循环计数为25的线程组.我的上升时间为120,线程数设置为30.在线程组中,我有20个HTTP请求.关于JMeter如何运行这些请求,我有点困惑.线程组中的20个请求中的每一个都在单个线程中运行,并且线程组上的每个循环在不同的线程上并发运行吗?或者20个请求中的每个请求在可用时在不同的线程中运行.

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

在此输入图像描述

但是,我想要定义某种变量,它根据正在运行的线程组的迭代来选择一个文件,例如,如果它第二次循环遍历线程组,我想调用test2. txt,如果第三次test3.txt等,这些文本文件将包含不同的帖子数据.有没有人可以告诉我,如果JMeter可以做到这一点,如果可以的话,我将如何做到这一点.

Dmi*_*i T 9

第1点 - JMeter并发

JMeter以1个线程开始,并按照渐变集生成更多线程.在你的情况下(30个线程和120秒加速)另外一个线程每4秒添加一次.每个线程执行20个请求,如果有另一个循环 - 重新开始,如果没有循环 - 线程关闭.为了控制负载和并发性,JMeter提供了两个选项:

  1. 同步计时器 - 暂停所有线程直到达到指定的阈值,然后同时释放所有线程
  2. 常量吞吐量计时器 - 指定每分钟请求的负载.

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

您可以使用__fileToString函数替换您的请求正文.如果要对其进行参数化,可以使用嵌套函数提供当前迭代 - 请参见下文.

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

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

  1. 计数器配置元素 - 从指定值开始,并在每次调用时按指定值递增.
  2. __counter函数 - 从1开始并在每次调用时递增1.可以是"每用户"还是"全球"

有关上述JMeter函数和更多JMeter函数的详细信息,请参见如何使用JMeter函数后续系列.