public synchronized void uploadJmx(String userKey, String testId, String fileName, String filePath) {
        if (userKey == null || userKey.trim().isEmpty()) {
            BmLog.debug("JMX cannot be uploaded, userKey is empty");
            return;
        }

        if (testId == null || testId.trim().isEmpty()) {
            BmLog.debug("JMX cannot be uploaded, testId is empty");
            return;
        }

        String url = this.urlManager.scriptUpload(Constants.APP_KEY, userKey, testId, fileName);
        JSONObject jmxData = new JSONObject();
        String fileCon = Utils.getFileContents(filePath);

        try {
            jmxData.put(Constants.DATA, fileCon);
        } catch (JSONException e) {
            BmLog.error(e);
        }

        getJson(Methods.POST, url, jmxData);
    }