2

在我的项目中,我使用 Jmeter 进行负载测试。
我创建了一个测试计划,如下所示:

  1. 使用具有 10 个唯一用户名和密码的 csv 文件登录应用程序(成功完成)
  2. 正则表达式提取器将从响应中获取会话 ID,该会话 ID 将在下一个采样器中用于提交请求。(sessionId提取成功)
  3. 下一个采样器将提交请求。此采样器接受两个参数:sessionId 和 licenseRequest。java-script的一些细节如下:

    url: "groovy/enqueue",
    type: "POST",
    global: false,
    data: {sessionId: uSessionId, licenseRequest: JSON.stringify(requestJSON) },
    dataType: "text",
    

为了提交请求,我创建了一个 csv 文件。
csv类似于这样:

条目 1:
{"activations":["<activation-code>","<activation-code>"],"email":"<emailIdofUser>","csvEntries":[{"model":"<modelname>","serial":"<serialNo>"}],"comment":"testing jmeter"}

我发现,在第二个采样器中提交请求时,发布请求格式不正确:

POST data:
sessionId=vZNjFjW38cid&licenseRequest=%3CEOF%3E

如您所见,licenseRequest 的值不正确。它正在发送不需要的 EOF。

在此处输入图像描述

4

1 回答 1

6

确保您拥有正确的CSV 数据集 Recycle on EOFStop Thread on EOF值:

  • 如果您计划多次遍历文件,则必须设置Recycle on EOF = True(即指示 jmeter 移回 CSV 文件的顶部);
  • Stop Thread on EOF = False如果您正在使用循环控制器,Stop Thread on EOF = True如果您正在使用 while 控制器并希望在读取整个 csv 数据集后停止;
  • 如果您需要 N 个线程中的每一个从 csv 文件中读取并使用单个且唯一的行,您必须Sharing mode: Current thread group为 CSV 数据集配置设置(在这种情况下,csv 条目的数量应该与线程数相同,或者Recycle on EOF? False应该是否则设置);
  • 如果您需要 N 个线程中的每一个都读取并使用 csv 文件中的所有行,您必须Sharing mode: Current thread为 CSV 数据集配置进行设置。

不要忘记查看 jmeter.log 或使用Log Viewer来检测 csv 使用的任何问题。


最简单的情况如下:


Test Group
Number of Threads = 10
    CSV Data Set Config (User Logins)
    Filename: ... (your csv-file should have 10 entries)
    Recycle on EOF = False
    Stop Thread on EOF = True
    Sharing Mode = All threads
    CSV Data Set Config (License Request)
    Filename: ... (your csv-file should have 10 entries)
    Recycle on EOF = False
    Stop Thread on EOF = True
    Sharing Mode = All threads
    Login Sampler
    License request Sampler

这将产生 10 个线程,每个线程都有来自 csv 的单独的登录条目和许可证请求条目。

于 2013-02-18T15:16:07.650 回答