Commit 67aa4e44 authored by fit2-zhao's avatar fit2-zhao Committed by fit2-zhao
Browse files

fix (接口自动化): 场景变量优化处理

--bug=1007127 --user=赵勇 【github#6706】添加场景变量时,场景变量名称必填项未校验 https://www.tapd.cn/55049933/s/1056658
parent e1b04677
dev feat_api_custom_field feat_custom_field feat_environment_group feat_environment_group_copy feat_timing_clean feat_vc feat_vc_testtrack fix_lyh_v1.17 master pr@dev@feat@四种协议test、case页面优化 pr@dev@feat_add_issueremark pr@dev@feat_sync pr@dev@feat_工作空间多项目环境组合 pr@dev@feat_性能测试版本对比页面修改_自动执行 pr@dev@feat_接口测试_文档结构断言 pr@dev@fix pr@dev@fix_scenario_load_test pr@dev@fix_sql版本冲突 pr@dev@fix_从公共用例库移除_再编辑用例发现无法加到公共用例库了 pr@dev@fix_代码扫描图标不显示 pr@dev@fix_修复环境设置中编辑下模块和路径匹配时模块和路径允许为空的缺陷 pr@dev@fix_修改db版本号 pr@dev@fix_功能用例版本切换 pr@dev@fix_场景导入按钮失效 pr@dev@fix_应用管理没有自动保存 pr@dev@fix_接口case优化 pr@dev@fix_接口测试_复制接口 pr@dev@fix_接口测试_安全漏洞 pr@dev@fix_接口测试_引用问题 pr@dev@fix_接口用例在定义后面 pr@dev@fix_接口详情-变更历史无变更详情日志 pr@dev@fix_操作日志_增删改查除系统设置中的操作均无法跳转 pr@dev@fix_新增测试阶段字段在筛选列表中未更新 pr@dev@fix_测试跟踪_功能用例_公共用例库_选择修改用例责任人后,新的责任人仍不可编辑和删除该用例 pr@dev@fix_用例评审_测试计划_关注人支持多选 pr@dev@fix_被引用的数据删除显示重复 pr@dev@refactor_menu_pos pr@dev@refactor_获取场景报告接口效率优化 pr@dev@内置函数构造器优化增加mock数据说明示例及场景变量 pr@master@fix_代码扫描图标不显示 pr@v1.14@fix_接口测试_复制接口 pr@v1.14@fix_用例评审_测试计划_关注人支持多选 pr@v1.15@fix_sync pr@v1.16@fix_scenario_load pr@v1.16@fix_接口测试_安全漏洞 pr@v1.16@fix_接口测试_引用问题 pr@v1.16@fix_接口详情-变更历史无变更详情日志 pr@v1.16@fix_测试跟踪_功能用例_公共用例库_选择修改用例责任人后,新的责任人仍不可编辑和删除该用例 pr@v1.16@refactor_获取场景报告接口效率优化 pr@v1.17@feat_我的工作台加版本筛选 pr@v1.17@fix pr@v1.17@fix_功能用例版本切换 pr@v1.17@fix_新增测试阶段字段在筛选列表中未更新 pr@v1.18@fix_修复环境设置中编辑下模块和路径匹配时模块和路径允许为空的缺陷 refactor_environment_group refactor_project_setting refactor_ws_notice_template repr@dev_master_v1.16@ repr@dev_v1.14@@fix_【接口定义】-添加mock函数时值生成优化+页面翻译“return” repr@dev_v1.14@f7409212@fix_接口测试_CSV优化 repr@dev_v1.14_v1.16@fc598de402cffa8744ee656948f715c31e7d58a2@refactor_场景资源池执行添加日志打印 repr@dev_v1.16@1abe60fc@fix_接口测试_循环控制器 repr@dev_v1.16@22a21ac3@fix_接口测试_自动化步骤 repr@dev_v1.16@5d8ba4eb@fix_接口详情-变更历史无变更详情日志 repr@dev_v1.16@6de996ff@fix_接口定义_开启过多时环境与接口名称重叠 repr@dev_v1.16@a009bb38@fix_接口测试_场景执行 repr@dev_v1.16@e15672af3dc95618192ee81aedbefffdfd377b8a@fix_代码扫描图标不显示 repr@dev_v1.16@e43c11a7@fix_应用管理没有保存 repr@dev_v1.16@e43c11a7@fix_应用管理没有自动保存 repr@dev_v1.16_v1.17@430a1864ffe9800240f4fbd9b0c92991305c0baa@fix_脑图创建的用例导出状态和责任人为空 repr@dev_v1.16_v1.17@91c1b2a7@fix_接口测试_插件步骤 repr@dev_v1.17@0d05cd92d9a1b005aac8c07594625f3cda8319080d05cd92d9a1b005aac8c07594625f3cda831908@feat_测试跟踪用例版本相关 repr@dev_v1.17@0d05cd92d9a1b005aac8c07594625f3cda831908@fix_功能用例版本管理回收站 repr@dev_v1.18@abc86b09@fix_lyh_dev repr@devev_v1.16@31e9453dccbf5b363f72b9a2c4d6b1f40d9e92f5@fix_tapd不显示图片 repr@v1.16@fix_JSONPATH断言等有200个字符限制 repr@v1.16_dev@09a4129d@fix_接口测试_调试状态 repr@v1.16_dev@11eb4bc6@feat_error_report repr@v1.16_dev@6a89622f@fix_接口测试_JSON校验处理 repr@v1.16_dev@d5cf72dc@fix_接口测试_场景报告 repr@v1.16_dev@e2e90011@fix_testplan_用例执行 repr@v1.16_dev@ef78a7eb@fix_xpack_code repr@v1.16_v1.17_dev@bfb01376@fix_bugs_import_api repr@v1.16_v1.17_dev@dd1880fa@fix_bugs_0118 seleniumdocker获取报告图表 ui v1.14 v1.15 v1.16 v1.17 v1.18 工作空间多项目环境组合 v1.18.2-rc2 v1.18.2-rc1 v1.18.2-rc0 v1.18.2-arm64 v1.18.1 v1.18.0 v1.17.3 v1.17.2 v1.17.1 v1.17.0 v1.16.6 v1.16.5 v1.16.4 v1.16.3 v1.16.2 v1.16.1 v1.16.0 v1.15.4 v1.15.3 v1.15.2 v1.15.1 v1.15.0 v1.14.7 v1.14.6 v1.14.5 v1.14.4 v1.14.3 v1.14.2 v1.14.1 v1.14.0 v1.14.0-rc3 v1.14.0-rc2 v1.14.0-rc1
No related merge requests found
Showing with 102 additions and 71 deletions
+102 -71
......@@ -2,7 +2,7 @@
<div>
<el-form :model="editData" label-position="right" label-width="80px" size="small" ref="form" :rules="rules">
<el-form-item :label="$t('api_test.variable_name')" prop="name">
<el-input v-model="editData.name" :placeholder="$t('api_test.variable_name')" ref="nameInput"></el-input>
<el-input v-model="editData.name" :placeholder="$t('api_test.variable_name')" ref="nameInput"/>
</el-form-item>
<el-form-item :label="$t('commons.description')" prop="description">
......@@ -10,12 +10,13 @@
v-model="editData.description"
type="textarea"
:autosize="{ minRows: 2, maxRows: 10}"
:rows="2" size="small"/>
:rows="2" size="small" :disabled="disabled"/>
</el-form-item>
<el-form-item :label="$t('api_test.value')" prop="value">
<el-col class="item">
<el-autocomplete
:disabled="disabled"
size="small"
:placeholder="$t('api_test.value')"
style="width: 100%;"
......@@ -51,6 +52,11 @@
},
}
},
computed:{
disabled() {
return !(this.editData.name && this.editData.name !=="");
}
},
methods: {
advanced() {
this.$refs.variableAdvance.open();
......@@ -66,8 +72,8 @@
};
},
funcSearch(queryString, cb) {
let funcs = MOCKJS_FUNC.concat(JMETER_FUNC);
let results = queryString ? funcs.filter(this.funcFilter(queryString)) : funcs;
let func = MOCKJS_FUNC.concat(JMETER_FUNC);
let results = queryString ? func.filter(this.funcFilter(queryString)) : func;
// 调用 callback 返回建议列表的数据
cb(results);
},
......
......@@ -9,41 +9,46 @@
v-model="editData.description"
type="textarea"
:autosize="{ minRows: 2, maxRows: 10}"
:rows="2" size="small"/>
:rows="2" size="small" :disabled="disabled"/>
</el-form-item>
<el-form-item :label="$t('variables.start')" prop="startNumber">
<el-input-number size="small" v-model="editData.startNumber" placeholder="0" style="width: 100%" :max="1000*10000000" :min="0"/>
<el-input-number :disabled="disabled" size="small" v-model="editData.startNumber" placeholder="0" style="width: 100%" :max="1000*10000000" :min="0"/>
</el-form-item>
<el-form-item :label="$t('variables.end')" prop="endNumber">
<el-input-number size="small" v-model="editData.endNumber" placeholder="10" style="width: 100%" :max="1000*10000000" :min="0"/>
<el-input-number :disabled="disabled" size="small" v-model="editData.endNumber" placeholder="10" style="width: 100%" :max="1000*10000000" :min="0"/>
</el-form-item>
<el-form-item :label="$t('variables.increment')" prop="increment">
<el-input-number size="small" v-model="editData.increment" placeholder="1" style="width: 100%" :max="1000*10000000" :min="0"/>
<el-input-number :disabled="disabled" size="small" v-model="editData.increment" placeholder="1" style="width: 100%" :max="1000*10000000" :min="0"/>
</el-form-item>
<el-form-item :label="$t('variables.format')" prop="value">
<el-input v-model="editData.value" :placeholder="$t('variables.counter_info')"></el-input>
<el-input :disabled="disabled" v-model="editData.value" :placeholder="$t('variables.counter_info')"></el-input>
</el-form-item>
</el-form>
</template>
<script>
export default {
name: "MsEditCounter",
components: {},
props: {
editData: {},
},
data() {
return {
rules: {
name: [
{required: true, message: this.$t('test_track.case.input_name'), trigger: 'blur'},
],
},
}
},
}
export default {
name: "MsEditCounter",
components: {},
props: {
editData: {},
},
computed: {
disabled() {
return !(this.editData.name && this.editData.name !== "");
}
},
data() {
return {
rules: {
name: [
{required: true, message: this.$t('test_track.case.input_name'), trigger: 'blur'},
],
},
}
},
}
</script>
<style scoped>
......
......@@ -8,6 +8,7 @@
<el-input class="ms-http-textarea"
v-model="editData.description"
type="textarea"
:disabled="disabled"
:placeholder="$t('commons.input_content')"
:autosize="{ minRows: 2, maxRows: 10}"
:rows="2" size="small"/>
......@@ -31,6 +32,7 @@
size="small"
style="width: 100%"
v-model="editData.encoding"
:disabled="disabled"
:fetch-suggestions="querySearch"
:placeholder="$t('commons.input_content')"
></el-autocomplete>
......@@ -41,7 +43,7 @@
<span>{{$t('variables.delimiter')}}</span>
</el-col>
<el-col :span="19">
<el-input v-model="editData.delimiter" size="small"/>
<el-input v-model="editData.delimiter" size="small" :disabled="disabled"/>
</el-col>
</el-row>
<el-row style="margin-top: 10px">
......@@ -49,7 +51,7 @@
<span>{{$t('variables.quoted_data')}}</span>
</el-col>
<el-col :span="19">
<el-select v-model="editData.quotedData" size="small">
<el-select v-model="editData.quotedData" size="small" :disabled="disabled">
<el-option label="True" :value="true"/>
<el-option label="False" :value="false"/>
</el-select>
......@@ -94,7 +96,7 @@
editFlag: false,
previewData: [],
columns: [],
allDatas: [],
allData: [],
rules: {
name: [
{required: true, message: this.$t('test_track.case.input_name'), trigger: 'blur'},
......@@ -102,26 +104,31 @@
},
}
},
computed: {
disabled() {
return !(this.editData.name && this.editData.name !== "");
}
},
methods: {
complete(results) {
if (results.errors && results.errors.length > 0) {
this.$error(results.errors);
return;
}
if (this.allDatas) {
this.columns = this.allDatas[0];
this.allDatas.splice(0, 1);
this.previewData = this.allDatas;
if (this.allData) {
this.columns = this.allData[0];
this.allData.splice(0, 1);
this.previewData = this.allData;
}
this.loading = false;
},
step(results, parser) {
this.allDatas.push(results.data);
this.allData.push(results.data);
},
handleClick() {
let config = {complete: this.complete, step: this.step, delimiter: this.editData.delimiter ? this.editData.delimiter : ","};
this.allDatas = [];
this.allData = [];
// 本地文件
if (this.editData.files && this.editData.files.length > 0 && this.editData.files[0].file) {
this.loading = true;
......
......@@ -9,32 +9,39 @@
v-model="editData.description"
type="textarea"
:autosize="{ minRows: 2, maxRows: 10}"
:rows="2" size="small"/>
:rows="2" size="small"
:disabled="disabled"
/>
</el-form-item>
<el-form-item :label="$t('api_test.value')" prop="value">
<el-input v-model="editData.value" placeholder="列表数据用,分隔"></el-input>
<el-input v-model="editData.value" :disabled="disabled" placeholder="列表数据用,分隔"/>
</el-form-item>
</el-form>
</template>
<script>
export default {
name: "MsEditListValue",
components: {},
props: {
editData: {},
},
data() {
return {
rules: {
name: [
{required: true, message: this.$t('test_track.case.input_name'), trigger: 'blur'},
],
},
}
},
}
export default {
name: "MsEditListValue",
components: {},
props: {
editData: {},
},
computed: {
disabled() {
return !(this.editData.name && this.editData.name !== "");
}
},
data() {
return {
rules: {
name: [
{required: true, message: this.$t('test_track.case.input_name'), trigger: 'blur'},
],
},
}
},
}
</script>
<style scoped>
......
......@@ -8,40 +8,46 @@
<el-input class="ms-http-textarea"
v-model="editData.description"
type="textarea"
:disabled="disabled"
:autosize="{ minRows: 2, maxRows: 10}"
:rows="2" size="small"/>
</el-form-item>
<el-form-item :label="$t('schema.minimum')" prop="minNumber">
<el-input size="small" v-model="editData.minNumber" placeholder="0"/>
<el-input :disabled="disabled" size="small" v-model="editData.minNumber" placeholder="0"/>
</el-form-item>
<el-form-item :label="$t('schema.maximum')" prop="maxNumber">
<el-input size="small" v-model="editData.maxNumber" placeholder="10"/>
<el-input :disabled="disabled" size="small" v-model="editData.maxNumber" placeholder="10"/>
</el-form-item>
<el-form-item :label="$t('variables.format')" prop="value">
<el-input v-model="editData.value" :placeholder="$t('variables.counter_info')"></el-input>
<el-input :disabled="disabled" v-model="editData.value" :placeholder="$t('variables.counter_info')"></el-input>
</el-form-item>
</el-form>
</template>
<script>
export default {
name: "MsEditRandom",
components: {},
props: {
editData: {},
},
data() {
return {
rules: {
name: [
{required: true, message: this.$t('test_track.case.input_name'), trigger: 'blur'},
],
},
}
},
}
export default {
name: "MsEditRandom",
components: {},
props: {
editData: {},
},
computed: {
disabled() {
return !(this.editData.name && this.editData.name !== "");
}
},
data() {
return {
rules: {
name: [
{required: true, message: this.$t('test_track.case.input_name'), trigger: 'blur'},
],
},
}
},
}
</script>
<style scoped>
......
Supports Markdown
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment