我有100个用户的CSV文件,由于多种原因,我总是需要使用一部分用户运行测试。
我需要例如每个运行10个用户10次,尽管我有100个用户文件。
将共享模式设置为当前线程使得所有线程都以相同的用户(第一个)开始..但我需要的是按顺序启动。
Thread 1: user 1
Thread 2: user 2
Thread 3: user 3
...
就像你有共享模式到#34;所有线程" ...时,问题是,在这种情况下,当它达到线程数(比如10)时,它会继续循环的其余部分的CSV条目..所以当它到达线程10:用户10,然后它转到线程1:用户11 ..当我需要的是继续运行前10个用户的测试,在这种情况重新启动线程1:用户1第二次运行。
任何想法如何实现忽略行11-100?并以1-10?
运行谢谢!
答案 0 :(得分:0)
最简单的解决方案是操纵原始文件itselt,即
示例实施:
import java.nio.file.Files
def maxLines = 10 // amend this as required
def file = new File('users.csv')
def backup = new File('users.csv.bak')
Files.copy(file.toPath(),backup.toPath())
file.delete()
Files.lines(backup.toPath()).limit(maxLines).each {line ->
file << line << System.getProperty('line.separator')
}
props.put('backup', backup)
props.put('file', file)
users.csv
文件JSR223采样器
import java.nio.file.Files
import java.nio.file.StandardCopyOption
def file = props.get('file')
def backup = props.get('backup')
Files.copy(backup.toPath(),file.toPath(), StandardCopyOption.REPLACE_EXISTING)
backup.delete()
有关在JMeter中使用Groovy脚本的详细信息,请参阅Apache Groovy - Why and How You Should Use It文章