fix(接口测试): 修复同名数据源执行过程产生大量错误日志问题
--bug=1016451 --user=赵勇 [接口测试]github#17539我把metersphere的接口自动化中的50个场景导入到一个新场景中运行时控制台报错。这些场景单独运行都是没问题的,就是导入到一个新的场景中控制台就报这个错了,并且运行时也有大量报错了 https://www.tapd.cn/55049933/s/1306709
This commit is contained in:
parent
d42023a732
commit
0793e08946
|
@ -801,9 +801,11 @@ public class ElementUtil {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
List<String> finalDataName = dataName;
|
List<String> finalDataName = dataName;
|
||||||
List<DatabaseConfig> collect = envConfig.getDatabaseConfigs().stream().filter(DatabaseConfig -> DatabaseConfig.getName().equals(finalDataName.get(0))).collect(Collectors.toList());
|
if (CollectionUtils.isNotEmpty(dataName)) {
|
||||||
if (CollectionUtils.isNotEmpty(collect)) {
|
List<DatabaseConfig> collect = envConfig.getDatabaseConfigs().stream().filter(DatabaseConfig -> DatabaseConfig.getName().equals(finalDataName.get(0))).collect(Collectors.toList());
|
||||||
return collect.get(0);
|
if (CollectionUtils.isNotEmpty(collect)) {
|
||||||
|
return collect.get(0);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
} catch (Exception e) {
|
} catch (Exception e) {
|
||||||
LogUtil.error(e);
|
LogUtil.error(e);
|
||||||
|
@ -811,4 +813,7 @@ public class ElementUtil {
|
||||||
return null;
|
return null;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public static String getDataSourceName(String name) {
|
||||||
|
return StringUtils.join(name, "-", UUID.randomUUID().toString());
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -146,8 +146,9 @@ public class MsJDBCPostProcessor extends MsTestElement {
|
||||||
MSException.throwException(StringUtils.isNotEmpty(this.getName()) ? this.getName() + ":" + message : message);
|
MSException.throwException(StringUtils.isNotEmpty(this.getName()) ? this.getName() + ":" + message : message);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
final HashTree samplerHashTree = tree.add(jdbcPostProcessor(config));
|
JDBCPostProcessor jdbcPostProcessor = jdbcPostProcessor(config);
|
||||||
tree.add(jdbcDataSource());
|
final HashTree samplerHashTree = tree.add(jdbcPostProcessor);
|
||||||
|
tree.add(jdbcDataSource(jdbcPostProcessor.getDataSource()));
|
||||||
Arguments arguments = arguments(StringUtils.isNotEmpty(this.getName()) ? this.getName() : "Arguments", this.getVariables());
|
Arguments arguments = arguments(StringUtils.isNotEmpty(this.getName()) ? this.getName() : "Arguments", this.getVariables());
|
||||||
if (arguments != null) {
|
if (arguments != null) {
|
||||||
tree.add(arguments);
|
tree.add(arguments);
|
||||||
|
@ -260,7 +261,8 @@ public class MsJDBCPostProcessor extends MsTestElement {
|
||||||
|
|
||||||
ElementUtil.setBaseParams(jdbcPostProcessor, this.getParent(), config, this.getId(), this.getIndex());
|
ElementUtil.setBaseParams(jdbcPostProcessor, this.getParent(), config, this.getId(), this.getIndex());
|
||||||
// request.getDataSource() 是ID,需要转换为Name
|
// request.getDataSource() 是ID,需要转换为Name
|
||||||
jdbcPostProcessor.setProperty("dataSource", this.dataSource.getName());
|
jdbcPostProcessor.setDataSource(ElementUtil.getDataSourceName(this.dataSource.getName()));
|
||||||
|
jdbcPostProcessor.setProperty("dataSource", jdbcPostProcessor.getDataSource());
|
||||||
jdbcPostProcessor.setProperty("query", this.getQuery());
|
jdbcPostProcessor.setProperty("query", this.getQuery());
|
||||||
jdbcPostProcessor.setProperty("queryTimeout", String.valueOf(this.getQueryTimeout()));
|
jdbcPostProcessor.setProperty("queryTimeout", String.valueOf(this.getQueryTimeout()));
|
||||||
jdbcPostProcessor.setProperty("resultVariable", this.getResultVariable());
|
jdbcPostProcessor.setProperty("resultVariable", this.getResultVariable());
|
||||||
|
@ -270,7 +272,7 @@ public class MsJDBCPostProcessor extends MsTestElement {
|
||||||
return jdbcPostProcessor;
|
return jdbcPostProcessor;
|
||||||
}
|
}
|
||||||
|
|
||||||
private DataSourceElement jdbcDataSource() {
|
private DataSourceElement jdbcDataSource(String name) {
|
||||||
DataSourceElement dataSourceElement = new DataSourceElement();
|
DataSourceElement dataSourceElement = new DataSourceElement();
|
||||||
dataSourceElement.setEnabled(true);
|
dataSourceElement.setEnabled(true);
|
||||||
dataSourceElement.setName(this.getName() + " JDBCDataSource");
|
dataSourceElement.setName(this.getName() + " JDBCDataSource");
|
||||||
|
@ -279,7 +281,7 @@ public class MsJDBCPostProcessor extends MsTestElement {
|
||||||
dataSourceElement.setProperty("autocommit", true);
|
dataSourceElement.setProperty("autocommit", true);
|
||||||
dataSourceElement.setProperty("keepAlive", true);
|
dataSourceElement.setProperty("keepAlive", true);
|
||||||
dataSourceElement.setProperty("preinit", false);
|
dataSourceElement.setProperty("preinit", false);
|
||||||
dataSourceElement.setProperty("dataSource", dataSource.getName());
|
dataSourceElement.setProperty("dataSource", name);
|
||||||
dataSourceElement.setProperty("dbUrl", dataSource.getDbUrl());
|
dataSourceElement.setProperty("dbUrl", dataSource.getDbUrl());
|
||||||
dataSourceElement.setProperty("driver", dataSource.getDriver());
|
dataSourceElement.setProperty("driver", dataSource.getDriver());
|
||||||
dataSourceElement.setProperty("username", dataSource.getUsername());
|
dataSourceElement.setProperty("username", dataSource.getUsername());
|
||||||
|
|
|
@ -146,8 +146,9 @@ public class MsJDBCPreProcessor extends MsTestElement {
|
||||||
MSException.throwException(StringUtils.isNotEmpty(this.getName()) ? this.getName() + ":" + message : message);
|
MSException.throwException(StringUtils.isNotEmpty(this.getName()) ? this.getName() + ":" + message : message);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
final HashTree samplerHashTree = tree.add(jdbcPreProcessor(config));
|
JDBCPreProcessor preProcessor = jdbcPreProcessor(config);
|
||||||
tree.add(jdbcDataSource());
|
final HashTree samplerHashTree = tree.add(preProcessor);
|
||||||
|
tree.add(jdbcDataSource(preProcessor.getDataSource()));
|
||||||
Arguments arguments = arguments(StringUtils.isNotEmpty(this.getName()) ? this.getName() : "Arguments", this.getVariables());
|
Arguments arguments = arguments(StringUtils.isNotEmpty(this.getName()) ? this.getName() : "Arguments", this.getVariables());
|
||||||
if (arguments != null) {
|
if (arguments != null) {
|
||||||
tree.add(arguments);
|
tree.add(arguments);
|
||||||
|
@ -259,8 +260,8 @@ public class MsJDBCPreProcessor extends MsTestElement {
|
||||||
jdbcPreProcessor.setProperty(TestElement.GUI_CLASS, SaveService.aliasToClass("TestBeanGUI"));
|
jdbcPreProcessor.setProperty(TestElement.GUI_CLASS, SaveService.aliasToClass("TestBeanGUI"));
|
||||||
|
|
||||||
ElementUtil.setBaseParams(jdbcPreProcessor, this.getParent(), config, this.getId(), this.getIndex());
|
ElementUtil.setBaseParams(jdbcPreProcessor, this.getParent(), config, this.getId(), this.getIndex());
|
||||||
|
jdbcPreProcessor.setDataSource(ElementUtil.getDataSourceName(this.dataSource.getName()));
|
||||||
jdbcPreProcessor.setProperty("dataSource", this.dataSource.getName());
|
jdbcPreProcessor.setProperty("dataSource", jdbcPreProcessor.getDataSource());
|
||||||
jdbcPreProcessor.setProperty("query", this.getQuery());
|
jdbcPreProcessor.setProperty("query", this.getQuery());
|
||||||
jdbcPreProcessor.setProperty("queryTimeout", String.valueOf(this.getQueryTimeout()));
|
jdbcPreProcessor.setProperty("queryTimeout", String.valueOf(this.getQueryTimeout()));
|
||||||
jdbcPreProcessor.setProperty("resultVariable", this.getResultVariable());
|
jdbcPreProcessor.setProperty("resultVariable", this.getResultVariable());
|
||||||
|
@ -270,7 +271,7 @@ public class MsJDBCPreProcessor extends MsTestElement {
|
||||||
return jdbcPreProcessor;
|
return jdbcPreProcessor;
|
||||||
}
|
}
|
||||||
|
|
||||||
private DataSourceElement jdbcDataSource() {
|
private DataSourceElement jdbcDataSource(String sourceName) {
|
||||||
DataSourceElement dataSourceElement = new DataSourceElement();
|
DataSourceElement dataSourceElement = new DataSourceElement();
|
||||||
dataSourceElement.setEnabled(true);
|
dataSourceElement.setEnabled(true);
|
||||||
dataSourceElement.setName(this.getName() + " JDBCDataSource");
|
dataSourceElement.setName(this.getName() + " JDBCDataSource");
|
||||||
|
@ -279,7 +280,7 @@ public class MsJDBCPreProcessor extends MsTestElement {
|
||||||
dataSourceElement.setProperty("autocommit", true);
|
dataSourceElement.setProperty("autocommit", true);
|
||||||
dataSourceElement.setProperty("keepAlive", true);
|
dataSourceElement.setProperty("keepAlive", true);
|
||||||
dataSourceElement.setProperty("preinit", false);
|
dataSourceElement.setProperty("preinit", false);
|
||||||
dataSourceElement.setProperty("dataSource", dataSource.getName());
|
dataSourceElement.setProperty("dataSource", sourceName);
|
||||||
dataSourceElement.setProperty("dbUrl", dataSource.getDbUrl());
|
dataSourceElement.setProperty("dbUrl", dataSource.getDbUrl());
|
||||||
dataSourceElement.setProperty("driver", dataSource.getDriver());
|
dataSourceElement.setProperty("driver", dataSource.getDriver());
|
||||||
dataSourceElement.setProperty("username", dataSource.getUsername());
|
dataSourceElement.setProperty("username", dataSource.getUsername());
|
||||||
|
|
|
@ -161,10 +161,11 @@ public class MsJDBCSampler extends MsTestElement {
|
||||||
String message = "数据源为空请选择数据源";
|
String message = "数据源为空请选择数据源";
|
||||||
MSException.throwException(StringUtils.isNotEmpty(this.getName()) ? this.getName() + ":" + message : message);
|
MSException.throwException(StringUtils.isNotEmpty(this.getName()) ? this.getName() + ":" + message : message);
|
||||||
}
|
}
|
||||||
final HashTree samplerHashTree = tree.add(jdbcSampler(config));
|
JDBCSampler jdbcSampler = jdbcSampler(config);
|
||||||
tree.add(jdbcDataSource());
|
final HashTree samplerHashTree = tree.add(jdbcSampler);
|
||||||
|
tree.add(jdbcDataSource(jdbcSampler.getDataSource()));
|
||||||
Arguments arguments = arguments(StringUtils.isNotEmpty(this.getName()) ? this.getName() : "Arguments", this.getVariables());
|
Arguments arguments = arguments(StringUtils.isNotEmpty(this.getName()) ? this.getName() : "Arguments", this.getVariables());
|
||||||
if (arguments != null) {
|
if (arguments != null && !arguments.getArguments().isEmpty()) {
|
||||||
tree.add(arguments);
|
tree.add(arguments);
|
||||||
}
|
}
|
||||||
// 环境通用请求头
|
// 环境通用请求头
|
||||||
|
@ -332,7 +333,8 @@ public class MsJDBCSampler extends MsTestElement {
|
||||||
sampler.setProperty(TestElement.TEST_CLASS, JDBCSampler.class.getName());
|
sampler.setProperty(TestElement.TEST_CLASS, JDBCSampler.class.getName());
|
||||||
sampler.setProperty(TestElement.GUI_CLASS, SaveService.aliasToClass("TestBeanGUI"));
|
sampler.setProperty(TestElement.GUI_CLASS, SaveService.aliasToClass("TestBeanGUI"));
|
||||||
ElementUtil.setBaseParams(sampler, this.getParent(), config, this.getId(), this.getIndex());
|
ElementUtil.setBaseParams(sampler, this.getParent(), config, this.getId(), this.getIndex());
|
||||||
sampler.setProperty("dataSource", this.dataSource.getName());
|
sampler.setDataSource(ElementUtil.getDataSourceName(this.dataSource.getName()));
|
||||||
|
sampler.setProperty("dataSource", sampler.getDataSource());
|
||||||
sampler.setProperty("query", this.getQuery());
|
sampler.setProperty("query", this.getQuery());
|
||||||
sampler.setProperty("queryTimeout", String.valueOf(this.getQueryTimeout()));
|
sampler.setProperty("queryTimeout", String.valueOf(this.getQueryTimeout()));
|
||||||
sampler.setProperty("resultVariable", this.getResultVariable());
|
sampler.setProperty("resultVariable", this.getResultVariable());
|
||||||
|
@ -342,7 +344,7 @@ public class MsJDBCSampler extends MsTestElement {
|
||||||
return sampler;
|
return sampler;
|
||||||
}
|
}
|
||||||
|
|
||||||
private DataSourceElement jdbcDataSource() {
|
private DataSourceElement jdbcDataSource(String dataSourceName) {
|
||||||
DataSourceElement dataSourceElement = new DataSourceElement();
|
DataSourceElement dataSourceElement = new DataSourceElement();
|
||||||
dataSourceElement.setEnabled(true);
|
dataSourceElement.setEnabled(true);
|
||||||
dataSourceElement.setName(this.getName() + " JDBCDataSource");
|
dataSourceElement.setName(this.getName() + " JDBCDataSource");
|
||||||
|
@ -351,7 +353,7 @@ public class MsJDBCSampler extends MsTestElement {
|
||||||
dataSourceElement.setProperty("autocommit", true);
|
dataSourceElement.setProperty("autocommit", true);
|
||||||
dataSourceElement.setProperty("keepAlive", true);
|
dataSourceElement.setProperty("keepAlive", true);
|
||||||
dataSourceElement.setProperty("preinit", false);
|
dataSourceElement.setProperty("preinit", false);
|
||||||
dataSourceElement.setProperty("dataSource", dataSource.getName());
|
dataSourceElement.setProperty("dataSource", dataSourceName);
|
||||||
dataSourceElement.setProperty("dbUrl", dataSource.getDbUrl());
|
dataSourceElement.setProperty("dbUrl", dataSource.getDbUrl());
|
||||||
dataSourceElement.setProperty("driver", dataSource.getDriver());
|
dataSourceElement.setProperty("driver", dataSource.getDriver());
|
||||||
dataSourceElement.setProperty("username", dataSource.getUsername());
|
dataSourceElement.setProperty("username", dataSource.getUsername());
|
||||||
|
|
Loading…
Reference in New Issue