diff --git a/common/create_bug.go b/common/create_bug.go
index 7075ab6..d105c52 100644
--- a/common/create_bug.go
+++ b/common/create_bug.go
@@ -11,14 +11,14 @@ import (
const API_tbapi = "http://qa.flatincbr.work:5354"
+const BugCategory_Anomaly = "monkey异常"
+
type BugInfo struct {
- ProjectName string `json:"project_name"` // tb项目名称
- ProjectID string `json:"project_id"` // tb项目id
- ExecutorID string `json:"executor_id"` // tb缺陷的处理人
- Title string `json:"title"` // tb缺陷的标题
- Content string `json:"content"` // tb缺陷的备注
- InvolveMembers []string `json:"involve_members"` // tb缺陷的参与人
- Pf string `json:"pf"` // 所属平台,除了adr/ios其它不处理
+ ProjectName string `json:"project_name"` // tb项目名称
+ Category string `json:"category"` // 提单配置中的缺陷类型
+ Title string `json:"title"` // tb缺陷的标题
+ Content string `json:"content"` // tb缺陷的备注
+ Pf string `json:"pf"` // 所属平台,除了adr/ios其它不处理
}
func NewBug(project_name string) BugInfo {
@@ -27,15 +27,9 @@ func NewBug(project_name string) BugInfo {
return v
}
-// 指定执行者
-func (b *BugInfo) SetExecutor(id string) *BugInfo {
- b.ExecutorID = id
- return b
-}
-
-// 指定参与者
-func (b *BugInfo) SetInvolveMember(id ...string) *BugInfo {
- b.InvolveMembers = id
+// 设置类别
+func (b *BugInfo) SetCategory(category string) *BugInfo {
+ b.Category = category
return b
}
diff --git a/main.go b/main.go
index 993fd1b..29e45c2 100644
--- a/main.go
+++ b/main.go
@@ -83,6 +83,9 @@ func main() {
r.POST("/api/monkey/v2/create_task", monkey.CreateTaskV2)
r.POST("/api/monkey/v2/task/handle/set", monkey.UpdateHandleStatus)
r.GET("/api/monkey/v2/task/command", monkey.GetTaskCommand)
+ r.POST("/api/monkey/v2/task/store_anomaly", monkey.StoreMonkeyAnomaly)
+ r.GET("/api/monkey/v2/task/get_anomalies", monkey.GetMonkeyAnomaliesByTaskId)
+ //
// device
r.GET("/api/device/v1/list", device.GetDevices)
diff --git a/models/monkey_anomaly.go b/models/monkey_anomaly.go
index 9ae8033..61da608 100644
--- a/models/monkey_anomaly.go
+++ b/models/monkey_anomaly.go
@@ -14,6 +14,7 @@ type MonkeyAnomaly struct {
Anomalies []string `json:"anomalies" gorm:"-"`
CoverdPages string `json:"coverd_pages"`
Logs string `json:"logs"`
+ BugId string `json:"bug_id"`
}
func (m *MonkeyAnomaly) TableName() string {
diff --git a/monkey/anomaly.go b/monkey/anomaly.go
index 42e68f4..68ca612 100644
--- a/monkey/anomaly.go
+++ b/monkey/anomaly.go
@@ -113,6 +113,12 @@ func GetMonkeyAnomaliesByTaskId(c *gin.Context) {
}
func createTbBug(ano models.MonkeyAnomaly) {
+ // 暂时忽略anr提单
+ if strings.Contains(ano.AnomalyInfos, "ANR in") {
+ fmt.Println("[Debug]", "anr异常将跳过提单逻辑")
+ return
+ }
+
db, err := dbsql.GetConn(dbsql.DSN)
if err != nil {
fmt.Println("[createTbBug]", err)
@@ -127,15 +133,41 @@ func createTbBug(ano models.MonkeyAnomaly) {
return
}
+ bug_type := "Other"
+ if strings.Contains(ano.AnomalyInfos, "FATAL EXCEPTION") {
+ bug_type = "EXCEPTION"
+ }
+
content := ""
content += "**关联Monkey报告:** [点击查看](http://qa.flatincbr.work/#/monkey/result/" + cast.ToString(ano.TaskId) + ")" + "\n\n
\n\n"
content += "**上报时间:**" + ano.CreateTime.Format("2006-01-02 15:04:05") + "\n\n
\n\n"
content += "**应用版本:**" + task.Version + "\n\n
\n\n"
content += "**信息预览:**" + "\n\n"
- for _, v := range ano.Anomalies {
- for i, vv := range strings.Split(v, "\n") {
+
+ title := "【Monkey测试】"
+ for i, v := range ano.Anomalies {
+ for ii, vv := range strings.Split(v, "\n") {
content += "> " + vv + "\n"
- if i > 10 {
+ switch bug_type {
+ case "EXCEPTION":
+ // 取第一行和第三行内容拼接
+ if i == 0 && ii == 0 {
+ _strs := strings.Split(vv, "): ")
+ if len(_strs) > 1 {
+ title += _strs[1] + " - "
+ }
+ } else if i == 0 && ii == 2 {
+ _strs := strings.Split(vv, "): ")
+ if len(_strs) > 1 {
+ title += _strs[1]
+ }
+ }
+ default:
+ if i == 0 && ii == 0 {
+ title += "未知异常 - " + vv
+ }
+ }
+ if ii > 10 {
break
}
}
@@ -145,11 +177,11 @@ func createTbBug(ano models.MonkeyAnomaly) {
content += "\n"
bug := common.NewBug("crushu") //task.Project
- bug.SetExecutor("62733beb6918b259138d7577").
- SetInvolveMember("62733beb6918b259138d7577").
- SetTitle("【Monkey测试】任务id=" + cast.ToString(task.Id) + "发生异常").
+
+ bug.SetTitle(title).
SetPlatform(task.Platform).
- SetContent(content)
+ SetContent(content).
+ SetCategory(common.BugCategory_Anomaly)
id, err := bug.Create()
if err != nil {
@@ -158,4 +190,5 @@ func createTbBug(ano models.MonkeyAnomaly) {
}
fmt.Println("缺陷创建成功:", "https://www.teambition.com/task/"+id)
+ db.Table(ano.TableName()).Model(models.MonkeyAnomaly{}).Where("id = ?", ano.ID).Update("bug_id", id)
}