1

当我们在多个远程主机上运行 JMX 文件时,我们需要将所有参数文件复制到所有主机,在这种情况下,参数文件将不存在唯一性,因为参数文件将在所有主机中可用,并将在本地获取。

我需要在 Jmeter 分布式测试中使用与 Loadrunner 功能相同的唯一每次迭代。

4

3 回答 3

0

考虑使用HTTP 简单表服务器

它可用于在一台主机上设置一个小型 HTTP 服务器,为您选择的 CSV 文件提供服务:

在此处输入图像描述

然后您可以发出READ命令并将KEEP参数设置为FALSE

http://hostname:port/sts/READ?READ_MODE=RANDOM&KEEP=FALSE&FILENAME=your_file.csv

这样您就可以保证测试数据的“唯一性”,因为它只会被读取一次。

您可以使用JMeter Plugins Manager安装 HTTP Simple Table Server :

在此处输入图像描述

于 2019-12-30T15:41:34.887 回答
0

从外部源(队列)提供参数。在测试之前预加载队列值。由于每个值都“弹出”一次,这保证了负载生成器、不同脚本定义的唯一性,即使您有多个驱动负载的工具也是如此。

您可以考虑使用 Amazon AWS 简单队列服务 (SQS)。对于性能测试所需的数据量而言,价格低得离谱,而且接口是用于推送和弹出值的 HTTP,这是对现有 HTTP 脚本的极好补充。

于 2019-12-26T23:49:58.753 回答
0

将您的 CSV 拆分为负载生成器主机的数量

$ wc -l "youroriginalcsv.csv" /* 这将返回 csv 中的总行数*/

$ split -l "count of above query"/"number of hosts" "youroriginalcsv.csv" /* 这将分割 CSV,文件名为 xaa, xab ... */

将每个唯一的 CSV 传输到所有可用的主机

$ scp xaa host1_user@host1_ip:/csvpath/csvfile.csv

$ scp xab host2_user@host2_ip:/csvpath/csvfile.csv

.

$ scp xaz hostN_user@hostN_ip:/csvpath/csvfile.csv

/* 在你的测试脚本中使用这个路径 */

干杯!

于 2019-12-26T07:14:24.610 回答