JMeter CSV数据集配置的详细指南

714 阅读5分钟

JMeter CSV数据集配置介绍

JMeter是一个用于应用程序和网站的性能和负载测试工具。它是开源的,拥有一个元素,使用户可以在CSV格式的外部数据集上工作。它被称为 "CSV数据集配置"。 它从文件中读取行数并将其划分为变量。它比从文件中的字符串和CSVread选项更容易实现。它是为管理高维数据而设计的,对于测试唯一的和随机的值很有用。本文简要讨论了JMeter CSV中的数据集配置。

JMeter CSV数据集配置概述

JMeter中的CSV数据集配置用于查看给定文件中的行数,并可以根据需求划分为变量。它也用于测试随机和唯一的值。在运行时生成唯一的随机值在内存和CPU方面是很昂贵的。所以用户可以在测试前创建数据。如果需要,可以暗示任何文件的随机数据与运行时参数相结合,从每次执行中开发出一套独特的标准值。例如,串联执行比每次执行时产生的值更便宜。

创建JMeter CSV数据集配置

创建JMeter CSV数据集配置的步骤如下。然后,用户可以使用预先定义的CSV文件中的数据执行测试,并在执行时一起读取:

  • 自行生成一些与CSV文件中的数据类似的用户名和密码。例如,让tom、sam、joe和jim作为用户名,pas$$、groovy、scala和secret作为密码。逗号是一个分隔符,用来分隔CSV文件中的数值。最后,将文件以适当的名称保存在与测试计划相同的位置。

JMeter CSV Data Set Config output 1

  • 在测试计划中,通过以下步骤创建一个数据集配置,测试计划 -> 添加 -> 配置元素 -> CSV数据集配置。给出你在上述步骤中创建的CSV文件的名称。在相关字段中提供变量名称;每个变量都相当于CSV中的一个单列。这些变量将有助于将来的参考。确保使用逗号来分隔这些值。

JMeter CSV Data Set Config output 2

  • 通过从CSV文件中获取变量来替换登录请求中的常量数据。

JMeter CSV Data Set Config output 3

  • 在线程组字段中,给出线程数为8。它应该等于CSV文件中的用户数。执行测试。每个请求都使用创建的CSV文件中的不同数据来登录。

使用JMeter CSV数据集配置

提供应该被读取的文件名。例如,在同一位置使用的测试计划,文件格式为.jmx,应该在CSV文件中给出输入。然而,如果CSV文件的位置与属于测试计划的文件不同,那么用户应该只给出CSV文件的绝对路径的名称。

在 Windows 中,它应该是 C:\desktop\JMeter\name of the file.csv

在Mac中,它应该是/Users /user /Desktop /name of the file.csv。

点代表测试计划中的当前文件夹。可以在Windows、Linux和Mac中使用。

CSV文件是一个纯文本的记事本,所以用户可以给它加一个扩展名,如.txt而不是.csv。但要确保格式不被改变。

编码文件是用来阅读的,而不考虑任何平台。默认的编码被应用于读取文件,并帮助用户在所有类型的数据文件,如双字节的其他语言。用户可以用Unicode或UTF-8保存文件,以确保数据在窗口中不被隔离。但是在Windows中,默认的编码是以ANSI为脚本的,JMeter在编码或读取这个文件时,会因为破坏数据而产生问题。为了避免这种情况,在数据集配置下所需的文件编码字段中输入相同的文件编码。

output 4

如果变量名称为空,那么文件中的第一行将被读取并解释为相同的列名列表。变量可以用双引号引用,也可以用定界符区分。

output 5

分隔符用于分隔文件中的记录;有时,可以使用分号或制表符。例如,如果用户需要在文件中添加价格,他们可以改变分界符并在JMeter中设置。

启用引号数据,只允许分界符的值。如果数据有空格,就包括了定界符,值在下线。所以在使用双引号的时候,就可以解决这个问题。所以对双引号设置为True。

output 6

在文件结束时回收;默认情况下,它应该被设置为真。在EOF上停止线程的选项应设置为false。

共享模式在所有线程、当前线程组和当前线程中都被启用。文件中的所有线程都在每个可用的线程之间共享。它对线程组上收到的请求不起作用,即使它已经发生在循环中。因此,每个请求只查看一行CSV,假设所有数据集在线程组内处于同一水平。

结论

因此,数据集配置值可以很容易地在JMeter中实现,以查看每个文件的线程。在当前的线程组中,它有一个独特的功能;每个文件在元素出现的每个线程组中被查看一次。如果启动一个新的线程组,它将从头开始读取文件,并假设所有的数据集都存在于线程组的同一级别内。在当前的线程中,每个文件对每个用户来说都是单独查看的;对每个线程来说都是单独查看的,这标志着用户又从头开始阅读了该文件。 只有存在于线程中的循环才能读到下一行。