1

我正在 Loadrunner 中寻找相当于 Java 的 System.currentTimeMillis() 的东西。我只能找到 lr_save_datetime("%x%X", 0, "now"); 它以日期和时间格式输出,但不是自纪元以来的时间。

在 C 中,time.h 可以提供此功能,但 LR 脚本中的 #include "time.h" 会导致编译错误。time.h 可能依赖于其他 .h 和 .inl 文件。

我得到#error 错误:仅支持 Win32 目标!即使我已经从 Visual Studio C++ 编译器文件夹中复制了它抱怨丢失的所有文件。(C:\Program Files\Microsoft Visual Studio 9.0\VC\include\time.h)

4

5 回答 5

2

另一种方法是使用lr_save_timestamp以秒为单位获取时间戳——它比 web_save_timestamp_param 更强大。

我的函数文档:

int lr_save_timestamp( const char* tmstampParam, [DIGITS,] LAST );

时间戳参数

存储时间戳的参数名称。

数字

可选的。时间戳的位数(整数)。默认值为 13(纪元时间,包括 3 位毫秒精度)。

如果 DIGITS 的值小于 1 或大于 16,则使用默认值

在本例中,保存时间戳并指定 10 位长度。以秒为单位返回纪元时间

lr_save_timestamp(“param”, “DIGITS=10″, LAST );
于 2014-11-16T16:16:49.587 回答
1

您可以使用 'time()' 函数像 UNIX 样式格式一样输出自 1970 年 1 月 1 日以来的秒数:

long t;  // create the variable

// output the seconds to the log
lr_output_message("seconds since 01/01/1970 : %d", 
                   time(t) ); // populate the variable
                              // with the current seconds count 
------------------------------------------------------------------
Output: Action.c(11): time : 1362080852

如果您正在寻找当前毫秒,您可以在 LoadRunner 中通过在参数列表中创建一个新的“日期/时间”参数并使用格式代码“%S.000”来获取它。一旦到位,就这样称呼它:

lr_eval_string("{datetime_param_name}");

例如,如果您在日期/时间参数格式字段中输入:
%H%M%S.000

...对于您得到的当前小时、分钟、秒和毫秒...
133808.132

由于某种原因,格式代码“%S.000”在日期/时间参数列表中有效,但不适用于 lr_save_datetime() 函数。如果你在函数上使用相同的代码,你会得到:
133808.000

于 2013-02-28T19:59:00.390 回答
0

您可以使用 ftime 实用程序功能。它接受指向timeb结构的指针并用当前时间值填充它。

timeb结构定义如下:

struct timeb {
   time_t time; //seconds since epoch
   unsigned short millis; //milliseconds since time field
   short timezone;
   short daytimesaveflag;
} 

根据 LR 函数参考使用 ftime 函数需要定义 timeb 结构(不包括 time.h

  struct timeb {
   long time; //seconds since epoch
   unsigned short millis; //milliseconds since time field
   short timezone;
   short daytimesaveflag;
} timestruct;
long millisSinceEpoch=0 
ftime(&timestruct);
millisSinceEpoch=timestruct.time_t*1000+timestruct.millis;
于 2015-01-29T13:28:23.550 回答
0

web_save_timestamp_param(); 返回自纪元以来的 13 位毫秒精度时间。

LoadRunner 不将 Visual C/C++ 用于 C 运行时引擎。它使用轻量级跨平台 C 编译器 LCC。因此,如果您需要使用其他库进行扩展,我推荐 LCC 附带的库。有关 LCC 的更多信息,请参阅 弗吉尼亚大学计算机科学系网站 LCC for Windows

于 2013-02-28T20:40:53.490 回答
-1

在参数化下选择日期和时间参数类型,我们有这么多格式。检查一次....我希望它可以解决您的问题而无需任何编码工作

于 2014-05-06T12:18:11.617 回答