11package io .github .delirius325 .jmeter .backendlistener .elasticsearch ;
22
3+ import javafx .util .StringConverter ;
34import org .apache .jmeter .assertions .AssertionResult ;
45import org .apache .jmeter .samplers .SampleResult ;
56import org .apache .jmeter .threads .JMeterContextService ;
@@ -22,6 +23,17 @@ public class ElasticSearchMetric {
2223 private String esTimestamp ;
2324 private int ciBuildNumber ;
2425 private HashMap <String , Object > json ;
26+ private StringConverter <Long > stringConvert = new StringConverter <Long >() {
27+ @ Override
28+ public String toString (Long object ) {
29+ return String .valueOf (object );
30+ }
31+
32+ @ Override
33+ public Long fromString (String string ) {
34+ return Long .parseLong (string );
35+ }
36+ };
2537
2638 public ElasticSearchMetric (SampleResult sr , String testMode , String timeStamp , int buildNumber ) {
2739 this .sampleResult = sr ;
@@ -139,7 +151,15 @@ private void addCustomFields(BackendListenerContext context) {
139151 String parameterName = pluginParameters .next ();
140152
141153 if (!parameterName .contains ("es." ) && !context .getParameter (parameterName ).trim ().equals ("" )) {
142- this .json .put (parameterName , context .getParameter (parameterName ).trim ());
154+ String parameter = context .getParameter (parameterName ).trim ();
155+
156+ try {
157+ this .json .put (parameterName , stringConvert .fromString (parameter ));
158+ } catch (Exception e ) {
159+ if (logger .isDebugEnabled ())
160+ logger .debug ("Cannot convert custom field to number" );
161+ this .json .put (parameterName , context .getParameter (parameterName ).trim ());
162+ }
143163 }
144164 }
145165 }
0 commit comments