From e81fe2f9d8359cc43c9bb76821a728c24a2711be Mon Sep 17 00:00:00 2001
From: ks3356143 <314298729@qq.com>
Date: Tue, 2 Apr 2024 18:44:26 +0800
Subject: [PATCH] =?UTF-8?q?=E5=88=9D=E6=AC=A1=E7=89=88=E6=9C=AC?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
---
cdTMP/src/api/generate/hjlGenerate.js | 25 +++++
cdTMP/src/api/generate/hsmGenerate.js | 91 +++++++++++++++++++
cdTMP/src/api/generate/seitaiGenerate.js | 22 +++++
cdTMP/src/api/treeOperation/copy.js | 4 +-
cdTMP/src/layout/project-layout.vue | 49 +++++++---
.../src/views/testmanage/projmanage/index.vue | 39 ++++++++
6 files changed, 217 insertions(+), 13 deletions(-)
create mode 100644 cdTMP/src/api/generate/hjlGenerate.js
create mode 100644 cdTMP/src/api/generate/hsmGenerate.js
diff --git a/cdTMP/src/api/generate/hjlGenerate.js b/cdTMP/src/api/generate/hjlGenerate.js
new file mode 100644
index 0000000..2555444
--- /dev/null
+++ b/cdTMP/src/api/generate/hjlGenerate.js
@@ -0,0 +1,25 @@
+import { request } from "@/api/request"
+export default {
+ /**
+ * 生成回归测试说明的被测软件基本信息
+ * @returns
+ */
+ createBasicInfo(params = {}) {
+ return request({
+ url: `/generateHJL/create/basicInformation`,
+ method: "get",
+ params
+ })
+ },
+ /**
+ * 生成回归测试说明的被测软件基本信息
+ * @returns
+ */
+ createCaseinfo(params = {}) {
+ return request({
+ url: `/generateHJL/create/caseinfo`,
+ method: "get",
+ params
+ })
+ },
+}
diff --git a/cdTMP/src/api/generate/hsmGenerate.js b/cdTMP/src/api/generate/hsmGenerate.js
new file mode 100644
index 0000000..8018747
--- /dev/null
+++ b/cdTMP/src/api/generate/hsmGenerate.js
@@ -0,0 +1,91 @@
+import { request } from "@/api/request"
+export default {
+ /**
+ * 生成回归测试说明的被测软件基本信息
+ * @returns
+ */
+ createBasicInfo(params = {}) {
+ return request({
+ url: `/generateHSM/create/basicInformation`,
+ method: "get",
+ params
+ })
+ },
+ /**
+ * 生成非第一轮的多轮文档概述
+ * @returns
+ */
+ createDocSummary(params = {}) {
+ return request({
+ url: `/generateHSM/create/docsummary`,
+ method: "get",
+ params
+ })
+ },
+ /**
+ * 生成非第一轮的多轮技术依据文件
+ * @returns
+ */
+ createJstech(params = {}) {
+ return request({
+ url: `/generateHSM/create/jstech`,
+ method: "get",
+ params
+ })
+ },
+ /**
+ * 生成非第一轮的软件更改部分
+ * @returns
+ */
+ createChangePart(params = {}) {
+ return request({
+ url: `/generateHSM/create/changePart`,
+ method: "get",
+ params
+ })
+ },
+ /**
+ * 生成非第一轮软件测试项
+ * @returns
+ */
+ createHdemand(params = {}) {
+ return request({
+ url: `/generateHSM/create/hdemand`,
+ method: "get",
+ params
+ })
+ },
+ /**
+ * 生成非回归测试用例概述那张表
+ * @returns
+ */
+ createCaseListDesc(params = {}) {
+ return request({
+ url: `/generateHSM/create/caseListDesc`,
+ method: "get",
+ params
+ })
+ },
+ /**
+ * 生成非第一轮回归测试用例
+ * @returns
+ */
+ createCaseList(params = {}) {
+ return request({
+ url: `/generateHSM/create/caseList`,
+ method: "get",
+ params
+ })
+ },
+ /**
+ * 生成非第一轮的追踪
+ * @returns
+ */
+ createTrack(params = {}) {
+ return request({
+ url: `/generateHSM/create/track`,
+ method: "get",
+ params
+ })
+ }
+}
diff --git a/cdTMP/src/api/generate/seitaiGenerate.js b/cdTMP/src/api/generate/seitaiGenerate.js
index 9c55006..a5856c3 100644
--- a/cdTMP/src/api/generate/seitaiGenerate.js
+++ b/cdTMP/src/api/generate/seitaiGenerate.js
@@ -44,4 +44,26 @@ export default {
params
})
},
+ /**
+ * TODO:如果缺少部分文件给与提示
+ * @returns 根据output_dir以及output_dir/hsm中文档生成回归测试说明(特殊多个文件)
+ */
+ createHsmDocument(params = {}) {
+ return request({
+ url: `/create/hsmDocument`,
+ method: "get",
+ params
+ })
+ },
+ /**
+ * TODO:如果缺少部分文件给与提示
+ * @returns 根据output_dir以及output_dir/hjl中文档生成回归测试记录(特殊多个文件)
+ */
+ createHjlDocument(params = {}) {
+ return request({
+ url: `/create/hjlDocument`,
+ method: "get",
+ params
+ })
+ }
}
diff --git a/cdTMP/src/api/treeOperation/copy.js b/cdTMP/src/api/treeOperation/copy.js
index c73be3a..29a3836 100644
--- a/cdTMP/src/api/treeOperation/copy.js
+++ b/cdTMP/src/api/treeOperation/copy.js
@@ -7,8 +7,8 @@ export default {
copyCheckedNode(params = {}) {
return request({
url: `/treeOperation/copy`,
- method: "get",
- params
+ method: "post",
+ data: params
})
}
}
diff --git a/cdTMP/src/layout/project-layout.vue b/cdTMP/src/layout/project-layout.vue
index 8535457..1d37d2e 100644
--- a/cdTMP/src/layout/project-layout.vue
+++ b/cdTMP/src/layout/project-layout.vue
@@ -15,7 +15,9 @@
{{ expandedKeys?.length ? "全部收缩" : "全部展开" }}
- 复制选中节点创建第二轮
+
+ 点击复制创建轮次
+
{
+ // 1.先判断是否选中了节点
+ if (checkedKeys.value.length < 1) {
+ Message.error("您未选择节点,请选择后再试...")
+ return
+ }
// 打印下checked节点key
- console.log(checkedKeys.value)
visible.value = true
isComplete.value = false
- const st = await copyApi.copyCheckedNode().catch((err) => {
- isComplete.value = true
- visible.value = false
- })
+ const st = await copyApi
+ .copyCheckedNode({ checkedNodes: checkedKeys.value, project_id: projectId.value })
+ .catch((err) => {
+ isComplete.value = true
+ visible.value = false
+ })
isComplete.value = true
Message.success(st.message)
+ // 处理完后需要更新树结构
+ treeDataStore.resetTreeData(projectId.value)
+ // 清除右侧路由的组件显示,不然会因为数据而出错
+ router.replace({ name: "project" })
}
/// 进度条变量
const visible = ref(false)
@@ -333,28 +345,42 @@ const pointNode = (value, data) => {
const loadMore = (nodeData) => {
if (nodeData.level == "0") {
return new Promise(async (resolve) => {
- const res = await projectApi.getDutInfo(projectInfo.value.id, nodeData.key, nodeData.level)
+ const res = await projectApi.getDutInfo(projectInfo.value.id, nodeData.key, nodeData.level).catch((err) => {
+ resolve() // 捕获错误,让动态加载不再一直转圈
+ })
nodeData.children = res.data
resolve()
- }).catch()
+ })
}
if (nodeData.level == "1") {
return new Promise(async (resolve) => {
- const res = await projectApi.getDemandInfo(projectInfo.value.id, nodeData.key, nodeData.level)
+ const res = await projectApi
+ .getDemandInfo(projectInfo.value.id, nodeData.key, nodeData.level)
+ .catch((err) => {
+ resolve()
+ })
nodeData.children = res.data
resolve()
})
}
if (nodeData.level == "2") {
return new Promise(async (resolve) => {
- const res = await projectApi.getTestInfo(projectInfo.value.id, nodeData.key, nodeData.level)
+ const res = await projectApi
+ .getTestInfo(projectInfo.value.id, nodeData.key, nodeData.level)
+ .catch((err) => {
+ resolve()
+ })
nodeData.children = res.data
resolve()
})
}
if (nodeData.level == "3") {
return new Promise(async (resolve) => {
- const res = await projectApi.getCaseInfo(projectInfo.value.id, nodeData.key, nodeData.level)
+ const res = await projectApi
+ .getCaseInfo(projectInfo.value.id, nodeData.key, nodeData.level)
+ .catch((err) => {
+ resolve()
+ })
nodeData.children = res.data
resolve()
})
@@ -395,6 +421,7 @@ const handleRoundDelClick = async (value) => {
await roundApi.delete(projectId.value, value)
Message.success("删除成功!")
treeDataStore.resetTreeData(projectId.value)
+ router.replace({ name: "project" })
} catch {}
}
/// Ma-form-Modal的提交按钮
diff --git a/cdTMP/src/views/testmanage/projmanage/index.vue b/cdTMP/src/views/testmanage/projmanage/index.vue
index e119e8d..40aa8b8 100644
--- a/cdTMP/src/views/testmanage/projmanage/index.vue
+++ b/cdTMP/src/views/testmanage/projmanage/index.vue
@@ -16,6 +16,8 @@
说明二段文档
记录二级文档
报告二级文档
+ 回归说明二级文档
+ 回归记录二级文档
[测试]生成最后大纲
@@ -28,6 +30,12 @@
[测试]生成测评报告
+
+ [测试]回归测试说明
+
+
+ [测试]回归测试记录
+
进入工作区
@@ -54,6 +62,8 @@ import seitaiGenerateApi from "@/api/generate/seitaiGenerate"
import smGenerateApi from "@/api/generate/smGenerate"
import jlGenerateApi from "@/api/generate/jlGenerate"
import bgGenerateApi from "@/api/generate/bgGenerate"
+import hsmGenerateApi from "@/api/generate/hsmGenerate"
+import hjlGenerateApi from "@/api/generate/hjlGenerate"
import { Message } from "@arco-design/web-vue"
import Progress from "./cpns/progress.vue"
import hoosk from "@/views/testmanage/projmanage/hooks.js"
@@ -98,6 +108,16 @@ const createSeitaiBaogao = async (record) => {
ptext.value = "测评报告"
hoosk.create_entire_doc(visible, isComplete, seitaiGenerateApi.createBgDocument, record.id)
}
+// ~~~~~~~~回归测试说明~~~~~~~~
+const createSeitaiHsm = async (record) => {
+ ptext.value = "回归测试说明"
+ hoosk.create_entire_doc(visible, isComplete, seitaiGenerateApi.createHsmDocument, record.id)
+}
+// ~~~~~~~~回归测试记录~~~~~~~~
+const createSeitaiHjl = async (record) => {
+ ptext.value = "回归测试记录"
+ hoosk.create_entire_doc(visible, isComplete, seitaiGenerateApi.createHjlDocument, record.id)
+}
// 记录生成二级文档
const createJLItem = async (record) => {
@@ -194,6 +214,25 @@ const createBgItem = async (record) => {
const st13 = await bgGenerateApi.createBgProblemsSummary({ id: record.id })
Message.success(st13.message)
}
+// 回归测试说明二级文档
+const createHsmItem = async (record) => {
+ await hsmGenerateApi.createBasicInfo({ id: record.id })
+ await hsmGenerateApi.createDocSummary({ id: record.id })
+ await hsmGenerateApi.createJstech({ id: record.id })
+ await hsmGenerateApi.createChangePart({ id: record.id })
+ await hsmGenerateApi.createHdemand({ id: record.id })
+ await hsmGenerateApi.createCaseListDesc({ id: record.id })
+ await hsmGenerateApi.createCaseList({ id: record.id })
+ const st = await hsmGenerateApi.createTrack({ id: record.id })
+ Message.success(st.message)
+}
+// 回归测试记录二级文档
+const createHjlItem = async (record) => {
+ await hjlGenerateApi.createBasicInfo({ id: record.id })
+ const st = await hjlGenerateApi.createCaseinfo({ id: record.id })
+ Message.success(st.message)
+}
+
// ~~~~~~~~~~~~~~~~~~~~~~~~~~~~
// CRUD-OPTIONS