fix(场景自动化): 修复JSONSchema Number 类型小数点后内容丢失问题;修复循环结果不展示问题。

This commit is contained in:
fit2-zhao 2021-05-11 18:10:21 +08:00 committed by fit2-zhao
parent b2a59c361d
commit 2c3392bae4
3 changed files with 26 additions and 5 deletions

View File

@ -143,7 +143,7 @@ public class JSONSchemaGenerator {
// TODO 6.3.3 in json-schema-validation // TODO 6.3.3 in json-schema-validation
} }
} else if (propertyObjType.equals("integer") || propertyObjType.equals("number")) { } else if (propertyObjType.equals("integer")) {
// 先设置空值 // 先设置空值
concept.put(propertyName, 0); concept.put(propertyName, 0);
if (object.has("default")) { if (object.has("default")) {
@ -183,6 +183,25 @@ public class JSONSchemaGenerator {
} }
// Section 6.2.5 in json-schema-validation. Resolved as OCL // Section 6.2.5 in json-schema-validation. Resolved as OCL
} else if (propertyObjType.equals("number")) {
// 先设置空值
concept.put(propertyName, 0);
if (object.has("default")) {
concept.put(propertyName, object.get("default"));
}
if (object.has("mock") && object.get("mock").getAsJsonObject() != null && StringUtils.isNotEmpty(object.get("mock").getAsJsonObject().get("mock").getAsString())) {
try {
Number value = object.get("mock").getAsJsonObject().get("mock").getAsNumber();
if (value.toString().indexOf(".") == -1) {
concept.put(propertyName, value.intValue());
} else {
concept.put(propertyName, value.floatValue());
}
} catch (Exception e) {
String value = ScriptEngineUtils.calculate(object.get("mock").getAsJsonObject().get("mock").getAsString());
concept.put(propertyName, value);
}
}
} else if (propertyObjType.equals("boolean")) { } else if (propertyObjType.equals("boolean")) {
// 先设置空值 // 先设置空值
concept.put(propertyName, false); concept.put(propertyName, false);

View File

@ -58,7 +58,7 @@
<el-tabs v-model="request.activeName" closable class="ms-tabs"> <el-tabs v-model="request.activeName" closable class="ms-tabs">
<el-tab-pane :label="item.name" :name="item.name" v-for="(item,index) in request.result.scenarios" :key="index"> <el-tab-pane :label="item.name" :name="item.name" v-for="(item,index) in request.result.scenarios" :key="index">
<div v-for="(result,i) in item.requestResults" :key="i" style="margin-bottom: 5px"> <div v-for="(result,i) in item.requestResults" :key="i" style="margin-bottom: 5px">
<api-response-component v-if="result.name===request.name" :result="result"/> <api-response-component v-if="result.id===request.id" :result="result"/>
</div> </div>
</el-tab-pane> </el-tab-pane>
</el-tabs> </el-tabs>
@ -168,7 +168,7 @@
watch: { watch: {
envMap() { envMap() {
this.getEnvironments(); this.getEnvironments();
} },
}, },
computed: { computed: {
displayColor() { displayColor() {

View File

@ -12,7 +12,7 @@
<template v-slot:message> <template v-slot:message>
<span v-if="requestResult && requestResult.scenarios && requestResult.scenarios.length > 0 " style="color: #8c939d;margin-right: 10px"> <span v-if="requestResult && requestResult.scenarios && requestResult.scenarios.length > 0 " style="color: #8c939d;margin-right: 10px">
{{$t('api_test.automation.loop_name')}}{{requestResult.scenarios.length}} 成功{{success}} 失败{{error}} <!--{{$t('api_test.automation.loop_name')}}{{requestResult.scenarios.length}} 成功{{success}} 失败{{error}}-->
</span> </span>
</template> </template>
@ -280,6 +280,7 @@
if (item.type === "HTTPSamplerProxy" || item.type === "DubboSampler" || item.type === "JDBCSampler" || item.type === "TCPSampler") { if (item.type === "HTTPSamplerProxy" || item.type === "DubboSampler" || item.type === "JDBCSampler" || item.type === "TCPSampler") {
item.result = this.requestResult; item.result = this.requestResult;
item.activeName = this.activeName; item.activeName = this.activeName;
item.active = true;
item.requestResult = undefined; item.requestResult = undefined;
} }
if (item.hashTree && item.hashTree.length > 0) { if (item.hashTree && item.hashTree.length > 0) {
@ -318,11 +319,12 @@
this.activeName = this.requestResult && this.requestResult.scenarios && this.requestResult.scenarios !== null && this.requestResult.scenarios.length > 0 ? this.requestResult.scenarios[0].name : ""; this.activeName = this.requestResult && this.requestResult.scenarios && this.requestResult.scenarios !== null && this.requestResult.scenarios.length > 0 ? this.requestResult.scenarios[0].name : "";
// //
this.setResult(this.controller.hashTree); this.setResult(this.controller.hashTree);
this.$emit("refReload"); this.$emit("refReload",this.node);
} catch (e) { } catch (e) {
throw e; throw e;
} }
this.loading = false; this.loading = false;
this.node.expanded = true;
this.reload(); this.reload();
} else { } else {
setTimeout(this.getReport, 2000); setTimeout(this.getReport, 2000);