如图,一个线程循环3次,勾选Same user on each iteration,但是执行时,每次都是从CSV文件里取前三个值分别请求,按道理勾选了Same user on each iteration不应该每次循环都取同样的(第一个)值吗?有懂的同学吗,求指点迷津

CSV文件里有若干条数据>1

每次取值



如图,一个线程循环3次,勾选Same user on each iteration,但是执行时,每次都是从CSV文件里取前三个值分别请求,按道理勾选了Same user on each iteration不应该每次循环都取同样的(第一个)值吗?有懂的同学吗,求指点迷津

CSV文件里有若干条数据>1

每次取值



阿里嘎多学长整理AIGC生成,因移动端显示问题导致当前答案未能完全显示,请使用PC端查看更加详细的解答过程
JMeter线程组的"Same user on each iteration"选项是指在每个循环中使用同一个用户的cookie和session信息。然而,在你的情况下,JMeter可能并没有正确地使用同一个用户的cookie和session信息。
这是因为JMeter的CSV数据源读取是异步的,JMeter会在读取CSV文件时创建一个新的用户,而不是使用同一个用户。为了解决这个问题,你可以尝试以下几种方法:
User Defined Variables功能来存储用户信息,然后在每个循环中使用同一个用户的信息。HTTP Cookie Manager功能来管理cookie信息,然后在每个循环中使用同一个用户的cookie信息。HTTP Session Manager功能来管理session信息,然后在每个循环中使用同一个用户的session信息。以下是一个使用User Defined Variables功能来解决这个问题的示例:
User Defined Variables元素。User Defined Variables元素中添加一个变量,例如username,并将其设置为从CSV文件中读取的用户名。username变量来访问用户信息。例如:
${__V(username)}
这将使用username变量来访问用户信息。
以下是一个使用User Defined Variables功能来解决这个问题的示例代码:
<?xml version="1.0" encoding="UTF-8"?>
<ThreadGroup guiclass="ThreadGroupGui" testclass="ThreadGroup" testname="Thread Group" enabled="true">
<elements>
<Element guiclass="CSVDataSetGui" testclass="CSVDataSet" testname="CSV Data Set" enabled="true">
<stringProp name="filename">users.csv</stringProp>
<stringProp name="delimiter">,</stringProp>
<stringProp name="quote">"</stringProp>
<boolProp name="ignoreFirstLine">true</boolProp>
</Element>
<Element guiclass="UserDefinedVariables" testclass="UserDefinedVariables" testname="User Defined Variables" enabled="true">
<stringProp name="username">${__CSV(username, 0)}</stringProp>
</Element>
<Element guiclass="HTTPSamplerProxy" testclass="HTTPSamplerProxy" testname="HTTP Request" enabled="true">
<stringProp name="uri">http://example.com</stringProp>
<stringProp name="method">GET</stringProp>
<stringProp name="headers">username=${username}</stringProp>
</Element>
</elements>
<stringProp name="tname">Thread Group</stringProp>
<boolProp name="serializeUnrecognizedProperties">true</boolProp>
</ThreadGroup>
在上面的示例代码中,我们使用CSV Data Set元素来读取用户名,然后使用User Defined Variables元素来存储用户名,并在HTTP Request元素中使用用户名来访问用户信息。