У меня есть сценарий Groovy, в котором я передаю пустую строку методу 'Json' (он находится в groovy. json .JsonOutput).
Я хочу проверить, наш API обрабатывает и вводит ключ с пустой строкой, поэтому "key": "",
Я действительно хочу проверить три вещи:
- Проверить с помощью действительное значение ("ключ": "действительное значение")
- Проверка с пустым значением ("ключ": "")
- Проверка без ключа и значения (ноль)
Я использую следующий groovy -код для создания JSON -тела. В реальном скрипте есть некоторые операторы, где скрипт проверяет, присутствует ли значение, если нет, оно будет исключено.
import groovy.json.*;
class Example {
def exampleKey1
def exampleKey2
def exampleKey3
}
String valueexampleKey1 = "value";
String valueexampleKey2 = "";
String valueexampleKey3 = null;
def generator = new JsonGenerator.Options()
.excludeNulls()
.build()
Example example = new Example (
exampleKey1: valueexampleKey1,
exampleKey2: valueexampleKey2,
exampleKey3: valueexampleKey3
);
String unformattedJSON = generator.toJson(example);
String formattedJSON = JsonOutput.prettyPrint(unformattedJSON);
vars.put("generatedBody", formattedJSON);
Выдается следующее исключение:
2020-02-12 13: 05: 26,168 ОШИБКА oajJMeter: необработанное исключение: java .lang.IllegalAccessError: класс groovy. json .DefaultJsonGenerator попытался получить доступ к закрытому полю groovy. json .JsonOutput.EMPTY_STRING_CHARS (groovy. json .DefaultJsonGenerator и groovy. json .JsonOutput находятся в неназванном модуле загрузчика. org. apache .jmeter.DynamicClassLoader @ 1ae369b7) в groovy. json .DefaultJsonGenerator.writeCharSequence (DefaultJsonGenerator. java: 256) ~ [groovy - json -2.5.7.jar: 2.5 .7] в groovy. json .DefaultJsonGenerator.writeObject (DefaultJsonGenerator. java: 190) ~ [groovy - json -2.5.7.jar: 2.5.7] в groovy. json .DefaultJsonGenerator.writeMapEntry (DefaultJsonGenerator. java: 387) ~ [groovy - json -2.5.7.jar: 2.5.7] в groovy. json .DefaultJsonGenerator.writeMap (DefaultJsonGenerator. java: 375) ~ [groovy - json -2.5.7.jar: 2.5.7] в groovy. json .DefaultJsonGenerator.writeObject (DefaultJsonGenerator. java: 237) ~ [groovy - json -2.5.7 .jar: 2.5.7] в groovy. json .DefaultJsonGenerator.writeObject (DefaultJsonGenerator. java: 164) ~ [groovy - json -2.5.7.jar: 2.5.7] в groovy. json .DefaultJsonGenerator.to Json (по умолчаниюJsonGenerator. java: 98) ~ [groovy - json -2.5.7.jar: 2.5.7] при groovy. json .JsonGenerator $ to Json .call (неизвестный источник) ~ [?:?] В Script27.run (Script27. groovy: 111) ~ [?:?]
Есть ли Обойти эту проблему?