У меня только что был хороший опыт использования JavaScript (через BSF / Rhino) в JMeter.
Я поместил одну группу потоков в свой план тестирования и прикрепил «Простой контроллер» с двумя элементами под ним - сэмплер «HTTP Request» и «BSF PreProcessor».
Установите для языка BSF значение «javascript» и введите код в текстовое поле или укажите его в файле (используйте полный путь или относительно CWD процесса JMeter).
/* Since `Math.random()` gives us float, we use `java.util.Random()`
* see: http://docs.oracle.com/javase/7/docs/api/java/util/Random.html */
var Random = new Packages.java.util.Random();
var min = 10-1;
var max = 2;
var maxLines = (min)+Random.nextInt(max-min);
var s = '';
for (var d = 0; d <= maxLines; d++) {
s += d.toString()+','+Random.nextInt(1000).toString()+'\n';
}
// s => '0,312\n1,104\n2,608\n'
vars.put('PAYLOAD', s);
Теперь я могу сослаться на ${PAYLOAD}
в HTTP-запросе!
Вы можете сгенерировать JSON, но вам потребуется обновить jakarta-jmeter-2.5.1/lib/js-1.6R5.jar
до последней версии Rhino , чтобы получить JSON.stringify
и JSON.parse
. Это прекрасно сработало и для меня, хотя я подумал, что приведу здесь простой пример.
Вы также можете использовать препроцессор BSF для параметров URL, просто установите другую переменную с помощью vars.put('X', 'some value')
и передайте ее как ${X}
в параметре запроса.
Этот пост в блоге , кстати, немного помог.