如何在loadrunner中的带引号的文件名中传递参数?
我试图通过右键单击文件名中的一个单词来强制参数化,并将其分配给VUser ID。但是它没有用,因为我收到警告:函数中检测到无效参数。
在下面的示例中,stoid是我从屏幕上提取的变量,savetofileint
是我编写的C函数,用于创建带有引号中提到的名称的文件。
savingToFileInt(stoid,"C:\\Users\\Desktop\\{NewParam_1}.txt");
另一个功能必须稍后从文件中检索类固醇。这就是我需要在文件名中发送VUser ID或迭代编号以进行识别的原因。什么是正确的方法?
您需要在参数替换中添加lr_eval_string
。
// savingToFileInt(stoid,"C:\\Users\\Desktop\\{NewParam_1}.txt");
lr_save_string("123456","NewParam_1");
lr_message("[%s]", lr_eval_string("C:\\Users\\Desktop\\{NewParam_1}.txt"));
// savingToFileInt(stoid,lr_eval_string("C:\\Users\\Desktop\\{NewParam_1}.txt"));
这就是我需要在文件名中发送VUser ID或迭代编号以进行识别的原因。
您是否考虑过lr_output_message()的优势,它将在测试期间将消息发送到控制器?或者,您是否考虑过标准日志模型将编写单个消息。
要记住的事情,通过在性能测试中涉及本地文件系统,您正在引入本地负载生成器的瓶颈。现在,您将有数十个,数百个甚至数千个单独的线程在争夺对驱动器写头的访问权限。
我会推荐另一个模型来尝试做您正在做的事情,即将模型的值保存到文件中以备后用。认真考虑使用Virtual Table Server(一种独立的排队解决方案,例如RabbitMQ或什至是云提供商的任何队列服务)作为仲裁机制,以在虚拟用户之间来回传递数据。在负载下使用本地文件系统进行这种类型的传递将是有问题的。对于这种类型的虚拟用户内部数据传递,最好使用独立于本地负载生成器的服务。该建议适用于所有性能测试工具(商业和开源)。