在我的项目中,我使用Jmeter进行负载测试 我创建了一个测试计划如下:
下一个采样器将提交请求。该采样器接受两个参数: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,这是不可取的。
答案 0 :(得分:5)
确保您正确拥有CSV Data Set Recycle on EOF
和Stop Thread on EOF
值:
Recycle on EOF = True
(即指示jmeter移回CSV文件的顶部); Stop Thread on EOF = False
Stop Thread on EOF = True
如果您使用的是while控制器,并希望在读取整个csv数据集后停止;
Sharing mode: Current thread group
(在这种情况下,csv-entries的数量应该是与线程编号相同,否则应设置Recycle on EOF? False
;; Sharing mode: Current thread
。不要忘记查看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的单独登录条目和许可证请求条目。