Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
MeterSphere
metersphere
提交
7b695718
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,发现更多精彩内容 >>
提交
7b695718
编写于
9月 25, 2020
作者:
C
chenjianxing
浏览文件
操作
浏览文件
下载
差异文件
Merge branch 'master' of
https://github.com/metersphere/server
上级
3813cdc1
6edbd5af
变更
22
隐藏空白更改
内联
并排
Showing
22 changed file
with
162 addition
and
68 deletion
+162
-68
backend/src/main/java/io/metersphere/api/jmeter/APIBackendListenerClient.java
...a/io/metersphere/api/jmeter/APIBackendListenerClient.java
+4
-5
backend/src/main/java/io/metersphere/base/domain/Notice.java
backend/src/main/java/io/metersphere/base/domain/Notice.java
+2
-5
backend/src/main/java/io/metersphere/notice/controller/NoticeController.java
...va/io/metersphere/notice/controller/NoticeController.java
+2
-3
backend/src/main/java/io/metersphere/notice/controller/request/NoticeRequest.java
.../metersphere/notice/controller/request/NoticeRequest.java
+4
-3
backend/src/main/java/io/metersphere/notice/domain/NoticeDTO.java
...src/main/java/io/metersphere/notice/domain/NoticeDTO.java
+9
-0
backend/src/main/java/io/metersphere/notice/domain/NoticeDetail.java
.../main/java/io/metersphere/notice/domain/NoticeDetail.java
+21
-0
backend/src/main/java/io/metersphere/notice/service/MailService.java
.../main/java/io/metersphere/notice/service/MailService.java
+16
-4
backend/src/main/java/io/metersphere/notice/service/NoticeService.java
...ain/java/io/metersphere/notice/service/NoticeService.java
+5
-6
backend/src/main/java/io/metersphere/performance/service/PerformanceTestService.java
...tersphere/performance/service/PerformanceTestService.java
+13
-13
backend/src/main/java/io/metersphere/track/service/TestCaseCommentService.java
.../io/metersphere/track/service/TestCaseCommentService.java
+4
-3
backend/src/main/java/io/metersphere/track/service/TestCaseReviewService.java
...a/io/metersphere/track/service/TestCaseReviewService.java
+8
-4
backend/src/main/resources/db/migration/V25__modify_test_plan.sql
...src/main/resources/db/migration/V25__modify_test_plan.sql
+0
-0
backend/src/main/resources/i18n/messages_en_US.properties
backend/src/main/resources/i18n/messages_en_US.properties
+2
-2
backend/src/main/resources/i18n/messages_zh_CN.properties
backend/src/main/resources/i18n/messages_zh_CN.properties
+2
-2
backend/src/main/resources/i18n/messages_zh_TW.properties
backend/src/main/resources/i18n/messages_zh_TW.properties
+2
-2
backend/src/main/resources/mail/comment.html
backend/src/main/resources/mail/comment.html
+6
-2
backend/src/main/resources/mail/end.html
backend/src/main/resources/mail/end.html
+8
-2
backend/src/main/resources/mail/fail.html
backend/src/main/resources/mail/fail.html
+14
-5
backend/src/main/resources/mail/reviewer.html
backend/src/main/resources/mail/reviewer.html
+8
-2
backend/src/main/resources/mail/success.html
backend/src/main/resources/mail/success.html
+10
-4
backend/src/main/resources/mail/successPerformance.html
backend/src/main/resources/mail/successPerformance.html
+21
-0
frontend/src/business/components/track/review/commom/ReviewComment.vue
...business/components/track/review/commom/ReviewComment.vue
+1
-1
未找到文件。
backend/src/main/java/io/metersphere/api/jmeter/APIBackendListenerClient.java
浏览文件 @
7b695718
...
...
@@ -3,11 +3,11 @@ package io.metersphere.api.jmeter;
import
io.metersphere.api.service.APIReportService
;
import
io.metersphere.api.service.APITestService
;
import
io.metersphere.base.domain.ApiTestReport
;
import
io.metersphere.base.domain.Notice
;
import
io.metersphere.commons.constants.APITestStatus
;
import
io.metersphere.commons.constants.ApiRunMode
;
import
io.metersphere.commons.utils.CommonBeanFactory
;
import
io.metersphere.commons.utils.LogUtil
;
import
io.metersphere.notice.domain.NoticeDetail
;
import
io.metersphere.notice.service.MailService
;
import
io.metersphere.notice.service.NoticeService
;
import
org.apache.commons.lang3.StringUtils
;
...
...
@@ -16,7 +16,6 @@ import org.apache.jmeter.samplers.SampleResult;
import
org.apache.jmeter.visualizers.backend.AbstractBackendListenerClient
;
import
org.apache.jmeter.visualizers.backend.BackendListenerContext
;
import
javax.annotation.Resource
;
import
java.io.Serializable
;
import
java.util.*
;
...
...
@@ -120,17 +119,17 @@ public class APIBackendListenerClient extends AbstractBackendListenerClient impl
queue
.
clear
();
super
.
teardownTest
(
context
);
NoticeService
noticeService
=
CommonBeanFactory
.
getBean
(
NoticeService
.
class
);
List
<
Notice
>
notice
=
null
;
List
<
Notice
Detail
>
notice
=
null
;
try
{
notice
=
noticeService
.
queryNotice
(
testResult
.
getTestId
());
}
catch
(
Exception
e
)
{
e
.
printStackTrace
(
);
LogUtil
.
error
(
e
);
}
MailService
mailService
=
CommonBeanFactory
.
getBean
(
MailService
.
class
);
try
{
mailService
.
sendHtml
(
report
.
getId
(),
notice
,
report
.
getStatus
(),
"api"
);
}
catch
(
Exception
e
)
{
e
.
printStackTrace
(
);
LogUtil
.
error
(
e
);
}
}
...
...
backend/src/main/java/io/metersphere/base/domain/Notice.java
浏览文件 @
7b695718
package
io.metersphere.base.domain
;
import
java.io.Serializable
;
import
lombok.Data
;
import
java.io.Serializable
;
@Data
public
class
Notice
implements
Serializable
{
private
String
event
;
...
...
@@ -15,9 +16,5 @@ public class Notice implements Serializable {
private
String
enable
;
private
String
[]
names
;
private
String
[]
emails
;
private
static
final
long
serialVersionUID
=
1L
;
}
\ No newline at end of file
backend/src/main/java/io/metersphere/notice/controller/NoticeController.java
浏览文件 @
7b695718
package
io.metersphere.notice.controller
;
import
io.metersphere.base.domain.Notice
;
import
io.metersphere.notice.controller.request.NoticeRequest
;
import
io.metersphere.notice.
service.MailService
;
import
io.metersphere.notice.
domain.NoticeDetail
;
import
io.metersphere.notice.service.NoticeService
;
import
org.springframework.web.bind.annotation.*
;
...
...
@@ -21,7 +20,7 @@ public class NoticeController {
}
@GetMapping
(
"/query/{testId}"
)
public
List
<
Notice
>
queryNotice
(
@PathVariable
String
testId
)
{
public
List
<
Notice
Detail
>
queryNotice
(
@PathVariable
String
testId
)
{
return
noticeService
.
queryNotice
(
testId
);
}
...
...
backend/src/main/java/io/metersphere/notice/controller/request/NoticeRequest.java
浏览文件 @
7b695718
package
io.metersphere.notice.controller.request
;
import
io.metersphere.
base.domain.Notice
;
import
io.metersphere.
notice.domain.NoticeDetail
;
import
lombok.Data
;
import
java.util.List
;
@Data
public
class
NoticeRequest
extends
Notice
{
public
class
NoticeRequest
extends
Notice
Detail
{
private
String
testId
;
private
List
<
Notice
>
notices
;
private
List
<
NoticeDetail
>
notices
;
}
backend/src/main/java/io/metersphere/notice/domain/NoticeDTO.java
0 → 100644
浏览文件 @
7b695718
package
io.metersphere.notice.domain
;
import
io.metersphere.base.domain.Notice
;
import
lombok.Data
;
@Data
public
class
NoticeDTO
extends
Notice
{
private
String
[]
names
;
}
backend/src/main/java/io/metersphere/notice/domain/NoticeDetail.java
0 → 100644
浏览文件 @
7b695718
package
io.metersphere.notice.domain
;
import
io.metersphere.base.domain.Notice
;
import
lombok.Data
;
@Data
public
class
NoticeDetail
extends
Notice
{
private
String
[]
names
;
private
String
[]
emails
;
private
String
event
;
private
String
testId
;
private
String
name
;
private
String
email
;
private
String
enable
;
}
backend/src/main/java/io/metersphere/notice/service/MailService.java
浏览文件 @
7b695718
package
io.metersphere.notice.service
;
import
io.metersphere.api.dto.APIReportResult
;
import
io.metersphere.base.domain.Notice
;
import
io.metersphere.base.domain.SystemParameter
;
import
io.metersphere.base.domain.TestCaseWithBLOBs
;
import
io.metersphere.commons.constants.ParamConstants
;
import
io.metersphere.commons.utils.EncryptUtils
;
import
io.metersphere.commons.utils.LogUtil
;
import
io.metersphere.dto.BaseSystemConfigDTO
;
import
io.metersphere.dto.LoadTestDTO
;
import
io.metersphere.i18n.Translator
;
import
io.metersphere.notice.domain.NoticeDetail
;
import
io.metersphere.service.SystemParameterService
;
import
io.metersphere.service.UserService
;
import
io.metersphere.track.request.testreview.SaveCommentRequest
;
...
...
@@ -37,7 +38,9 @@ public class MailService {
@Resource
private
SystemParameterService
systemParameterService
;
public
void
sendHtml
(
String
id
,
List
<
Notice
>
notice
,
String
status
,
String
type
)
{
public
void
sendHtml
(
String
id
,
List
<
NoticeDetail
>
notice
,
String
status
,
String
type
)
{
BaseSystemConfigDTO
baseSystemConfigDTO
=
systemParameterService
.
getBaseInfo
();
JavaMailSenderImpl
javaMailSender
=
getMailSender
();
MimeMessage
mimeMessage
=
javaMailSender
.
createMimeMessage
();
String
testName
=
""
;
...
...
@@ -47,16 +50,19 @@ public class MailService {
}
else
if
(
type
.
equals
(
"performance"
))
{
LoadTestDTO
performanceResult
=
apiAndPerformanceHelper
.
getPerformance
(
id
);
testName
=
performanceResult
.
getName
();
status
=
performanceResult
.
getStatus
();
}
Map
<
String
,
String
>
context
=
new
HashMap
<>();
context
.
put
(
"title"
,
type
+
Translator
.
get
(
"timing_task_result_notification"
));
context
.
put
(
"testName"
,
testName
);
context
.
put
(
"url"
,
baseSystemConfigDTO
.
getUrl
());
context
.
put
(
"id"
,
id
);
context
.
put
(
"type"
,
type
);
try
{
String
failTemplate
=
IOUtils
.
toString
(
this
.
getClass
().
getResource
(
"/mail/fail.html"
),
StandardCharsets
.
UTF_8
);
String
successTemplate
=
IOUtils
.
toString
(
this
.
getClass
().
getResource
(
"/mail/success.html"
),
StandardCharsets
.
UTF_8
);
String
successPerformanceTemplate
=
IOUtils
.
toString
(
this
.
getClass
().
getResource
(
"/mail/successPerformance.html"
),
StandardCharsets
.
UTF_8
);
MimeMessageHelper
helper
=
new
MimeMessageHelper
(
mimeMessage
,
true
);
helper
.
setFrom
(
javaMailSender
.
getUsername
());
...
...
@@ -65,7 +71,7 @@ public class MailService {
List
<
String
>
successEmailList
=
new
ArrayList
<>();
List
<
String
>
failEmailList
=
new
ArrayList
<>();
if
(
notice
.
size
()
>
0
)
{
for
(
Notice
n
:
notice
)
{
for
(
Notice
Detail
n
:
notice
)
{
if
(
n
.
getEnable
().
equals
(
"true"
)
&&
n
.
getEvent
().
equals
(
"执行成功"
))
{
successEmailList
=
userService
.
queryEmail
(
n
.
getNames
());
}
...
...
@@ -80,6 +86,9 @@ public class MailService {
if
(
status
.
equals
(
"Success"
))
{
users
=
successEmailList
.
toArray
(
new
String
[
0
]);
helper
.
setText
(
getContent
(
successTemplate
,
context
),
true
);
}
else
if
(
status
.
equals
(
"Starting"
)
&&
type
.
equals
(
"performance"
))
{
users
=
successEmailList
.
toArray
(
new
String
[
0
]);
helper
.
setText
(
getContent
(
successPerformanceTemplate
,
context
),
true
);
}
else
{
users
=
failEmailList
.
toArray
(
new
String
[
0
]);
helper
.
setText
(
getContent
(
failTemplate
,
context
),
true
);
...
...
@@ -108,6 +117,7 @@ public class MailService {
public
void
sendHtml
(
List
<
String
>
userIds
,
String
type
,
SaveTestCaseReviewRequest
reviewRequest
,
SaveCommentRequest
request
,
TestCaseWithBLOBs
testCaseWithBLOBs
)
{
BaseSystemConfigDTO
baseSystemConfigDTO
=
systemParameterService
.
getBaseInfo
();
Long
startTime
=
reviewRequest
.
getCreateTime
();
Long
endTime
=
reviewRequest
.
getEndTime
();
SimpleDateFormat
sdf
=
new
SimpleDateFormat
(
"yyyy-MM-dd HH:mm:ss"
);
...
...
@@ -132,6 +142,8 @@ public class MailService {
context
.
put
(
"description"
,
request
.
getDescription
());
context
.
put
(
"start"
,
start
);
context
.
put
(
"end"
,
end
);
context
.
put
(
"url"
,
baseSystemConfigDTO
.
getUrl
());
context
.
put
(
"id"
,
reviewRequest
.
getId
());
try
{
String
reviewerTemplate
=
IOUtils
.
toString
(
this
.
getClass
().
getResource
(
"/mail/reviewer.html"
),
StandardCharsets
.
UTF_8
);
...
...
backend/src/main/java/io/metersphere/notice/service/NoticeService.java
浏览文件 @
7b695718
...
...
@@ -4,12 +4,11 @@ import io.metersphere.base.domain.Notice;
import
io.metersphere.base.domain.NoticeExample
;
import
io.metersphere.base.mapper.NoticeMapper
;
import
io.metersphere.notice.controller.request.NoticeRequest
;
import
org.springframework.beans.factory.annotation.Autowired
;
import
io.metersphere.notice.domain.NoticeDetail
;
import
org.springframework.stereotype.Service
;
import
javax.annotation.Resource
;
import
java.util.ArrayList
;
import
java.util.HashMap
;
import
java.util.List
;
@Service
...
...
@@ -66,17 +65,17 @@ public class NoticeService {
}
}
public
List
<
Notice
>
queryNotice
(
String
id
)
{
public
List
<
Notice
Detail
>
queryNotice
(
String
id
)
{
NoticeExample
example
=
new
NoticeExample
();
example
.
createCriteria
().
andTestIdEqualTo
(
id
);
List
<
Notice
>
notices
=
noticeMapper
.
selectByExample
(
example
);
List
<
Notice
>
notice
=
new
ArrayList
<>();
List
<
Notice
Detail
>
notice
=
new
ArrayList
<>();
List
<
String
>
success
=
new
ArrayList
<>();
List
<
String
>
fail
=
new
ArrayList
<>();
String
[]
successArray
=
new
String
[
success
.
size
()];
String
[]
failArray
=
new
String
[
fail
.
size
()];
Notice
notice1
=
new
Notice
();
Notice
notice2
=
new
Notice
();
Notice
Detail
notice1
=
new
NoticeDetail
();
Notice
Detail
notice2
=
new
NoticeDetail
();
if
(
notices
.
size
()
>
0
)
{
for
(
Notice
n
:
notices
)
{
if
(
n
.
getEvent
().
equals
(
"执行成功"
))
{
...
...
backend/src/main/java/io/metersphere/performance/service/PerformanceTestService.java
浏览文件 @
7b695718
...
...
@@ -237,19 +237,6 @@ public class PerformanceTestService {
}
startEngine
(
loadTest
,
engine
,
request
.
getTriggerMode
());
/* if (request.getTriggerMode().equals("SCHEDULE")) {
List<Notice> notice = null;
try {
notice = noticeService.queryNotice(request.getId());
} catch (Exception e) {
e.printStackTrace();
}
try {
mailService.sendHtml(engine.getReportId(), notice, "status", "performance");
} catch (Exception e) {
e.printStackTrace();
}
}*/
return
engine
.
getReportId
();
}
...
...
@@ -317,6 +304,19 @@ public class PerformanceTestService {
reportResult
.
setReportKey
(
ReportKeys
.
ResultStatus
.
name
());
reportResult
.
setReportValue
(
"Ready"
);
// 初始化一个 result_status, 这个值用在data-streaming中
loadTestReportResultMapper
.
insertSelective
(
reportResult
);
if
(
triggerMode
.
equals
(
"SCHEDULE"
))
{
List
<
NoticeDetail
>
notice
=
null
;
try
{
notice
=
noticeService
.
queryNotice
(
loadTest
.
getId
());
}
catch
(
Exception
e
)
{
LogUtil
.
error
(
e
);
}
try
{
mailService
.
sendHtml
(
engine
.
getReportId
(),
notice
,
loadTest
.
getStatus
(),
"performance"
);
}
catch
(
Exception
e
)
{
LogUtil
.
error
(
e
);
}
}
}
catch
(
MSException
e
)
{
LogUtil
.
error
(
e
);
loadTest
.
setStatus
(
PerformanceTestStatus
.
Error
.
name
());
...
...
backend/src/main/java/io/metersphere/track/service/TestCaseCommentService.java
浏览文件 @
7b695718
package
io.metersphere.track.service
;
import
io.metersphere.base.domain.*
;
import
io.metersphere.base.domain.TestCaseComment
;
import
io.metersphere.base.domain.TestCaseCommentExample
;
import
io.metersphere.base.domain.TestCaseWithBLOBs
;
import
io.metersphere.base.domain.User
;
import
io.metersphere.base.mapper.TestCaseCommentMapper
;
import
io.metersphere.base.mapper.TestCaseMapper
;
import
io.metersphere.base.mapper.TestCaseReviewMapper
;
...
...
@@ -9,12 +12,10 @@ import io.metersphere.commons.utils.SessionUtils;
import
io.metersphere.notice.service.MailService
;
import
io.metersphere.track.request.testreview.SaveCommentRequest
;
import
io.metersphere.track.request.testreview.SaveTestCaseReviewRequest
;
import
org.apache.commons.beanutils.BeanUtils
;
import
org.springframework.stereotype.Service
;
import
org.springframework.transaction.annotation.Transactional
;
import
javax.annotation.Resource
;
import
java.lang.reflect.InvocationTargetException
;
import
java.util.ArrayList
;
import
java.util.List
;
import
java.util.UUID
;
...
...
backend/src/main/java/io/metersphere/track/service/TestCaseReviewService.java
浏览文件 @
7b695718
...
...
@@ -10,13 +10,16 @@ import io.metersphere.commons.constants.TestPlanStatus;
import
io.metersphere.commons.constants.TestPlanTestCaseStatus
;
import
io.metersphere.commons.exception.MSException
;
import
io.metersphere.commons.user.SessionUser
;
import
io.metersphere.commons.utils.LogUtil
;
import
io.metersphere.commons.utils.MathUtils
;
import
io.metersphere.commons.utils.ServiceUtils
;
import
io.metersphere.commons.utils.SessionUtils
;
import
io.metersphere.controller.request.member.QueryMemberRequest
;
import
io.metersphere.notice.service.MailService
;
import
io.metersphere.service.UserService
;
import
io.metersphere.track.dto.*
;
import
io.metersphere.track.dto.TestCaseReviewDTO
;
import
io.metersphere.track.dto.TestReviewCaseDTO
;
import
io.metersphere.track.dto.TestReviewDTOWithMetric
;
import
io.metersphere.track.request.testreview.*
;
import
org.apache.commons.beanutils.BeanUtils
;
import
org.apache.commons.lang3.StringUtils
;
...
...
@@ -314,7 +317,7 @@ public class TestCaseReviewService {
testCaseReviewMapper
.
updateByPrimaryKey
(
testCaseReview
);
}
}
public
List
<
String
>
getTestCaseReviewerIds
(
String
reviewId
)
{
TestCaseReviewUsersExample
testCaseReviewUsersExample
=
new
TestCaseReviewUsersExample
();
testCaseReviewUsersExample
.
createCriteria
().
andReviewIdEqualTo
(
reviewId
);
...
...
@@ -345,12 +348,13 @@ public class TestCaseReviewService {
TestCaseReview
_testCaseReview
=
testCaseReviewMapper
.
selectByPrimaryKey
(
reviewId
);
List
<
String
>
userIds
=
new
ArrayList
<>();
userIds
.
add
(
_testCaseReview
.
getCreator
());
try
{
BeanUtils
.
copyProperties
(
testCaseReviewRequest
,
_testCaseReview
);
}
catch
(
IllegalAccessException
e
)
{
e
.
printStackTrace
(
);
LogUtil
.
error
(
e
);
}
catch
(
InvocationTargetException
e
)
{
e
.
printStackTrace
(
);
LogUtil
.
error
(
e
);
}
mailService
.
sendHtml
(
userIds
,
"end"
,
testCaseReviewRequest
,
request
,
testCaseWithBLOBs
);
testCaseReviewMapper
.
updateByPrimaryKeySelective
(
testCaseReview
);
...
...
backend/src/main/resources/db/migration/V2
4
__modify_test_plan.sql
→
backend/src/main/resources/db/migration/V2
5
__modify_test_plan.sql
浏览文件 @
7b695718
文件已移动
backend/src/main/resources/i18n/messages_en_US.properties
浏览文件 @
7b695718
...
...
@@ -155,5 +155,5 @@ email_subject=Metersphere timing task result notification
import_xmind_count_error
=
The number of use cases imported into the mind map cannot exceed 500
import_xmind_not_found
=
Test case not found
license_valid_license_error
=
Authorization authentication failed
timing_task_result_notification
=
"Timing task result notification"
test_review_task_notice
=
"Test review task notice"
timing_task_result_notification
=
Timing task result notification
test_review_task_notice
=
Test review task notice
backend/src/main/resources/i18n/messages_zh_CN.properties
浏览文件 @
7b695718
...
...
@@ -155,7 +155,7 @@ email_subject=MeterSphere定时任务结果通知
import_xmind_count_error
=
思维导图导入用例数量不能超过 500 条
license_valid_license_error
=
授权认证失败
import_xmind_not_found
=
未找到测试用例
timing_task_result_notification
=
"定时任务结果通知"
test_review_task_notice
=
"测试评审任务通知"
timing_task_result_notification
=
定时任务结果通知
test_review_task_notice
=
测试评审任务通知
backend/src/main/resources/i18n/messages_zh_TW.properties
浏览文件 @
7b695718
...
...
@@ -156,5 +156,5 @@ license_valid_license_code=授權碼已經存在
email_subject
=
MeterSphere定時任務結果通知
import_xmind_count_error
=
思維導圖導入用例數量不能超過 500 條
import_xmind_not_found
=
未找到测试用例
timing_task_result_notification
=
"定時任務結果通知"
test_review_task_notice
=
"測試評審任務通知"
\ No newline at end of file
timing_task_result_notification
=
定時任務結果通知
test_review_task_notice
=
測試評審任務通知
\ No newline at end of file
backend/src/main/resources/mail/comment.html
浏览文件 @
7b695718
...
...
@@ -4,9 +4,13 @@
<meta
charset=
"UTF-8"
>
<title>
MeterSphere
</title>
</head>
<body
style=
"text-align: left"
>
<body>
<div>
<p>
${maintainer} 发起的
</p><br/>
${testCaseName}
</p><br/>
添加评论:${description}
</p>
<p
style=
"text-align: left"
>
${maintainer} 发起的
<br/>
${testCaseName}
<br/>
添加评论:${description}
<br/>
点击下面链接进入用例评审页面
</p>
<a
href=
"${url}/#/track/review/view"
>
${url}/#/track/review/view
</a>
</div>
</body>
</html>
\ No newline at end of file
backend/src/main/resources/mail/end.html
浏览文件 @
7b695718
...
...
@@ -4,9 +4,15 @@
<meta
charset=
"UTF-8"
>
<title>
MeterSphere
</title>
</head>
<body
style=
"text-align: left"
>
<body>
<div>
<p>
${creator} 发起的:
</p><br/>
${reviewName}
</p><br/>
计划开始时间是 ${start}, 计划结束时间为 ${end} 已完成
</p>
<p
style=
"text-align: left"
>
${creator} 发起的:
<br>
${reviewName}
<br>
计划开始时间是:${start}
<br>
计划结束时间为:${end}
<br>
已完成
<br>
点击下面链接进入用例评审页面
</p>
<a
href=
"${url}/#/track/review/view"
>
${url}/#/track/review/view
</a>
</div>
</body>
</html>
\ No newline at end of file
backend/src/main/resources/mail/fail.html
浏览文件 @
7b695718
...
...
@@ -4,12 +4,21 @@
<meta
charset=
"UTF-8"
>
<title>
MeterSphere
</title>
</head>
<body
style=
"text-align: left"
>
<body>
<div>
<h3>
${title}
</h3>
<p>
尊敬的用户:您好,
<p><br/>
<p>
您所执行的 ${testName} 运行失败
</p>
<div
style=
"text-align: left"
>
<h3>
${title}
</h3>
</div>
<div
style=
"text-align: left"
>
<p>
尊敬的用户:
</p>
<p
style=
"margin-left: 60px"
>
您好:
</div>
<div
style=
"margin-left: 100px"
>
<p>
您所执行的 ${testName} 运行失败
<br/>
请点击下面链接进入测试报告页面
</p>
<a
href=
"${url}/#/${type}/report/view/${id}"
>
${url}/#/${type}/report/view/${id}
</a>
</div>
</div>
</body>
</html>
\ No newline at end of file
backend/src/main/resources/mail/reviewer.html
浏览文件 @
7b695718
...
...
@@ -4,9 +4,15 @@
<meta
charset=
"UTF-8"
>
<title>
MeterSphere
</title>
</head>
<body
style=
"text-align: left"
>
<body>
<div>
<p>
${creator} 发起的:
</p><br/>
${reviewName}
</p><br/>
计划开始时间是 ${start},计划结束时间为 ${end} 请跟进
</p>
<p
style=
"text-align: left"
>
${creator} 发起的:
<br>
${reviewName}
<br>
计划开始时间是:${start}
<br>
计划结束时间为:${end}
<br>
请跟进
<br>
点击下面链接进入评审页面进行审核
</p>
<a
href=
"${url}/#/track/review/view/${id}"
>
${url}/#/track/review/view/${id}
</a>
</div>
</body>
</html>
\ No newline at end of file
backend/src/main/resources/mail/success.html
浏览文件 @
7b695718
...
...
@@ -5,11 +5,17 @@
<title>
MeterSphere
</title>
</head>
<body
style=
"text-align: left"
>
<div>
<div
style=
"text-align: left"
>
<h3>
${title}
</h3>
<p>
尊敬的用户:您好,
<p><br/>
<p>
您所执行的 ${testName} 运行成功
</p>
</div>
<div
style=
"text-align: left"
>
<p>
尊敬的用户:
</p>
<p
style=
"margin-left: 60px"
>
您好:
</div>
<div
style=
"margin-left: 100px"
>
<p>
您所执行的 ${testName} 运行成功
<br/>
请点击下面链接进入测试报告页面
</p>
<a
href=
"${url}/#/${type}/report/view/${id}"
>
${url}/#/${type}/report/view/${id}
</a>
</div>
</body>
</html>
\ No newline at end of file
backend/src/main/resources/mail/successPerformance.html
0 → 100644
浏览文件 @
7b695718
<!DOCTYPE html>
<html
lang=
"en"
>
<head>
<meta
charset=
"UTF-8"
>
<title>
MeterSphere
</title>
</head>
<body
style=
"text-align: left"
>
<div
style=
"text-align: left"
>
<h3>
${title}
</h3>
</div>
<div
style=
"text-align: left"
>
<p>
尊敬的用户:
</p>
<p
style=
"margin-left: 60px"
>
您好:
</div>
<div
style=
"margin-left: 100px"
>
<p>
您所执行的 ${testName} 性能测试已完成
<br/>
请点击下面链接进入测试报告页面
</p>
<a
href=
"${url}/#/${type}/report/view/${id}"
>
${url}/#/${type}/report/view/${id}
</a>
</div>
</body>
</html>
\ No newline at end of file
frontend/src/business/components/track/review/commom/ReviewComment.vue
浏览文件 @
7b695718
...
...
@@ -72,6 +72,6 @@ export default {
.comment-list
{
overflow-y
:
scroll
;
height
:
calc
(
70vh
);
height
:
calc
(
100vh
-
250px
);
}
</
style
>
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录