json - 如何以 POST 方法从 csv 文件发送 JSON 数据?

标签 json csv jmeter load-testing

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

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

    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,这是不需要的。

enter image description here

最佳答案

确保您拥有 CSV Data Set Recycle on EOFStop Thread on EOF 值正确:

  • 如果您计划多次遍历文件,则必须设置 Recycle on EOF = True(即指示 jmeter 移回 CSV 文件的顶部);
  • 如果您使用的是循环 Controller ,则设置在 EOF = False 时停止线程,如果您使用的是 while Controller 并希望在之后停止,则设置在 EOF = True 时停止线程读取整个 csv 数据集;
  • 如果您需要 N 个线程中的每一个都读取并使用来自 csv 文件的单个且唯一的行,您必须设置 Sharing mode: Current thread group 用于 CSV 数据集配置(csv 数- 在这种情况下,条目应与线程数相同,否则应设置 Recycle on EOF? False);
  • 如果您需要 N 个线程中的每一个都读取并使用 csv 文件中的所有行,则必须为 CSV 数据集配置设置共享模式:当前线程

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


最简单的情况如下:


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

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

关于json - 如何以 POST 方法从 csv 文件发送 JSON 数据?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14938950/

相关文章:

json - BeanShell后处理器使用Jmeter解析Json

Java 类字段,对象在 Beanshell 中的使用

python - 散布上的箭头

Jmeter 命令行到汇总报告中的 "save table data"

ios - 在键中嵌套 JSON 字典?

javascript - 如何使用 JavaScript 将新元素添加到引用另一个元素的多个位置的 JSON 对象?

javascript - 使用 jquery 动态访问 JSON 键值

android - 只有创建 View 层次结构的原始线程才能触及其 View 异常

php - 将 csv 列放入数组

Java 将数据从 CSV 导入 SQL 防止重复输入