diff --git a/.gitignore b/.gitignore
index a1c2a23..5700917 100644
--- a/.gitignore
+++ b/.gitignore
@@ -21,3 +21,5 @@
# virtual machine crash logs, see http://www.java.com/en/download/help/error_hotspot.xml
hs_err_pid*
+.idea
+target
diff --git a/jmeter/bin/upgrade.properties b/jmeter/bin/upgrade.properties
new file mode 100644
index 0000000..97dc396
--- /dev/null
+++ b/jmeter/bin/upgrade.properties
@@ -0,0 +1,123 @@
+# Class, property and value upgrade equivalences.
+
+## Licensed to the Apache Software Foundation (ASF) under one or more
+## contributor license agreements. See the NOTICE file distributed with
+## this work for additional information regarding copyright ownership.
+## The ASF licenses this file to You under the Apache License, Version 2.0
+## (the "License"); you may not use this file except in compliance with
+## the License. You may obtain a copy of the License at
+##
+## http://www.apache.org/licenses/LICENSE-2.0
+##
+## Unless required by applicable law or agreed to in writing, software
+## distributed under the License is distributed on an "AS IS" BASIS,
+## WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+## See the License for the specific language governing permissions and
+## limitations under the License.
+
+#
+# Format is as follows --
+# for renamed test element & GUI classes:
+# old.class.Name=new.class.Name
+# old.class.Name|guiClassName=new.class.Name
+# (e.g. for ConfigTestElement)
+#
+# for renamed / deleted properties:
+# class.Name/Old.propertyName=newPropertyName
+# if newPropertyName is omitted, then property is deleted
+#
+# for renamed values:
+# old.class.Name.old.propertyName/oldValue=newValue
+#
+
+org.apache.jmeter.protocol.http.config.gui.UrlConfigGui=org.apache.jmeter.protocol.http.config.gui.HttpDefaultsGui
+org.apache.jmeter.assertions.Assertion=org.apache.jmeter.assertions.ResponseAssertion
+org.apache.jmeter.protocol.http.sampler.HTTPSamplerFull=org.apache.jmeter.protocol.http.sampler.HTTPSampler
+org.apache.jmeter.control.gui.RecordController=org.apache.jmeter.protocol.http.control.gui.RecordController
+
+org.apache.jmeter.timers.gui.ConstantThroughputTimerGui=org.apache.jmeter.testbeans.gui.TestBeanGUI
+org.apache.jmeter.timers.ConstantThroughputTimer/ConstantThroughputTimer.throughput=throughput
+
+org.apache.jmeter.protocol.jdbc.control.gui.JdbcTestSampleGui=org.apache.jmeter.testbeans.gui.TestBeanGUI
+org.apache.jmeter.protocol.jdbc.sampler.JDBCSampler/JDBCSampler.query=query
+#org.apache.jmeter.protocol.jdbc.sampler.JDBCSampler.JDBCSampler.dataSource/NULL=
+
+# Convert DBconfig
+org.apache.jmeter.protocol.jdbc.config.gui.DbConfigGui=org.apache.jmeter.testbeans.gui.TestBeanGUI
+org.apache.jmeter.config.ConfigTestElement|org.apache.jmeter.protocol.jdbc.config.gui.DbConfigGui=org.apache.jmeter.protocol.jdbc.config.DataSourceElement
+org.apache.jmeter.protocol.jdbc.config.DataSourceElement/JDBCSampler.url=dbUrl
+org.apache.jmeter.protocol.jdbc.config.DataSourceElement/JDBCSampler.driver=driver
+org.apache.jmeter.protocol.jdbc.config.DataSourceElement/JDBCSampler.query=query
+org.apache.jmeter.protocol.jdbc.config.DataSourceElement/ConfigTestElement.username=username
+org.apache.jmeter.protocol.jdbc.config.DataSourceElement/ConfigTestElement.password=password
+
+# Convert PoolConfig
+org.apache.jmeter.protocol.jdbc.config.gui.PoolConfigGui=org.apache.jmeter.testbeans.gui.TestBeanGUI
+org.apache.jmeter.config.ConfigTestElement|org.apache.jmeter.protocol.jdbc.config.gui.PoolConfigGui=org.apache.jmeter.protocol.jdbc.config.DataSourceElement
+org.apache.jmeter.protocol.jdbc.config.DataSourceElement/JDBCSampler.connections=
+org.apache.jmeter.protocol.jdbc.config.DataSourceElement/JDBCSampler.connPoolClass=
+org.apache.jmeter.protocol.jdbc.config.DataSourceElement/JDBCSampler.maxuse=poolMax
+
+# SQL Config
+org.apache.jmeter.config.ConfigTestElement/JDBCSampler.query=query
+org.apache.jmeter.protocol.http.control.Header/TestElement.name=Header.name
+
+# Upgrade AccessLogSampler
+org.apache.jmeter.protocol.http.control.gui.AccessLogSamplerGui=org.apache.jmeter.testbeans.gui.TestBeanGUI
+org.apache.jmeter.protocol.http.sampler.AccessLogSampler/AccessLogSampler.log_file=logFile
+org.apache.jmeter.protocol.http.sampler.AccessLogSampler/HTTPSampler.port=portString
+#Is the following used now?
+#org.apache.jmeter.protocol.http.sampler.AccessLogSampler/AccessLogSampler.generator_class_name=
+#Looks to be a new field
+#filterClassName
+org.apache.jmeter.protocol.http.sampler.AccessLogSampler/HTTPSampler.domain=domain
+org.apache.jmeter.protocol.http.sampler.AccessLogSampler/AccessLogSampler.parser_class_name=parserClassName
+org.apache.jmeter.protocol.http.sampler.AccessLogSampler/HTTPSampler.image_parser=imageParsing
+
+# Renamed class
+org.apache.jmeter.protocol.jms.control.gui.JMSConfigGui=org.apache.jmeter.protocol.jms.control.gui.JMSSamplerGui
+
+# These classes have been deleted; there's no defined replacement
+org.apache.jmeter.protocol.jdbc.config.gui.SqlConfigGui=org.apache.jmeter.config.gui.ObsoleteGui
+org.apache.jmeter.protocol.jms.control.gui.JndiDefaultsGui=org.apache.jmeter.config.gui.ObsoleteGui
+# Should probably map to something other than ObsoleteGui...
+org.apache.jmeter.threads.ReflectionThreadGroup=org.apache.jmeter.config.gui.ObsoleteGui
+
+# Convert BSFSamplerGui
+org.apache.jmeter.protocol.java.control.gui.BSFSamplerGui=org.apache.jmeter.testbeans.gui.TestBeanGUI
+org.apache.jmeter.protocol.java.sampler.BSFSampler/BSFSampler.filename=filename
+org.apache.jmeter.protocol.java.sampler.BSFSampler/BSFSampler.language=scriptLanguage
+org.apache.jmeter.protocol.java.sampler.BSFSampler/BSFSampler.parameters=parameters
+org.apache.jmeter.protocol.java.sampler.BSFSampler/BSFSampler.query=script
+
+# Obsolete Http user Parameters modifier test element
+# Note: ConfigTestElement is the test element associated with ObsoleteGui
+org.apache.jmeter.protocol.http.modifier.UserParameterModifier=org.apache.jmeter.config.ConfigTestElement
+org.apache.jmeter.protocol.http.modifier.gui.UserParameterModifierGui=org.apache.jmeter.config.gui.ObsoleteGui
+
+# Obsolete Graph Full Results listener
+org.apache.jmeter.visualizers.GraphAccumVisualizer=org.apache.jmeter.config.gui.ObsoleteGui
+# removed in 3.0, class was deleted in r1722757
+org.apache.jmeter.protocol.http.sampler.WebServiceSampler=org.apache.jmeter.config.ConfigTestElement
+# removed in 3.0, class was deleted in r1722757
+org.apache.jmeter.protocol.http.control.gui.WebServiceSamplerGui=org.apache.jmeter.config.gui.ObsoleteGui
+# removed in 3.0, class was deleted in r1722757
+org.apache.jmeter.protocol.http.modifier.ParamModifier=org.apache.jmeter.config.ConfigTestElement
+# removed in 3.0, class was deleted in r1722962
+org.apache.jmeter.protocol.http.modifier.ParamMask=org.apache.jmeter.config.ConfigTestElement
+# removed in 3.0, class was deleted in r1722757
+org.apache.jmeter.protocol.http.modifier.gui.ParamModifierGui=org.apache.jmeter.config.gui.ObsoleteGui
+
+# removed in 3.1, class was deleted in r1774947
+org.apache.jmeter.visualizers.SplineVisualizer=org.apache.jmeter.config.gui.ObsoleteGui
+# removed in 3.1 class was deleted in r1763837
+org.apache.jmeter.visualizers.DistributionGraphVisualizer=org.apache.jmeter.config.gui.ObsoleteGui
+
+# removed in 3.2 class was deleted in r1771608
+org.apache.jmeter.visualizers.MonitorStats=org.apache.jmeter.config.ConfigTestElement
+org.apache.jmeter.visualizers.MonitorHealthVisualizer=org.apache.jmeter.config.gui.ObsoleteGui
+
+# removed in 3.2 class was deleted in r1783280
+org.apache.jmeter.protocol.http.sampler.HTTPSampler2=org.apache.jmeter.config.ConfigTestElement
+org.apache.jmeter.protocol.http.sampler.SoapSampler=org.apache.jmeter.config.ConfigTestElement
+org.apache.jmeter.protocol.http.control.gui.SoapSamplerGui=org.apache.jmeter.config.gui.ObsoleteGui
\ No newline at end of file
diff --git a/pom.xml b/pom.xml
index 6e1393e..60f9080 100644
--- a/pom.xml
+++ b/pom.xml
@@ -19,11 +19,16 @@
jackson-databind
2.9.10.1
+
+ org.apache.commons
+ commons-lang3
+ 3.12.0
+
org.apache.jmeter
ApacheJMeter_http
- 4.0
+ 5.4.3
commons-math3
@@ -116,6 +121,7 @@
+ org.apache.maven.plugins
maven-resources-plugin
3.0.2
@@ -141,6 +147,7 @@
org.apache.maven.plugins
maven-dependency-plugin
+ 3.0.2
copy-dependencies
diff --git a/src/main/java/com/loadium/postman2jmx/builder/AbstractJmxFileBuilder.java b/src/main/java/com/loadium/postman2jmx/builder/AbstractJmxFileBuilder.java
index 3b99081..78f61e2 100644
--- a/src/main/java/com/loadium/postman2jmx/builder/AbstractJmxFileBuilder.java
+++ b/src/main/java/com/loadium/postman2jmx/builder/AbstractJmxFileBuilder.java
@@ -6,8 +6,6 @@
import com.loadium.postman2jmx.model.jmx.*;
import com.loadium.postman2jmx.model.postman.PostmanCollection;
import com.loadium.postman2jmx.model.postman.PostmanItem;
-import org.apache.jmeter.config.Argument;
-import org.apache.jmeter.config.Arguments;
import org.apache.jmeter.control.LoopController;
import org.apache.jmeter.extractor.json.jsonpath.JSONPostProcessor;
import org.apache.jmeter.protocol.http.control.HeaderManager;
@@ -19,12 +17,7 @@
import org.apache.jorphan.collections.ListedHashTree;
import java.io.*;
-import java.util.ArrayList;
-import java.util.HashSet;
import java.util.List;
-import java.util.Set;
-import java.util.regex.Matcher;
-import java.util.regex.Pattern;
public abstract class AbstractJmxFileBuilder implements IJmxFileBuilder {
@@ -49,54 +42,32 @@ protected JmxFile buildJmxFile(PostmanCollection postmanCollection, String jmxOu
// ThreadGroup
ThreadGroup threadGroup = JmxThreadGroup.newInstance(loopController);
- // HTTPSamplerProxy
- List httpSamplerProxies = new ArrayList<>();
- List headerManagers = new ArrayList<>();
-
- for (PostmanItem item : postmanCollection.getItems()) {
- /* if (!item.getEvent().isEmpty()) {
- continue;
- }*/
-
- IJmxBodyBuilder bodyBuilder = JmxBodyBuilderFactory.getJmxBodyBuilder(item);
- HTTPSamplerProxy httpSamplerProxy = bodyBuilder.buildJmxBody(item);
- httpSamplerProxies.add(httpSamplerProxy);
-
- headerManagers.add(JmxHeaderManager.newInstance(item.getName(), item.getRequest().getHeaders()));
- }
-
// Create TestPlan hash tree
HashTree testPlanHashTree = new ListedHashTree();
testPlanHashTree.add(testPlan);
// Add ThreadGroup to TestPlan hash tree
- HashTree threadGroupHashTree = new ListedHashTree();
- threadGroupHashTree = testPlanHashTree.add(testPlan, threadGroup);
+ HashTree threadGroupHashTree = testPlanHashTree.add(testPlan, threadGroup);
// Add Http Cookie Manager
threadGroupHashTree.add(JmxCookieManager.newInstance());
- // Add Http Sampler to ThreadGroup hash tree
- HashTree httpSamplerHashTree = new ListedHashTree();
-
- // Add header manager hash tree
- HashTree headerHashTree = null;
-
- // Add Java Sampler to ThreadGroup hash tree
- for (int i = 0; i < httpSamplerProxies.size(); i++) {
- HTTPSamplerProxy httpSamplerProxy = httpSamplerProxies.get(i);
- HeaderManager headerManager = headerManagers.get(i);
-
- httpSamplerHashTree = threadGroupHashTree.add(httpSamplerProxy);
-
- headerHashTree = new HashTree();
- headerHashTree = httpSamplerHashTree.add(headerManager);
+ for (PostmanItem item : postmanCollection.getItems()) {
+ IJmxBodyBuilder bodyBuilder = JmxBodyBuilderFactory.getJmxBodyBuilder(item);
+ HTTPSamplerProxy httpSamplerProxy = bodyBuilder.buildJmxBody(item);
- PostmanItem postmanItem = postmanCollection.getItems().get(i);
- if (!postmanItem.getEvents().isEmpty()) {
- List jsonPostProcessors = JmxJsonPostProcessor.getJsonPostProcessors(postmanItem);
+ // Add Http Sampler to ThreadGroup hash tree
+ HashTree httpSamplerHashTree = threadGroupHashTree.add(httpSamplerProxy);
+ if (!item.getEvents().isEmpty()) {
+ List jsonPostProcessors = JmxJsonPostProcessor.getJsonPostProcessors(item);
httpSamplerHashTree.add(jsonPostProcessors);
}
+
+ // Add HTTP Header Manager (if headers are defined)
+ if (!item.getRequest().getHeaders().isEmpty()) {
+ HeaderManager headerManager = JmxHeaderManager.newInstance(item.getName(), item.getRequest().getHeaders());
+ httpSamplerHashTree.add(headerManager);
+ }
}
File file = new File(jmxOutputFilePath);
diff --git a/src/main/java/com/loadium/postman2jmx/builder/JmxBodyBuilderFactory.java b/src/main/java/com/loadium/postman2jmx/builder/JmxBodyBuilderFactory.java
index 2f6a00b..a3ed187 100644
--- a/src/main/java/com/loadium/postman2jmx/builder/JmxBodyBuilderFactory.java
+++ b/src/main/java/com/loadium/postman2jmx/builder/JmxBodyBuilderFactory.java
@@ -5,12 +5,19 @@
import com.loadium.postman2jmx.utils.ResponseBodyMode;
public class JmxBodyBuilderFactory {
+
private static JmxRawBodyBuilder jmxRawBodyFileBuilder;
+
private static JmxFormDataBodyBuilder jmxFormDataBodyFileBuilder;
+
private static JmxUrlEncodedBodyBuilder jmxUrlEncodedBodyFileBuilder;
+
private static JmxBinaryBodyBuilder jmxBinaryBodyFileBuilder;
+
private static JmxEmptyBodyBuilder jmxEmptyBodyBuilder;
+ private static JmxGraphQLBodyBuilder jmxGraphQLBodyFileBuilder;
+
public static IJmxBodyBuilder getJmxBodyBuilder(PostmanItem postmanItem) throws UnsupportedJmxFileBuilderException {
String responseBodyMode = null;
@@ -30,6 +37,11 @@ public static IJmxBodyBuilder getJmxBodyBuilder(PostmanItem postmanItem) throws
jmxRawBodyFileBuilder = new JmxRawBodyBuilder();
}
return jmxRawBodyFileBuilder;
+ } else if (ResponseBodyMode.GRAPHQL.getMode().equals(responseBodyMode)) {
+ if (jmxGraphQLBodyFileBuilder == null) {
+ jmxGraphQLBodyFileBuilder = new JmxGraphQLBodyBuilder();
+ }
+ return jmxGraphQLBodyFileBuilder;
} else if (ResponseBodyMode.FORM_DATA.getMode().equals(responseBodyMode)) {
if (jmxFormDataBodyFileBuilder == null) {
jmxFormDataBodyFileBuilder = new JmxFormDataBodyBuilder();
@@ -49,4 +61,5 @@ public static IJmxBodyBuilder getJmxBodyBuilder(PostmanItem postmanItem) throws
throw new UnsupportedJmxFileBuilderException("There is no Jxm builder for response body type: " + responseBodyMode);
}
}
+
}
diff --git a/src/main/java/com/loadium/postman2jmx/builder/JmxGraphQLBodyBuilder.java b/src/main/java/com/loadium/postman2jmx/builder/JmxGraphQLBodyBuilder.java
new file mode 100644
index 0000000..a3988dc
--- /dev/null
+++ b/src/main/java/com/loadium/postman2jmx/builder/JmxGraphQLBodyBuilder.java
@@ -0,0 +1,50 @@
+package com.loadium.postman2jmx.builder;
+
+import com.loadium.postman2jmx.model.jmx.JmxHTTPSamplerProxy;
+import com.loadium.postman2jmx.model.postman.PostmanGraphQLBody;
+import com.loadium.postman2jmx.model.postman.PostmanItem;
+import org.apache.jmeter.config.Arguments;
+import org.apache.jmeter.protocol.http.config.gui.GraphQLUrlConfigGui;
+import org.apache.jmeter.protocol.http.control.gui.GraphQLHTTPSamplerGui;
+import org.apache.jmeter.protocol.http.sampler.HTTPSamplerProxy;
+import org.apache.jmeter.protocol.http.util.HTTPArgument;
+import org.apache.jmeter.protocol.http.util.HTTPConstants;
+import org.apache.jmeter.testelement.TestElement;
+
+public class JmxGraphQLBodyBuilder extends AbstractJmxBodyBuilder {
+
+ @Override
+ public HTTPSamplerProxy buildJmxBody(PostmanItem postmanItem) {
+
+ HTTPSamplerProxy sampler = JmxHTTPSamplerProxy.newInstance(postmanItem);
+
+ if (HTTPConstants.POST.equalsIgnoreCase(sampler.getMethod()) || HTTPConstants.PUT.equalsIgnoreCase(sampler.getMethod()) || HTTPConstants.DELETE.equalsIgnoreCase(sampler.getMethod())) {
+ sampler.setPostBodyRaw(true);
+ sampler.setFollowRedirects(false);
+
+ // Set GraphQL request parameters
+ PostmanGraphQLBody graphql = postmanItem.getRequest().getBody().getGraphql();
+ sampler.setProperty(TestElement.GUI_CLASS, GraphQLHTTPSamplerGui.class.getName());
+ sampler.setProperty(GraphQLUrlConfigGui.OPERATION_NAME, graphql.getOperationName());
+ sampler.setProperty(GraphQLUrlConfigGui.QUERY, graphql.getQuery());
+ sampler.setProperty(GraphQLUrlConfigGui.VARIABLES, graphql.getVariables());
+
+ // Add GraphQL arguments
+ Arguments arguments = new Arguments();
+ if (graphql.getQuery() != null && !graphql.getQuery().isEmpty()) {
+ HTTPArgument argument = new HTTPArgument();
+ argument.setEnabled(true);
+ argument.setAlwaysEncoded(false);
+ argument.setAlwaysEncoded(false);
+ argument.setMetaData("=");
+ argument.setUseEquals(true);
+ argument.setValue(graphql.toJsonString());
+ arguments.addArgument(argument);
+ }
+ sampler.setArguments(arguments);
+ }
+
+ return sampler;
+ }
+
+}
diff --git a/src/main/java/com/loadium/postman2jmx/builder/JmxRawBodyBuilder.java b/src/main/java/com/loadium/postman2jmx/builder/JmxRawBodyBuilder.java
index 24ac242..3f43531 100644
--- a/src/main/java/com/loadium/postman2jmx/builder/JmxRawBodyBuilder.java
+++ b/src/main/java/com/loadium/postman2jmx/builder/JmxRawBodyBuilder.java
@@ -7,8 +7,7 @@
import org.apache.jmeter.config.Arguments;
import org.apache.jmeter.protocol.http.sampler.HTTPSamplerProxy;
import org.apache.jmeter.protocol.http.util.HTTPArgument;
-
-import javax.ws.rs.HttpMethod;
+import org.apache.jmeter.protocol.http.util.HTTPConstants;
public class JmxRawBodyBuilder extends AbstractJmxBodyBuilder {
@@ -17,7 +16,7 @@ public HTTPSamplerProxy buildJmxBody(PostmanItem postmanItem) {
HTTPSamplerProxy httpSamplerProxy = JmxHTTPSamplerProxy.newInstance(postmanItem);
- if (HttpMethod.POST.equalsIgnoreCase(httpSamplerProxy.getMethod()) || HttpMethod.PUT.equalsIgnoreCase(httpSamplerProxy.getMethod()) || HttpMethod.DELETE.equalsIgnoreCase(httpSamplerProxy.getMethod())) {
+ if (HTTPConstants.POST.equalsIgnoreCase(httpSamplerProxy.getMethod()) || HTTPConstants.PUT.equalsIgnoreCase(httpSamplerProxy.getMethod()) || HTTPConstants.DELETE.equalsIgnoreCase(httpSamplerProxy.getMethod())) {
httpSamplerProxy.setPostBodyRaw(true);
Arguments arguments = new Arguments();
PostmanRawBody raw = postmanItem.getRequest().getBody().getRaw();
diff --git a/src/main/java/com/loadium/postman2jmx/model/postman/PostmanBody.java b/src/main/java/com/loadium/postman2jmx/model/postman/PostmanBody.java
index 85daf16..6b91914 100644
--- a/src/main/java/com/loadium/postman2jmx/model/postman/PostmanBody.java
+++ b/src/main/java/com/loadium/postman2jmx/model/postman/PostmanBody.java
@@ -23,6 +23,9 @@ public class PostmanBody {
@JsonProperty("raw")
private PostmanRawBody raw;
+ @JsonProperty("graphql")
+ private PostmanGraphQLBody graphql;
+
@JsonProperty("formdata")
private List formDataList = new ArrayList<>();
@@ -70,4 +73,13 @@ public List getFormDataList() {
public void setFormDataList(List formDataList) {
this.formDataList = formDataList;
}
+
+ public PostmanGraphQLBody getGraphql() {
+ return graphql;
+ }
+
+ public void setGraphql(PostmanGraphQLBody graphql) {
+ this.graphql = graphql;
+ }
+
}
diff --git a/src/main/java/com/loadium/postman2jmx/model/postman/PostmanGraphQLBody.java b/src/main/java/com/loadium/postman2jmx/model/postman/PostmanGraphQLBody.java
new file mode 100644
index 0000000..eae947d
--- /dev/null
+++ b/src/main/java/com/loadium/postman2jmx/model/postman/PostmanGraphQLBody.java
@@ -0,0 +1,56 @@
+package com.loadium.postman2jmx.model.postman;
+
+import com.fasterxml.jackson.annotation.JsonIgnoreProperties;
+import com.fasterxml.jackson.databind.ObjectMapper;
+import com.loadium.postman2jmx.utils.ValueUtils;
+
+@JsonIgnoreProperties(ignoreUnknown = true)
+public class PostmanGraphQLBody {
+
+ private String operationName;
+
+ public String getOperationName() {
+ return operationName;
+ }
+
+ public void setOperationName(String operationName) {
+ this.operationName = operationName;
+ }
+
+ private String query;
+
+ private String variables;
+
+ public PostmanGraphQLBody() {
+ }
+
+ public PostmanGraphQLBody(String query, String variables) {
+ this.query = query;
+ this.variables = variables;
+ }
+
+ public String getQuery() {
+ return query;
+ }
+
+ public void setQuery(String query) {
+ this.query = ValueUtils.value(query);
+ }
+
+ public String getVariables() {
+ return this.variables;
+ }
+
+ public void setVariables(String variables) {
+ this.variables = ValueUtils.value(variables);
+ }
+
+ public String toJsonString() {
+ try {
+ return new ObjectMapper().writeValueAsString(this);
+ } catch (Exception ignored) {
+ }
+ return "";
+ }
+
+}
diff --git a/src/main/java/com/loadium/postman2jmx/utils/PostmanCollectionUtils.java b/src/main/java/com/loadium/postman2jmx/utils/PostmanCollectionUtils.java
index f4d706b..d67ab3c 100644
--- a/src/main/java/com/loadium/postman2jmx/utils/PostmanCollectionUtils.java
+++ b/src/main/java/com/loadium/postman2jmx/utils/PostmanCollectionUtils.java
@@ -2,14 +2,9 @@
import com.loadium.postman2jmx.model.postman.PostmanCollection;
import com.loadium.postman2jmx.model.postman.PostmanItem;
-import org.apache.commons.lang3.StringUtils;
import java.util.ArrayList;
-import java.util.Calendar;
-import java.util.Collections;
import java.util.List;
-import java.util.regex.Matcher;
-import java.util.regex.Pattern;
public class PostmanCollectionUtils {
@@ -31,4 +26,5 @@ public static List getItems(PostmanCollection postmanCollection) {
}
return items;
}
+
}
diff --git a/src/main/java/com/loadium/postman2jmx/utils/ResponseBodyMode.java b/src/main/java/com/loadium/postman2jmx/utils/ResponseBodyMode.java
index 9b705ab..86327f2 100644
--- a/src/main/java/com/loadium/postman2jmx/utils/ResponseBodyMode.java
+++ b/src/main/java/com/loadium/postman2jmx/utils/ResponseBodyMode.java
@@ -5,6 +5,7 @@ public enum ResponseBodyMode {
URL_ENCODED("urlencoded"),
FILE("file"),
RAW("raw"),
+ GRAPHQL("graphql"),
FORM_DATA("formdata"),
EMPTY("empty");