Прочитать файл json в сэмплере jsr223 в jmeter и извлечь данные - PullRequest
0 голосов
/ 04 ноября 2018

import com.jayway.jsonpath.JsonPath

def idCSV = new File('id.csv')
def index = [fileOne.json, fileTwo.json]

def jsonString

index.each { file ->
	jsonString = ________

	def ids = JsonPath.read(jsonString, '$..id')

	ids.each { id ->
		idCSV << id << newLine
	}
}

Как заполнить jsonString = ____, чтобы я мог json файл в строку и анализировать строку, чтобы извлечь идентификаторы и некоторую информацию из строки json. И я не делаю это в формате http request-> GET-> file. Ранее я извлек jsonString из http-ответа, и он работал хорошо, теперь я хочу сделать это следующим образом.

Ответы [ 2 ]

0 голосов
/ 05 ноября 2018

Я ожидаю, что вы ищете File.getText () function

jsonString = file.text

У меня нет полного видения, почему вам нужно хранить значения из JSON в файле CSV, однако есть альтернативный способ достижения этого, который не требует сценариев, так как ваш подход будет работать только с 1 параллельным потоком, если вы добавите больше пользователей, пытающихся записать в один и тот же файл - вы столкнетесь с условиями гонки :

  • Вы можете прочитать файлы из папки в переменные JMeter через Конфигурация списка каталогов
  • Файл можно прочитать, используя HTTP-запрос sampler

    enter image description here

  • Значения можно получить с помощью JSON Extractor , они будут автоматически сохранены в переменных JMeter, чтобы вы могли использовать их позже
  • Если вам нужно, чтобы значения присутствовали в файле (хотя я бы не рекомендовал такой подход, потому что это приведет к массивному вводу-выводу на диск и потенциально может запустить ваш тест), вы можете воспользоваться Flexible File Writer
0 голосов
/ 04 ноября 2018

Использование JsonSlurper :

def jsonString = new groovy.json.JsonSlurper().parseText(new File("json.txt").text)
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...