Я пытаюсь сделать HTTP-запрос в JMeter, который содержит несколько случайных чисел в пределах фиксированного диапазона (в частности, 0-50). С каждым запросом мне нужно отправить около 45 различных целых чисел, поэтому по любому заданному запросу в пределах указанного диапазона есть шесть целых чисел, которые не включены. Очевидно, что {__Random()} не работает, так как он неизбежно генерирует некоторые равные значения. Моя идея, и, пожалуйста, медведь со мной, потому что я новичок в этом, должен был создать массив целых чисел, например:Несколько уникальных случайных значений в одном запросе в JMeter
String line = "0, 1, 2, 3, 4, 5....."; String[] numbers = line.split(",");
, а затем назначить их фиксированные имена переменных для включения в запрос. Я могу сделать это с помощью счетчика CSV-данных, но я не уверен, как это сделать с помощью массива.
vars.put("VAR_" + counter, line); VAR_1 = 1 VAR_2 = 2 and so on...
затем перетасовать массив (который я не знаю, как это сделать в Beanshell) и генерировать что-то вроде:
VAR_1 = 16 VAR_2 = 27 ...
отправить со следующей просьбой.
Если кто-нибудь может помочь мне с этим или предложить более простой способ, я бы очень благодарен. Благодарю.
Спасибо за ваш комментарий, я переключился на JSR223 + Groovy, но у меня все еще есть проблемы. Я видел комментарий, который вы сделали в ответ на то, что кто-то делает что-то подобное, и вы предложили использовать класс Secure.Random. Я попробовал что-то вроде этого: «Random rand = new SecureRandom() int number = rand.nextInt (50);' но это не сработало. Опять же, я пытаюсь создать около 45 уникальных целых чисел из 50 для любого заданного запроса. –
Почему бы вам просто не использовать функцию [Counter test element или __counter()] (https://www.blazemeter.com/blog/how-use-counter-jmeter-test) и получить последовательные номера? 45 случайных чисел из 50 не имеют для меня большого смысла. –
Я знаю, это звучит странно, но это то, что мне нужно делать. Это относительно простая концепция; на любой заданный запрос будет 5 целых чисел, которые не включены в диапазон. Я тестирую игру, которая зависит от выбора чисел. Это решение будет работать достаточно хорошо, если бы я мог перетасовывать номера после каждого запроса.'BufferedReader br = новый BufferedReader (новый FileReader ("myfile.csv")); Строка; int counter = 1; while ((line = br.readLine())! = Null) { vars.put ("VAR_" + счетчик, строка); counter ++; } br.close(); ' –