Я пытаюсь создать динамический JSON с использованием данных CSV в Jmeter с препроцессором JSR223
Ниже приведен код для того же я использую CSV для данных для идентификатора и имени:
def builder = new groovy.json.JsonBuilder()
@groovy.transform.Immutable
class Items {
String Id
String Name
}
def items = new File("Item.txt").readLines().collect { line -> new Items(line.split(",")[0], line.split(",")[1]) }
builder.Rule(
__type: "DataCollectionRule",
DeviceFamily: '${__P(DeviceFamily)}',
RuleId: 0,
Name: 'test-${__time(yyyy-MM-dd'T'hh:mm:ss)}-${__counter(TRUE,)}',
Targets:
[
Groups :
[
[
Id: '${logicalid1_1}',
]
],
Devices:
[
]
],
StartDate: '/Date(${__time(,)})/',
IsEnabled: true,
Priority: 0,
AlertType: 0,
DeliverySchedule:
[
Id : 1,
Name : "Every 30 Minutes",
Period : "30M"
],
CollectionSchedule:
[
Id : 1,
Name : "Every 30 Minutes",
Period : "30M"
],
Items : items.collect() [
[
Id : it.Id,
Name : it.Name
]
],
LocationAccuracy:
[
UseGPS : false,
DistanceInMeters : 100,
ReportToServer : true,
AccuracyInMeters : 10
],
HasDolphinCounters: false,
EnrollmentCertificateId: null,
EnrollmentCertificateName: "",
DatabaseHighWatermark: 28,
DatabaseLowWatermark: 14,
DeviceHighWatermark: 400,
DeviceLowWatermark: 200
)
sampler.getArguments().removeAllArguments()
sampler.addNonEncodedArgument('', builder.toPrettyString(), '')
sampler.setPostBodyRaw(true);
Во время выполнения теста я получаю HTTP 400 с неверным запросом
Сообщение журнала показано ниже:
2018-09-24 13: 49: 23,669 ОШИБКА oajmJSR223PreProcessor: Проблема в сценарии JSR223, JSR223 PreProcessor javax.script.ScriptException: groovy.lang.MissingPropertyException: Нет такого свойства: это для класса: Script32 в org.codehaus.groovy.jsr223.GroovyScriptEngineImpl.eval (GroovyScriptEngineImpl.java:320 all [[2.4] ~ all [[2.4]].13.jar: 2.4.13] at org.codehaus.groovy.jsr223.GroovyCompiledScript.eval (GroovyCompiledScript.java:72) ~ [groovy-all-2.4.13.jar: 2.4.13] в javax.script.CompiledScript.eval (Неизвестный источник) ~ [?: 1.8.0_151] в org.apache.jmeter.util.JSR223TestElement.processFileOrScript (JSR223TestElement.java:221) ~ [ApacheJMeter_core.jar: 4.0 r1823414] в org.apache.jmeter.JSR223PreProcessor.process (JSR223PreProcessor.java:44) [ApacheJMeter_components.jar: 4.0 r1823414] в org.apache.jmeter.threads.JMeterThread.runPreProcessors (JMeterThread.java:849) [ApacheJMear].jmeter.threads.JMeterThread.executeSamplePackage (JMeterThread.java:467) [ApacheJMeter_core.jar: 4.0 r1823414] в org.apache.jmeter.threads.JMeterThread.processSampler (JMeterThread.java:234: rjj_jar_416: at16ar)org.apache.jmeter.threads.JMeterThread.run (JMeterThread.java:250) [ApacheJMeter_core.jar: 4.0 r1823414] в java.lang.Thread.run (неизвестный источник) [?: 1.8.0_151] Причина: groovy.lang.MissingPropertyException: Нет такого свойства: это для класса: Script32 в org.codehaus.groovy.runtime.ScriptBytecodeAdapter.unwrap (ScriptBytecodeAdapter.java:53) ~ [groovy-all-2.4.13.jar: 2.4.13] в организации.codehaus.groovy.runtime.callsite.PogoGetPropertySite.getProperty (PogoGetPropertySite.java:52) ~ [groovy-all-2.4.13.jar: 2.4.13] на org.codehaus.groovy.runtime.callsite.AbstractCallSite.callGroovyObjectGetProperty (AbstractCallSite.java:307) ~ [groovy-all-2.4.13.jar: 2.4.13] в Script32.run (Script32.groovy: 46) ~ [?:?] в org.codehaus.groovy.jsr223.GroovyScriptEngineImpl.eval (GroovyScriptEngineImpl.java:317) ~ [groovy-all-2.4.13.jar: 2.4.13] ... еще 9
CSV выглядит следующим образом:
-1,BatteryStatus
-3,AvailableMemory
-5,AvailableStorage
Заранее спасибо