在JMeter的Http Request采样器中,我可以为上传请求定义filePath,但是当我运行负载测试时,每个测试都会重复加载相同的文件。因为每次完成每个测试的时间比服务器返回响应所用的实际时间长,所以它从磁盘加载文件。
在测试之前,是否必须编写我的采样器以将文件预加载到内存中,并在可能的情况下重复使用该文件?
答案 0 :(得分:0)
取决于你想要做什么。如果您给它一个硬编码路径,它将始终上传该文件。如果您尝试在上传端点上生成负载,只要此硬编码文件的大小与您期望的大致相同,那就应该没问题。
如果你想让JMeter上传一组文件,你将不得不变得有点花哨。我会将您要上传的文件的所有路径保存为CSV
中的字符串。然后使用CSV Data Set
将其保存到变量path
。然后,不要将该路径硬编码到HTTP Request Sampler
,而是给它${path}
。循环测试n
次(其中n
是您放入CSV中的文件数),应该这样做。
答案 1 :(得分:0)
实际上,您可以使用BeanShell sampler预加载文件,并将其值存储在单个变量中一次。但问题是你不能在线程之间共享变量。因此,一旦读取并存储为变量,它只能在同一个线程中使用。
要在线程之间共享参数,可以使用属性,但不确定您是否可以对包含二进制文件的文件执行相同操作。
谈论常规变量(例如,cookies),以及它是如何完成的:
使用setUp thread从文件中读取变量。
将此值定义为属性。
使用所有HTTP采样器中存储在属性中的值。