发送文件名中的参数,并在loadrunner中加引号

问题描述 投票:0回答:2

如何在loadrunner中的带引号的文件名中传递参数?

我试图通过右键单击文件名中的一个单词来强制参数化,并将其分配给VUser ID。但是它没有用,因为我收到警告:函数中检测到无效参数。

在下面的示例中,stoid是我从屏幕上提取的变量,savetofileint是我编写的C函数,用于创建带有引号中提到的名称的文件。

savingToFileInt(stoid,"C:\\Users\\Desktop\\{NewParam_1}.txt");

另一个功能必须稍后从文件中检索类固醇。这就是我需要在文件名中发送VUser ID或迭代编号以进行识别的原因。什么是正确的方法?

escaping parameter-passing filenames loadrunner
2个回答
1
投票

您需要在参数替换中添加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"));

0
投票

这就是我需要在文件名中发送VUser ID或迭代编号以进行识别的原因。

您是否考虑过lr_output_message()的优势,它将在测试期间将消息发送到控制器?或者,您是否考虑过标准日志模型将编写单个消息。

要记住的事情,通过在性能测试中涉及本地文件系统,您正在引入本地负载生成器的瓶颈。现在,您将有数十个,数百个甚至数千个单独的线程在争夺对驱动器写头的访问权限。

我会推荐另一个模型来尝试做您正在做的事情,即将模型的值保存到文件中以备后用。认真考虑使用Virtual Table Server(一种独立的排队解决方案,例如RabbitMQ或什至是云提供商的任何队列服务)作为仲裁机制,以在虚拟用户之间来回传递数据。在负载下使用本地文件系统进行这种类型的传递将是有问题的。对于这种类型的虚拟用户内部数据传递,最好使用独立于本地负载生成器的服务。该建议适用于所有性能测试工具(商业和开源)。

© www.soinside.com 2019 - 2024. All rights reserved.