Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
MeterSphere
metersphere
提交
5d81523f
M
metersphere
项目概览
MeterSphere
/
metersphere
上一次同步 大约 3 年
通知
25
Star
1
Fork
1
代码
文件
提交
分支
Tags
贡献者
分支图
Diff
Issue
0
列表
看板
标记
里程碑
合并请求
0
DevOps
流水线
流水线任务
计划
Wiki
0
Wiki
分析
仓库
DevOps
项目成员
Pages
M
metersphere
项目概览
项目概览
详情
发布
仓库
仓库
文件
提交
分支
标签
贡献者
分支图
比较
Issue
0
Issue
0
列表
看板
标记
里程碑
合并请求
0
合并请求
0
Pages
DevOps
DevOps
流水线
流水线任务
计划
分析
分析
仓库分析
DevOps
Wiki
0
Wiki
成员
成员
收起侧边栏
关闭侧边栏
动态
分支图
创建新Issue
流水线任务
提交
Issue看板
前往新版Gitcode,体验更适合开发者的 AI 搜索 >>
提交
5d81523f
编写于
10月 13, 2020
作者:
C
chenjianxing
浏览文件
操作
浏览文件
下载
差异文件
Merge branch 'v1.3'
上级
1abf0de6
782f32ce
变更
3
隐藏空白更改
内联
并排
Showing
3 changed file
with
29 addition
and
38 deletion
+29
-38
backend/src/main/java/io/metersphere/api/controller/APITestController.java
...java/io/metersphere/api/controller/APITestController.java
+5
-0
backend/src/main/java/io/metersphere/api/service/APITestService.java
.../main/java/io/metersphere/api/service/APITestService.java
+16
-2
frontend/src/business/components/api/test/OneClickOperation.vue
...nd/src/business/components/api/test/OneClickOperation.vue
+8
-36
未找到文件。
backend/src/main/java/io/metersphere/api/controller/APITestController.java
浏览文件 @
5d81523f
...
...
@@ -75,6 +75,11 @@ public class APITestController {
apiTestService
.
create
(
request
,
file
,
bodyFiles
);
}
@PostMapping
(
value
=
"/create/merge"
,
consumes
=
{
"multipart/form-data"
})
public
void
mergeCreate
(
@RequestPart
(
"request"
)
SaveAPITestRequest
request
,
@RequestPart
(
value
=
"file"
)
MultipartFile
file
,
@RequestPart
(
value
=
"selectIds"
)
List
<
String
>
selectIds
)
{
apiTestService
.
mergeCreate
(
request
,
file
,
selectIds
);
}
@PostMapping
(
value
=
"/update"
,
consumes
=
{
"multipart/form-data"
})
public
void
update
(
@RequestPart
(
"request"
)
SaveAPITestRequest
request
,
@RequestPart
(
value
=
"file"
)
MultipartFile
file
,
@RequestPart
(
value
=
"files"
)
List
<
MultipartFile
>
bodyFiles
)
{
checkownerService
.
checkApiTestOwner
(
request
.
getId
());
...
...
backend/src/main/java/io/metersphere/api/service/APITestService.java
浏览文件 @
5d81523f
...
...
@@ -83,15 +83,19 @@ public class APITestService {
}
public
void
create
(
SaveAPITestRequest
request
,
MultipartFile
file
,
List
<
MultipartFile
>
bodyFiles
)
{
List
<
String
>
bodyUploadIds
=
new
ArrayList
<>(
request
.
getBodyUploadIds
());
ApiTest
test
=
createTest
(
request
,
file
);
createBodyFiles
(
test
,
bodyUploadIds
,
bodyFiles
);
}
private
ApiTest
createTest
(
SaveAPITestRequest
request
,
MultipartFile
file
)
{
if
(
file
==
null
)
{
throw
new
IllegalArgumentException
(
Translator
.
get
(
"file_cannot_be_null"
));
}
checkQuota
();
List
<
String
>
bodyUploadIds
=
new
ArrayList
<>(
request
.
getBodyUploadIds
());
request
.
setBodyUploadIds
(
null
);
ApiTest
test
=
createTest
(
request
);
createBodyFiles
(
test
,
bodyUploadIds
,
bodyFiles
);
saveFile
(
test
.
getId
(),
file
);
return
test
;
}
public
void
update
(
SaveAPITestRequest
request
,
MultipartFile
file
,
List
<
MultipartFile
>
bodyFiles
)
{
...
...
@@ -108,6 +112,9 @@ public class APITestService {
}
private
void
createBodyFiles
(
ApiTest
test
,
List
<
String
>
bodyUploadIds
,
List
<
MultipartFile
>
bodyFiles
)
{
if
(
bodyUploadIds
.
size
()
<=
0
)
{
return
;
}
String
dir
=
BODY_FILE_DIR
+
"/"
+
test
.
getId
();
File
testDir
=
new
File
(
dir
);
if
(!
testDir
.
exists
())
{
...
...
@@ -436,4 +443,11 @@ public class APITestService {
quotaService
.
checkAPITestQuota
();
}
}
public
void
mergeCreate
(
SaveAPITestRequest
request
,
MultipartFile
file
,
List
<
String
>
selectIds
)
{
ApiTest
test
=
createTest
(
request
,
file
);
selectIds
.
forEach
(
sourceId
->
{
copyBodyFiles
(
test
.
getId
(),
sourceId
);
});
}
}
frontend/src/business/components/api/test/OneClickOperation.vue
浏览文件 @
5d81523f
...
...
@@ -156,37 +156,11 @@
},
save
(
callback
)
{
this
.
change
=
false
;
let
url
=
"
/api/create
"
;
let
bodyFiles
=
this
.
getBodyUploadFiles
();
this
.
result
=
this
.
$request
(
this
.
getOptions
(
url
,
bodyFiles
),
()
=>
{
let
url
=
"
/api/create/merge
"
;
this
.
result
=
this
.
$request
(
this
.
getOptions
(
url
,
this
.
selectIds
),
()
=>
{
if
(
callback
)
callback
();
});
},
getBodyUploadFiles
()
{
let
bodyUploadFiles
=
[];
this
.
test
.
bodyUploadIds
=
[];
this
.
test
.
scenarioDefinition
.
forEach
(
scenario
=>
{
scenario
.
requests
.
forEach
(
request
=>
{
if
(
request
.
body
)
{
request
.
body
.
kvs
.
forEach
(
param
=>
{
if
(
param
.
files
)
{
param
.
files
.
forEach
(
item
=>
{
if
(
item
.
file
)
{
let
fileId
=
getUUID
().
substring
(
0
,
8
);
item
.
name
=
item
.
file
.
name
;
item
.
id
=
fileId
;
this
.
test
.
bodyUploadIds
.
push
(
fileId
);
bodyUploadFiles
.
push
(
item
.
file
);
// item.file = undefined;
}
});
}
});
}
});
});
return
bodyUploadFiles
;
},
runTest
()
{
this
.
result
=
this
.
$post
(
"
/api/run
"
,
{
id
:
this
.
test
.
id
,
triggerMode
:
'
MANUAL
'
},
(
response
)
=>
{
this
.
$success
(
this
.
$t
(
'
api_test.running
'
));
...
...
@@ -196,16 +170,14 @@
this
.
test
=
""
});
},
getOptions
(
url
,
bodyFile
s
)
{
getOptions
(
url
,
selectId
s
)
{
let
formData
=
new
FormData
();
if
(
bodyFiles
)
{
bodyFiles
.
forEach
(
f
=>
{
formData
.
append
(
"
files
"
,
f
);
})
}
let
requestJson
=
JSON
.
stringify
(
this
.
test
);
formData
.
append
(
'
request
'
,
new
Blob
([
requestJson
],
{
formData
.
append
(
'
request
'
,
new
Blob
([
JSON
.
stringify
(
this
.
test
)],
{
type
:
"
application/json
"
}));
formData
.
append
(
'
selectIds
'
,
new
Blob
([
JSON
.
stringify
(
Array
.
from
(
selectIds
))],
{
type
:
"
application/json
"
}));
...
...
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录