Merge branch 'master' into compare
This commit is contained in:
commit
772454df43
|
@ -73,6 +73,10 @@ public class MsScenario extends MsTestElement {
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void toHashTree(HashTree tree, List<MsTestElement> hashTree, ParameterConfig config) {
|
public void toHashTree(HashTree tree, List<MsTestElement> hashTree, ParameterConfig config) {
|
||||||
|
// 非导出操作,且不是启用状态则跳过执行
|
||||||
|
if (!config.isOperating() && !this.isEnable()) {
|
||||||
|
return;
|
||||||
|
}
|
||||||
if (this.getReferenced() != null && this.getReferenced().equals("Deleted")) {
|
if (this.getReferenced() != null && this.getReferenced().equals("Deleted")) {
|
||||||
return;
|
return;
|
||||||
} else if (this.getReferenced() != null && this.getReferenced().equals("REF")) {
|
} else if (this.getReferenced() != null && this.getReferenced().equals("REF")) {
|
||||||
|
@ -198,6 +202,8 @@ public class MsScenario extends MsTestElement {
|
||||||
config.getConfig().get(this.getProjectId()).getCommonConfig().getVariables().stream().filter(KeyValue::isValid).filter(KeyValue::isEnable).forEach(keyValue ->
|
config.getConfig().get(this.getProjectId()).getCommonConfig().getVariables().stream().filter(KeyValue::isValid).filter(KeyValue::isEnable).forEach(keyValue ->
|
||||||
arguments.addArgument(keyValue.getName(), keyValue.getValue(), "=")
|
arguments.addArgument(keyValue.getName(), keyValue.getValue(), "=")
|
||||||
);
|
);
|
||||||
|
// 清空变量,防止重复添加
|
||||||
|
config.getConfig().get(this.getProjectId()).getCommonConfig().getVariables().clear();
|
||||||
}
|
}
|
||||||
if (arguments.getArguments() != null && arguments.getArguments().size() > 0) {
|
if (arguments.getArguments() != null && arguments.getArguments().size() > 0) {
|
||||||
return arguments;
|
return arguments;
|
||||||
|
|
|
@ -27,6 +27,10 @@ public class MsAssertions extends MsTestElement {
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void toHashTree(HashTree tree, List<MsTestElement> hashTree, ParameterConfig config) {
|
public void toHashTree(HashTree tree, List<MsTestElement> hashTree, ParameterConfig config) {
|
||||||
|
// 非导出操作,且不是启用状态则跳过执行
|
||||||
|
if (!config.isOperating() && !this.isEnable()) {
|
||||||
|
return;
|
||||||
|
}
|
||||||
addAssertions(tree);
|
addAssertions(tree);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -26,6 +26,10 @@ public class MsIfController extends MsTestElement {
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void toHashTree(HashTree tree, List<MsTestElement> hashTree, ParameterConfig config) {
|
public void toHashTree(HashTree tree, List<MsTestElement> hashTree, ParameterConfig config) {
|
||||||
|
// 非导出操作,且不是启用状态则跳过执行
|
||||||
|
if (!config.isOperating() && !this.isEnable()) {
|
||||||
|
return;
|
||||||
|
}
|
||||||
final HashTree groupTree = tree.add(ifController());
|
final HashTree groupTree = tree.add(ifController());
|
||||||
if (CollectionUtils.isNotEmpty(hashTree)) {
|
if (CollectionUtils.isNotEmpty(hashTree)) {
|
||||||
hashTree.forEach(el -> {
|
hashTree.forEach(el -> {
|
||||||
|
|
|
@ -44,6 +44,10 @@ public class MsLoopController extends MsTestElement {
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void toHashTree(HashTree tree, List<MsTestElement> hashTree, ParameterConfig config) {
|
public void toHashTree(HashTree tree, List<MsTestElement> hashTree, ParameterConfig config) {
|
||||||
|
// 非导出操作,且不是启用状态则跳过执行
|
||||||
|
if (!config.isOperating() && !this.isEnable()) {
|
||||||
|
return;
|
||||||
|
}
|
||||||
final HashTree groupTree = controller(tree);
|
final HashTree groupTree = controller(tree);
|
||||||
if (CollectionUtils.isNotEmpty(config.getVariables())) {
|
if (CollectionUtils.isNotEmpty(config.getVariables())) {
|
||||||
this.addCsvDataSet(groupTree, config.getVariables());
|
this.addCsvDataSet(groupTree, config.getVariables());
|
||||||
|
|
|
@ -26,7 +26,8 @@ public class MsDNSCacheManager extends MsTestElement {
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void toHashTree(HashTree tree, List<MsTestElement> hashTree, ParameterConfig config) {
|
public void toHashTree(HashTree tree, List<MsTestElement> hashTree, ParameterConfig config) {
|
||||||
if (!this.isEnable()) {
|
// 非导出操作,且不是启用状态则跳过执行
|
||||||
|
if (!config.isOperating() && !this.isEnable()) {
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
for (MsTestElement el : hashTree) {
|
for (MsTestElement el : hashTree) {
|
||||||
|
|
|
@ -30,6 +30,10 @@ public class MsExtract extends MsTestElement {
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void toHashTree(HashTree tree, List<MsTestElement> hashTree, ParameterConfig config) {
|
public void toHashTree(HashTree tree, List<MsTestElement> hashTree, ParameterConfig config) {
|
||||||
|
// 非导出操作,且不是启用状态则跳过执行
|
||||||
|
if (!config.isOperating() && !this.isEnable()) {
|
||||||
|
return;
|
||||||
|
}
|
||||||
addRequestExtractors(tree);
|
addRequestExtractors(tree);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -29,6 +29,10 @@ public class MsJSR223Processor extends MsTestElement {
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void toHashTree(HashTree tree, List<MsTestElement> hashTree, ParameterConfig config) {
|
public void toHashTree(HashTree tree, List<MsTestElement> hashTree, ParameterConfig config) {
|
||||||
|
// 非导出操作,且不是启用状态则跳过执行
|
||||||
|
if (!config.isOperating() && !this.isEnable()) {
|
||||||
|
return;
|
||||||
|
}
|
||||||
JSR223Sampler processor = new JSR223Sampler();
|
JSR223Sampler processor = new JSR223Sampler();
|
||||||
processor.setEnabled(this.isEnable());
|
processor.setEnabled(this.isEnable());
|
||||||
if (StringUtils.isNotEmpty(this.getName())) {
|
if (StringUtils.isNotEmpty(this.getName())) {
|
||||||
|
|
|
@ -29,6 +29,10 @@ public class MsJSR223PostProcessor extends MsTestElement {
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void toHashTree(HashTree tree, List<MsTestElement> hashTree, ParameterConfig config) {
|
public void toHashTree(HashTree tree, List<MsTestElement> hashTree, ParameterConfig config) {
|
||||||
|
// 非导出操作,且不是启用状态则跳过执行
|
||||||
|
if (!config.isOperating() && !this.isEnable()) {
|
||||||
|
return;
|
||||||
|
}
|
||||||
JSR223PostProcessor processor = new JSR223PostProcessor();
|
JSR223PostProcessor processor = new JSR223PostProcessor();
|
||||||
processor.setEnabled(this.isEnable());
|
processor.setEnabled(this.isEnable());
|
||||||
if (StringUtils.isNotEmpty(this.getName())) {
|
if (StringUtils.isNotEmpty(this.getName())) {
|
||||||
|
|
|
@ -30,6 +30,10 @@ public class MsJSR223PreProcessor extends MsTestElement {
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void toHashTree(HashTree tree, List<MsTestElement> hashTree, ParameterConfig config) {
|
public void toHashTree(HashTree tree, List<MsTestElement> hashTree, ParameterConfig config) {
|
||||||
|
// 非导出操作,且不是启用状态则跳过执行
|
||||||
|
if (!config.isOperating() && !this.isEnable()) {
|
||||||
|
return;
|
||||||
|
}
|
||||||
final HashTree jsr223PreTree = tree.add(getJSR223PreProcessor());
|
final HashTree jsr223PreTree = tree.add(getJSR223PreProcessor());
|
||||||
if (CollectionUtils.isNotEmpty(hashTree)) {
|
if (CollectionUtils.isNotEmpty(hashTree)) {
|
||||||
hashTree.forEach(el -> {
|
hashTree.forEach(el -> {
|
||||||
|
|
|
@ -60,6 +60,10 @@ public class MsDubboSampler extends MsTestElement {
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void toHashTree(HashTree tree, List<MsTestElement> hashTree, ParameterConfig config) {
|
public void toHashTree(HashTree tree, List<MsTestElement> hashTree, ParameterConfig config) {
|
||||||
|
// 非导出操作,且不是启用状态则跳过执行
|
||||||
|
if (!config.isOperating() && !this.isEnable()) {
|
||||||
|
return;
|
||||||
|
}
|
||||||
if (this.getReferenced() != null && "Deleted".equals(this.getReferenced())) {
|
if (this.getReferenced() != null && "Deleted".equals(this.getReferenced())) {
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
|
@ -93,7 +93,10 @@ public class MsHTTPSamplerProxy extends MsTestElement {
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void toHashTree(HashTree tree, List<MsTestElement> hashTree, ParameterConfig config) {
|
public void toHashTree(HashTree tree, List<MsTestElement> hashTree, ParameterConfig config) {
|
||||||
|
// 非导出操作,且不是启用状态则跳过执行
|
||||||
|
if (!config.isOperating() && !this.isEnable()) {
|
||||||
|
return;
|
||||||
|
}
|
||||||
if (this.getReferenced() != null && MsTestElementConstants.REF.name().equals(this.getReferenced())) {
|
if (this.getReferenced() != null && MsTestElementConstants.REF.name().equals(this.getReferenced())) {
|
||||||
this.getRefElement(this);
|
this.getRefElement(this);
|
||||||
}
|
}
|
||||||
|
@ -315,7 +318,9 @@ public class MsHTTPSamplerProxy extends MsTestElement {
|
||||||
headers.stream().filter(KeyValue::isValid).filter(KeyValue::isEnable).forEach(keyValue ->
|
headers.stream().filter(KeyValue::isValid).filter(KeyValue::isEnable).forEach(keyValue ->
|
||||||
headerManager.add(new Header(keyValue.getName(), keyValue.getValue()))
|
headerManager.add(new Header(keyValue.getName(), keyValue.getValue()))
|
||||||
);
|
);
|
||||||
tree.add(headerManager);
|
if (headerManager.getHeaders().size() > 0) {
|
||||||
|
tree.add(headerManager);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
public boolean isURL(String str) {
|
public boolean isURL(String str) {
|
||||||
|
|
|
@ -58,6 +58,10 @@ public class MsJDBCSampler extends MsTestElement {
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void toHashTree(HashTree tree, List<MsTestElement> hashTree, ParameterConfig config) {
|
public void toHashTree(HashTree tree, List<MsTestElement> hashTree, ParameterConfig config) {
|
||||||
|
// 非导出操作,且不是启用状态则跳过执行
|
||||||
|
if (!config.isOperating() && !this.isEnable()) {
|
||||||
|
return;
|
||||||
|
}
|
||||||
if (this.getReferenced() != null && MsTestElementConstants.REF.name().equals(this.getReferenced())) {
|
if (this.getReferenced() != null && MsTestElementConstants.REF.name().equals(this.getReferenced())) {
|
||||||
this.getRefElement(this);
|
this.getRefElement(this);
|
||||||
}
|
}
|
||||||
|
|
|
@ -72,6 +72,10 @@ public class MsTCPSampler extends MsTestElement {
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void toHashTree(HashTree tree, List<MsTestElement> hashTree, ParameterConfig config) {
|
public void toHashTree(HashTree tree, List<MsTestElement> hashTree, ParameterConfig config) {
|
||||||
|
// 非导出操作,且不是启用状态则跳过执行
|
||||||
|
if (!config.isOperating() && !this.isEnable()) {
|
||||||
|
return;
|
||||||
|
}
|
||||||
if (this.getReferenced() != null && MsTestElementConstants.REF.name().equals(this.getReferenced())) {
|
if (this.getReferenced() != null && MsTestElementConstants.REF.name().equals(this.getReferenced())) {
|
||||||
this.getRefElement(this);
|
this.getRefElement(this);
|
||||||
}
|
}
|
||||||
|
|
|
@ -26,7 +26,10 @@ public class MsConstantTimer extends MsTestElement {
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void toHashTree(HashTree tree, List<MsTestElement> hashTree, ParameterConfig config) {
|
public void toHashTree(HashTree tree, List<MsTestElement> hashTree, ParameterConfig config) {
|
||||||
|
// 非导出操作,且不是启用状态则跳过执行
|
||||||
|
if (!config.isOperating() && !this.isEnable()) {
|
||||||
|
return;
|
||||||
|
}
|
||||||
final HashTree groupTree = tree.add(constantTimer());
|
final HashTree groupTree = tree.add(constantTimer());
|
||||||
if (CollectionUtils.isNotEmpty(hashTree)) {
|
if (CollectionUtils.isNotEmpty(hashTree)) {
|
||||||
hashTree.forEach(el -> {
|
hashTree.forEach(el -> {
|
||||||
|
|
|
@ -3,6 +3,7 @@ package io.metersphere.api.dto.definition.request.unknown;
|
||||||
import com.alibaba.fastjson.annotation.JSONType;
|
import com.alibaba.fastjson.annotation.JSONType;
|
||||||
import io.metersphere.api.dto.definition.request.MsTestElement;
|
import io.metersphere.api.dto.definition.request.MsTestElement;
|
||||||
import io.metersphere.api.dto.definition.request.ParameterConfig;
|
import io.metersphere.api.dto.definition.request.ParameterConfig;
|
||||||
|
import io.metersphere.commons.utils.LogUtil;
|
||||||
import lombok.Data;
|
import lombok.Data;
|
||||||
import lombok.EqualsAndHashCode;
|
import lombok.EqualsAndHashCode;
|
||||||
import org.apache.commons.collections.CollectionUtils;
|
import org.apache.commons.collections.CollectionUtils;
|
||||||
|
@ -36,17 +37,22 @@ public class MsJmeterElement extends MsTestElement {
|
||||||
Object scriptWrapper = SaveService.loadElement(inputSource);
|
Object scriptWrapper = SaveService.loadElement(inputSource);
|
||||||
HashTree elementTree = tree;
|
HashTree elementTree = tree;
|
||||||
this.setElementType(scriptWrapper.getClass().getName());
|
this.setElementType(scriptWrapper.getClass().getName());
|
||||||
|
if (scriptWrapper instanceof TestElement) {
|
||||||
|
((TestElement) scriptWrapper).setName(this.getName());
|
||||||
|
((TestElement) scriptWrapper).setEnabled(this.isEnable());
|
||||||
|
}
|
||||||
if (config.isOperating()) {
|
if (config.isOperating()) {
|
||||||
elementTree = tree.add(scriptWrapper);
|
elementTree = tree.add(scriptWrapper);
|
||||||
} else if (!(scriptWrapper instanceof TestPlan) && !(scriptWrapper instanceof ThreadGroup)) {
|
} else if (!(scriptWrapper instanceof TestPlan) && !(scriptWrapper instanceof ThreadGroup)) {
|
||||||
elementTree = tree.add(scriptWrapper);
|
elementTree = tree.add(scriptWrapper);
|
||||||
}
|
}
|
||||||
if (scriptWrapper instanceof TestElement) {
|
if (!config.isOperating() && scriptWrapper instanceof ThreadGroup && !((ThreadGroup) scriptWrapper).isEnabled()) {
|
||||||
((TestElement) scriptWrapper).setName(this.getName());
|
LogUtil.info(((ThreadGroup) scriptWrapper).getName() + "是被禁用线程组不加入执行");
|
||||||
}
|
} else {
|
||||||
if (CollectionUtils.isNotEmpty(hashTree)) {
|
if (CollectionUtils.isNotEmpty(hashTree)) {
|
||||||
for (MsTestElement el : hashTree) {
|
for (MsTestElement el : hashTree) {
|
||||||
el.toHashTree(elementTree, el.getHashTree(), config);
|
el.toHashTree(elementTree, el.getHashTree(), config);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -115,7 +115,9 @@ public class ApiAutomationService {
|
||||||
if (map != null) {
|
if (map != null) {
|
||||||
if (map.isEmpty()) {
|
if (map.isEmpty()) {
|
||||||
List<String> ids = (List<String>) JSONPath.read(definition, "$..projectId");
|
List<String> ids = (List<String>) JSONPath.read(definition, "$..projectId");
|
||||||
idList.addAll(new HashSet<>(ids));
|
if (CollectionUtils.isNotEmpty(ids)) {
|
||||||
|
idList.addAll(new HashSet<>(ids));
|
||||||
|
}
|
||||||
} else {
|
} else {
|
||||||
Set<String> set = d.getEnvironmentMap().keySet();
|
Set<String> set = d.getEnvironmentMap().keySet();
|
||||||
idList = new ArrayList<>(set);
|
idList = new ArrayList<>(set);
|
||||||
|
@ -601,6 +603,7 @@ public class ApiAutomationService {
|
||||||
ParameterConfig config = new ParameterConfig();
|
ParameterConfig config = new ParameterConfig();
|
||||||
config.setConfig(envConfig);
|
config.setConfig(envConfig);
|
||||||
HashTree hashTree = request.getTestElement().generateHashTree(config);
|
HashTree hashTree = request.getTestElement().generateHashTree(config);
|
||||||
|
System.out.println(request.getTestElement().getJmx(hashTree));
|
||||||
// 调用执行方法
|
// 调用执行方法
|
||||||
APIScenarioReportResult reportResult = createScenarioReport(request.getId(), request.getScenarioId(), request.getScenarioName(), ReportTriggerMode.MANUAL.name(), request.getExecuteType(), request.getProjectId(),
|
APIScenarioReportResult reportResult = createScenarioReport(request.getId(), request.getScenarioId(), request.getScenarioName(), ReportTriggerMode.MANUAL.name(), request.getExecuteType(), request.getProjectId(),
|
||||||
SessionUtils.getUserId());
|
SessionUtils.getUserId());
|
||||||
|
|
|
@ -144,12 +144,12 @@ public class TestCaseDataListener extends EasyExcelListener<TestCaseExcelData> {
|
||||||
String[] stepRes = new String[1];
|
String[] stepRes = new String[1];
|
||||||
|
|
||||||
if (data.getStepDesc() != null) {
|
if (data.getStepDesc() != null) {
|
||||||
stepDesc = data.getStepDesc().split("\n");
|
stepDesc = data.getStepDesc().split("\r\n");
|
||||||
} else {
|
} else {
|
||||||
stepDesc[0] = "";
|
stepDesc[0] = "";
|
||||||
}
|
}
|
||||||
if (data.getStepResult() != null) {
|
if (data.getStepResult() != null) {
|
||||||
stepRes = data.getStepResult().split("\n");
|
stepRes = data.getStepResult().split("\r\n");
|
||||||
} else {
|
} else {
|
||||||
stepRes[0] = "";
|
stepRes[0] = "";
|
||||||
}
|
}
|
||||||
|
|
|
@ -520,8 +520,8 @@ public class TestCaseService {
|
||||||
|
|
||||||
for (int j = 0; j < jsonArray.size(); j++) {
|
for (int j = 0; j < jsonArray.size(); j++) {
|
||||||
int num = j + 1;
|
int num = j + 1;
|
||||||
step.append(num + "." + jsonArray.getJSONObject(j).getString("desc") + "\n");
|
step.append(num + "." + jsonArray.getJSONObject(j).getString("desc") + "\r\n");
|
||||||
result.append(num + "." + jsonArray.getJSONObject(j).getString("result") + "\n");
|
result.append(num + "." + jsonArray.getJSONObject(j).getString("result") + "\r\n");
|
||||||
|
|
||||||
}
|
}
|
||||||
data.setStepDesc(step.toString());
|
data.setStepDesc(step.toString());
|
||||||
|
|
|
@ -1 +1 @@
|
||||||
Subproject commit 6806c68338543cf1d04bb25dc24201dd1949e111
|
Subproject commit c9fd084c8f4453d7697677a79d9a0a953c045e38
|
|
@ -159,7 +159,7 @@ export default {
|
||||||
data() {
|
data() {
|
||||||
return {
|
return {
|
||||||
timeout: 60000,
|
timeout: 60000,
|
||||||
responseTimeout: null,
|
responseTimeout: 60000,
|
||||||
statusCode: [],
|
statusCode: [],
|
||||||
domains: [],
|
domains: [],
|
||||||
params: [],
|
params: [],
|
||||||
|
|
|
@ -8,6 +8,7 @@
|
||||||
@setTreeNodes="setTreeNodes"
|
@setTreeNodes="setTreeNodes"
|
||||||
@exportTestCase="exportTestCase"
|
@exportTestCase="exportTestCase"
|
||||||
@saveAsEdit="editTestCase"
|
@saveAsEdit="editTestCase"
|
||||||
|
@refreshAll="refreshAll"
|
||||||
:type="'edit'"
|
:type="'edit'"
|
||||||
ref="nodeTree"
|
ref="nodeTree"
|
||||||
/>
|
/>
|
||||||
|
|
|
@ -101,7 +101,7 @@ export default {
|
||||||
this.$emit("refreshTable");
|
this.$emit("refreshTable");
|
||||||
},
|
},
|
||||||
refreshAll() {
|
refreshAll() {
|
||||||
this.selectRows.clear();
|
// this.selectRows.clear();
|
||||||
this.$emit('refreshAll');
|
this.$emit('refreshAll');
|
||||||
},
|
},
|
||||||
handleCommand(e) {
|
handleCommand(e) {
|
||||||
|
|
|
@ -2,7 +2,7 @@
|
||||||
<el-card class="table-card" v-loading="result.loading" body-style="padding:10px;">
|
<el-card class="table-card" v-loading="result.loading" body-style="padding:10px;">
|
||||||
<div slot="header">
|
<div slot="header">
|
||||||
<span class="title">
|
<span class="title">
|
||||||
遗留缺陷统计
|
用例评审
|
||||||
</span>
|
</span>
|
||||||
<ms-table-button :is-tester-permission="true" v-if="!showMyCreator" icon="el-icon-view"
|
<ms-table-button :is-tester-permission="true" v-if="!showMyCreator" icon="el-icon-view"
|
||||||
:content="$t('test_track.review.my_create')" @click="searchMyCreator" style="float: right"/>
|
:content="$t('test_track.review.my_create')" @click="searchMyCreator" style="float: right"/>
|
||||||
|
|
Loading…
Reference in New Issue