gpt4 book ai didi

c - loadrunner 为每个 VUser 上传唯一的文件

转载 作者:行者123 更新时间:2023-12-04 05:10:10 25 4
gpt4 key购买 nike

我想在每次运行 VUser 脚本时上传一个唯一的文件(如 Controller 场景中的 # of vusers),我在不同的论坛上找到了一些示例并将它们放在一起尝试完成此任务:

Action()
{

char command[100];
sprintf(command, “copy C:\\source_dir\\srcFile.txt C:\\source_dir\\srcFile-%s.txt”,
lr_eval_string (”{iteration_number}”));
system(command);

web_submit_data("FileUpload",
"Action={URL}",
"Method=POST",
"EncType=multipart/form-data",
"TargetFrame=",
"RecContentType=text/html",
"Mode=HTML",
ITEMDATA,
"Name=File", "Value=C:\\source_dir\\srcFile-%s.txt", "File=yes", ENDITEM,
LAST);

sprintf(command, “del C:\\source_dir\\srcFile-%s.txt”, lr_eval_string (”{iteration_number}”));
system(command);

return 0;


}

然而,这个脚本每次都会创建 100 个文件,这不是我想要的帮凶。
1.如何修改我的脚本以创建 100 个唯一文件(一次)。
2.然后在 Controller 中为每个 VUser 运行一次上传(web_submit_data 函数)。
3.然后到底删除文件?

也许将文件生成放在 init 中,将文件删除放在 VUser 脚本的最后部分?

最佳答案

你有几个选择。

  • 您可以预先生成测试期间需要的所有文件,然后将完全限定的文件名作为唯一参数传递给虚拟用户脚本。如果文件位于负载生成器上,那么您将有一些读取争用需要处理,这将影响您的虚拟用户,因为他们都在竞争驱动器上的读取磁头。如果文件位于网络附加存储上,那么您还需要通过网络将文件移动到负载生成器,然后再次从生成器中移出以进行上传。如果在测试期间将文件单独放置在小型辅助驱动器(SSD)上,则可以显着提高读取访问权限。
  • 您可以即时创建文件。 (a) 定义随机文件大小 (b) 定义随机文件名 (c) 在本地上下文中写入文件 (d) 在脚本中使用文件进行上传 (e) 删除文件。所有这些都将在迭代的上下文中进行,假设上传的文件对于每个用户的每次迭代都需要具有唯一的文件名和大小。为此,您必须在性能测试期间违反许多关于硬盘使用的最佳实践规则。你会有几十个?数百?虚拟用户线程都在争用对本地磁盘子系统的访问,这通常是减慢所有虚拟用户的一个秘诀,因为 CPU 被发送用于高优先级 I/O 中断任务并远离用户进程,加上不可避免的等待当您的线程创建|写入|读取然后删除文件时,硬盘驱动器的读/写头。对于此模型,您将需要更多负载生成器,并且您绝对需要一个运行单个用户的引用控制生成器,以检查来自测试台的强加响应偏差。
  • 关于c - loadrunner 为每个 VUser 上传唯一的文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14988706/

    25 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com