diff --git a/backend/src/main/java/io/metersphere/api/dto/definition/request/sampler/MsHTTPSamplerProxy.java b/backend/src/main/java/io/metersphere/api/dto/definition/request/sampler/MsHTTPSamplerProxy.java index f46e4d1162da04cb53be29e308b44debc2c6425e..4e0a353f18aed75f3b060130d43f8acdb516c851 100644 --- a/backend/src/main/java/io/metersphere/api/dto/definition/request/sampler/MsHTTPSamplerProxy.java +++ b/backend/src/main/java/io/metersphere/api/dto/definition/request/sampler/MsHTTPSamplerProxy.java @@ -351,16 +351,13 @@ public class MsHTTPSamplerProxy extends MsTestElement { public boolean isURL(String str) { try { - String regex = "^((https|http|ftp|rtsp|mms)?://)" - + "?(([0-9a-z_!~*'().&=+$%-]+: )?[0-9a-z_!~*'().&=+$%-]+@)?" - + "(([0-9]{1,3}\\.){3}[0-9]{1,3}" + "|" + "([0-9a-z_!~*'()-]+\\.)*" - + "([0-9a-z][0-9a-z-]{0,61})?[0-9a-z]\\." - + "[a-z]{2,6})" - + "(:[0-9]{1,5})?" - + "((/?)|" - + "(/[0-9a-z_!~*'().;?:@&=+$,%#-]+)+/?)$"; - return str.matches(regex) || (str.matches("^(http|https|ftp)://.*$") && str.matches(".*://\\$\\{.*$")); + new URL(str); + return true; } catch (Exception e) { + // 支持包含变量的url + if (str.matches("^(http|https|ftp)://.*$") && str.matches(".*://\\$\\{.*$")) { + return true; + } return false; } } diff --git a/backend/src/main/java/io/metersphere/api/jmeter/APIBackendListenerClient.java b/backend/src/main/java/io/metersphere/api/jmeter/APIBackendListenerClient.java index 3ecf48632c582dd050af599557c99844c3bf8815..92e92bc2167219b127b6402b05371ae079319bdf 100644 --- a/backend/src/main/java/io/metersphere/api/jmeter/APIBackendListenerClient.java +++ b/backend/src/main/java/io/metersphere/api/jmeter/APIBackendListenerClient.java @@ -247,7 +247,7 @@ public class APIBackendListenerClient extends AbstractBackendListenerClient impl } } - if (StringUtils.equals(ReportTriggerMode.API.name(), report.getTriggerMode())||StringUtils.equals(ReportTriggerMode.SCHEDULE.name(), report.getTriggerMode())) { + if (report != null && StringUtils.equals(ReportTriggerMode.API.name(), report.getTriggerMode())||StringUtils.equals(ReportTriggerMode.SCHEDULE.name(), report.getTriggerMode())) { sendTask(report, reportUrl, testResult); } diff --git a/frontend/src/business/components/api/automation/scenario/variable/VariableList.vue b/frontend/src/business/components/api/automation/scenario/variable/VariableList.vue index 8f23c32cb6d2473ee9cfaa673b84f3a5736761f9..121eda1984ba01e7ba52a621599c1160910291d5 100644 --- a/frontend/src/business/components/api/automation/scenario/variable/VariableList.vue +++ b/frontend/src/business/components/api/automation/scenario/variable/VariableList.vue @@ -1,5 +1,5 @@