Как получить текущее время в миллисекундах в Loadrunner?

Я ищу эквивалент Java System.currentTimeMillis() в Loadrunner. Я смог найти только lr_save_datetime("%x%X", 0, "now"); который выводит в формате даты и времени, но не время с эпохи.

В C это может обеспечить time.h, но #include "time.h" в скрипте LR приводил к ошибкам компиляции. time.h, вероятно, зависит от других файлов .h и .inl.

Я получил #error ОШИБКА: поддерживается только цель Win32! хотя я скопировал все файлы, на отсутствие которых он жаловался, из папки компиляторов Visual Studio C++. (C:\Program Files\Microsoft Visual Studio 9.0\VC\include\time.h)


person Jai    schedule 27.02.2013    source источник


Ответы (5)


Другой подход заключается в использовании lr_save_timestamp для получения временной метки в секундах — это более эффективно, чем web_save_timestamp_param.

Моя документация для функции:

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

tmstampParam

Имя параметра для хранения метки времени.

ЦИФРЫ

Необязательный. Количество цифр для метки времени (целое число). Значение по умолчанию — 13 (время эпохи, включая 3 цифры миллисекундной точности).

Если значение DIGITS меньше 1 или больше 16, используется значение по умолчанию.

В этом примере временная метка сохраняется и указывается длина 10 цифр. Возвращает время эпохи в секундах

lr_save_timestamp(“param”, “DIGITS=10″, LAST );
person LeslieM    schedule 16.11.2014

Вы можете вывести количество секунд, прошедших с 01.01.1970, подобно формату в стиле UNIX, используя функцию 'time()':

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

person Nathan    schedule 28.02.2013

web_save_timestamp_param(); возвращает 13-значное время с точностью до миллисекунды с эпохи.

LoadRunner не использует Visual C/C++ для механизма выполнения C. Он использует LCC, легкий кросс-платформенный компилятор C. Итак, если вам нужно расширить дополнительные библиотеки, я рекомендую те, которые поставляются с LCC. Дополнительную информацию о LCC см. на веб-сайте факультета компьютерных наук Университета Вирджинии, посвященном LCC для Windows.

person James Pulley    schedule 28.02.2013

Вы можете использовать служебную функцию 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;
person Konstantin Neradovsky    schedule 29.01.2015

при параметризации выберите тип параметра даты и времени, у нас так много форматов. проверьте его один раз .... я надеюсь, что это решит вашу проблему без каких-либо усилий по кодированию

person sivaramaraju    schedule 06.05.2014