Merge branch 'master' of https://github.com/metersphere/server
This commit is contained in:
commit
dc64026250
|
@ -12,7 +12,7 @@
|
|||
</template>
|
||||
|
||||
<one-click-operation ref="OneClickOperation" :select-ids="selectIds" :select-names="selectNames"
|
||||
:select-project-names="selectProjectNames"></one-click-operation>
|
||||
:select-project-names="selectProjectNames" @refresh="init()"></one-click-operation>
|
||||
|
||||
<el-table border :data="tableData" class="adjust-table table-content" @sort-change="sort"
|
||||
@row-click="handleView"
|
||||
|
|
|
@ -22,11 +22,12 @@
|
|||
|
||||
<script>
|
||||
import MsDialogFooter from '../../common/components/MsDialogFooter'
|
||||
import {Test} from "./model/ScenarioModel";
|
||||
import {Test} from "./model/ScenarioModel"
|
||||
import MsApiScenarioConfig from "./components/ApiScenarioConfig";
|
||||
import MsApiReportStatus from "../report/ApiReportStatus";
|
||||
import MsApiReportDialog from "./ApiReportDialog";
|
||||
|
||||
|
||||
export default {
|
||||
name: "OneClickOperation",
|
||||
components: {
|
||||
|
@ -38,6 +39,7 @@ export default {
|
|||
test: null,
|
||||
tests: [],
|
||||
ruleForm: {},
|
||||
change: false,
|
||||
rule: {
|
||||
testName: [
|
||||
{required: true, message: this.$t('api_test.input_name'), trigger: 'blur'},
|
||||
|
@ -45,6 +47,15 @@ export default {
|
|||
}
|
||||
};
|
||||
},
|
||||
watch: {
|
||||
|
||||
test: {
|
||||
handler: function () {
|
||||
this.change = true;
|
||||
},
|
||||
deep: true
|
||||
}
|
||||
},
|
||||
props: {
|
||||
selectIds: {
|
||||
type: Set
|
||||
|
@ -62,12 +73,16 @@ export default {
|
|||
},
|
||||
checkedSaveAndRunTest() {
|
||||
if (this.selectNames.has(this.ruleForm.testName)) {
|
||||
this.selectIds.clear()
|
||||
this.$warning(this.$t('load_test.already_exists'));
|
||||
this.oneClickOperationVisible = false;
|
||||
this.$emit('refresh')
|
||||
} else {
|
||||
if (this.selectProjectNames.size > 1) {
|
||||
this.selectIds.clear()
|
||||
this.$warning(this.$t('load_test.same_project_test'));
|
||||
this.oneClickOperationVisible = false;
|
||||
this.$emit('refresh')
|
||||
} else {
|
||||
for (let x of this.selectIds) {
|
||||
this.getTest(x)
|
||||
|
@ -75,12 +90,33 @@ export default {
|
|||
}
|
||||
}
|
||||
},
|
||||
_getEnvironmentAndRunTest: function (item) {
|
||||
let count = 0;
|
||||
this.result = this.$get('/api/environment/list/' + item.projectId, response => {
|
||||
let environments = response.data;
|
||||
let environmentMap = new Map();
|
||||
environments.forEach(environment => {
|
||||
environmentMap.set(environment.id, environment);
|
||||
});
|
||||
this.test.scenarioDefinition.forEach(scenario => {
|
||||
if (scenario.environmentId) {
|
||||
scenario.environment = environmentMap.get(scenario.environmentId);
|
||||
}
|
||||
}
|
||||
)
|
||||
this.tests = [];
|
||||
this.saveRunTest();
|
||||
this.oneClickOperationVisible = false;
|
||||
this.$emit('refresh')
|
||||
});
|
||||
},
|
||||
getTest(id) {
|
||||
this.result = this.$get("/api/get/" + id, response => {
|
||||
if (response.data) {
|
||||
let item = response.data;
|
||||
this.tests.push(item);
|
||||
let test = new Test({
|
||||
id: item.id,
|
||||
projectId: item.projectId,
|
||||
name: this.ruleForm.testName,
|
||||
scenarioDefinition: JSON.parse(item.scenarioDefinition),
|
||||
|
@ -89,28 +125,24 @@ export default {
|
|||
this.test = this.test || test;
|
||||
if (this.tests.length > 1) {
|
||||
this.test.scenarioDefinition = this.test.scenarioDefinition.concat(test.scenarioDefinition);
|
||||
|
||||
}
|
||||
if (this.tests.length === this.selectIds.size) {
|
||||
this.tests = [];
|
||||
this.saveRunTest();
|
||||
this.oneClickOperationVisible = false;
|
||||
|
||||
|
||||
this._getEnvironmentAndRunTest(item);
|
||||
}
|
||||
}
|
||||
});
|
||||
},
|
||||
saveRunTest() {
|
||||
this.change = false;
|
||||
this.save(() => {
|
||||
this.$success(this.$t('commons.save_success'));
|
||||
this.runTest();
|
||||
})
|
||||
},
|
||||
save(callback) {
|
||||
this.change = false;
|
||||
let url = "/api/create";
|
||||
this.result = this.$request(this.getOptions(url), () => {
|
||||
this.create = false;
|
||||
if (callback) callback();
|
||||
});
|
||||
},
|
||||
|
@ -120,6 +152,7 @@ export default {
|
|||
this.$router.push({
|
||||
path: '/api/report/view/' + response.data
|
||||
})
|
||||
this.test = ""
|
||||
});
|
||||
},
|
||||
getOptions(url) {
|
||||
|
|
Loading…
Reference in New Issue