четверг, 19 апреля 2012 г.

Рандомные значения. Часть 2

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

Допустим, нам нужно рандомное значение от 0 до указанного числа: ${__javaScript(Math.floor(Math.random()*(${maxRandom}+1)),myRandom)}.

_javaScript также присутствует в Function Helper Dialog


При помощи яваскрипта можно генерить и более сложные значения:

${__javaScript(
var startDate = new Date();
startDate.setDate(1);
startDate.setMonth(0);
startDate.setYear(1991);
var startDateTime = startDate.getTime();

var endDate = new Date();
endDate.setDate(31);
endDate.setMonth(11);
endDate.setYear(2003);
var endDateTime = endDate.getTime();

var randomDate = new Date();
var randomDateTime = startDateTime+Math.random()*(endDateTime-startDateTime);
randomDate.setTime(randomDateTime);

var rndDate = randomDate.getDate();
var rndMonth = randomDate.getMonth() + 1;
var rndYear = randomDate.getFullYear();

if (rndDate.toString().length == 1)
rndDate = "0" + rndDate;
if (rndMonth.toString().length == 1)
rndMonth = "0" + rndMonth;

rndDate + "/" + rndMonth + "/" + rndYear;)}

В результате мы получим рандомную дату в промежутке между от 01.01.1991 до 31.11.2003


Так же рандомные значения можно получить при помощи, например, BeabShell PreProcessor (Add->PreProcessors->BeanShell PreProcessors.



Тут можно найти один из примеров использования BeanShell PreProcessor.

2 комментария:

  1. Спасибо большое за статью! Гуглила генерацию случайных дат для Jmeter'a, нашла только 1 Вашу статью.
    Подскажите, пожалуйста, а если нужно случайную дату положить дополнительно в переменную, то как дописать скрипт?
    Например, мне нужно сгенерировать интервал, начало которого случайная дата, а продолжительность интервала фиксированная. Этот случайный интервал находится внутри заданного промежутка дат (как у Вас). Т.е. мне нужны 2 даты на выходе, начало и конец интервала, которые я подставляю затем в хмл-ку, отправляемую на веб-сервис.

    ОтветитьУдалить
  2. Андрей, спасибо Вам за скрипт.

    Я немножко его развила и получила скрипт для генерации случайного интервала в заданном диапазоне дат.

    Результат можно посмотреть здесь: http://stackoverflow.com/questions/13955259/how-to-generate-random-fixed-interval-within-date-range-in-jmeter/13992581#13992581

    ОтветитьУдалить