diff --git a/test/bugly.go b/test/bugly.go
new file mode 100644
index 0000000..6d01df7
--- /dev/null
+++ b/test/bugly.go
@@ -0,0 +1,120 @@
+package test
+
+import (
+ "fmt"
+ "net/http"
+ "time"
+
+ "github.com/imroc/req/v3"
+)
+
+func BuglyHelper() {
+ var rsp BuglyRsp
+ url := `https://bugly.qq.com/v2/search?start=0&userSearchPage=%2Fv2%2Fworkbench%2Fapps&pid=2&platformId=2&date=last_7_day&sortOrder=desc&useSearchTimes=3&rows=10&sortField=matchCount&appId=447d39aea1&fsn=8799e426-34c8-4a75-bd0d-1e186509eb5e`
+ client := req.C().
+ SetTimeout(5 * time.Second)
+ resp, err := client.R().
+ SetCookies(cookies()...).
+ SetHeader("X-Token", "264561818").
+ SetHeader("Accept", "application/json;charset=utf-8").
+ SetHeader("User-Agent", "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/62.0.3202.75 Safari/537.36").
+ // SetHeader("Cookie", "bugly-session=s%3AqQZzQXsgw0wv_lFKAOT88ND_yh_B1f6H.au%2F78LCSHj5zhwqe%2FljmOXGP7TBW3yHnMwypYesrn34;bugly_session=eyJpdiI6InV1R3R0TmZ2S01HTkVBSGpucThXZXc9PSIsInZhbHVlIjoiam1lM3o1cVJISjNyZVJ6U3JJYzhmK1M1UVJiUlhCS1wvRTh6T1d4XC93NDdiY3FITVNJQXRpVFd6Y1BBV1wvZTBhOWR0MHBxNTlRdGNYdExoS2VWK2swckE9PSIsIm1hYyI6IjliMDExNTdmMzgyODFmNTEyYzVmMGQ3MGMxYTdjOTZmMDNjYzVjYzlkYzcxMmVjNmUyMzk4YWE2OTRmNzY4NzAifQ%3D%3D;").
+ SetHeader("Accept", "application/json;charset=utf-8").
+ SetHeader("Accept-Encoding", "gzip, deflate, br").
+ SetHeader("Accept-Language", "zh-CN,zh;q=0.9").
+ SetHeader("Connection", "keep-alive").
+ SetSuccessResult(&rsp).
+ // SetResult(&rsp).
+ Get(url)
+ if err != nil {
+ fmt.Println(err)
+ return
+ }
+ if resp.IsErrorState() {
+ fmt.Println(resp.StatusCode)
+ return
+ }
+ if len(rsp.Ret.IssueList) > 0 {
+ fmt.Println(len(rsp.Ret.IssueList))
+ } else {
+ fmt.Println(resp.String())
+ }
+
+}
+
+func cookies() []*http.Cookie {
+ var cookies []*http.Cookie
+ // var c1 http.Cookie
+ // c1.Name = "bugly-session"
+ // c1.Value = "s:qQZzQXsgw0wv_lFKAOT88ND_yh_B1f6H.au/78LCSHj5zhwqe/ljmOXGP7TBW3yHnMwypYesrn34"
+ // cookies = append(cookies, &c1)
+
+ var c3 http.Cookie
+ c3.Name = "bugly_session"
+ c3.Value = "eyJpdiI6InpwcG1uZW5XaWhrOWxpb1FEUWlVeEE9PSIsInZhbHVlIjoiK3NMd3cyZ0N0eWJSc21DRXhTRlRvME8yb0ZCdjlmcW5EMjlISmQ3XC9tXC80UDhCemVlUG1FS25LemJEb0tlSXY3MGRXQjBkVkJMVHR0TGhldHlMYStKUT09IiwibWFjIjoiZTdmZTk4MDNlZjgyZTIxNGY1NzE1YTc1YzgyMzdhZGVmYWM2YTgxNDJjMDZlNDJkODIyMjJkZGQ3ZjRkMTM4YiJ9"
+ cookies = append(cookies, &c3)
+ return cookies
+}
+
+type BuglyRsp struct {
+ Status int `json:"status"`
+ Msg string `json:"msg"`
+ Ret struct {
+ AppID string `json:"appId"`
+ PlatformID string `json:"platformId"`
+ IssueList []struct {
+ IssueID int `json:"issueId"`
+ IssueHash string `json:"issueHash"`
+ IssueCount int `json:"issueCount"`
+ CrashInfo struct {
+ CrashID string `json:"crashId"`
+ TagID int `json:"tagId"`
+ } `json:"crashInfo"`
+ IssueVersions []struct {
+ Version string `json:"version"`
+ Count int `json:"count"`
+ DeviceCount int `json:"deviceCount"`
+ } `json:"issueVersions"`
+ FtName string `json:"ftName"`
+ IssueDocMap struct {
+ ID string `json:"id"`
+ IssueID int `json:"issueId"`
+ Status int `json:"status"`
+ Count int `json:"count"`
+ SysCount int `json:"sysCount"`
+ ProductVersion string `json:"productVersion"`
+ DeviceCount int `json:"deviceCount"`
+ SysDeviceCount int `json:"sysDeviceCount"`
+ LastUpdateTime string `json:"lastUpdateTime"`
+ FirstUploadTime string `json:"firstUploadTime"`
+ LastUploadTime string `json:"lastUploadTime"`
+ ExpName string `json:"expName"`
+ ExpFingure string `json:"expFingure"`
+ IsSystemStack int `json:"isSystemStack"`
+ KeyStack string `json:"keyStack"`
+ Type string `json:"type"`
+ AverageBattery float64 `json:"averageBattery"`
+ AverageMemory float64 `json:"averageMemory"`
+ AverageSD float64 `json:"averageSD"`
+ AverageStorage float64 `json:"averageStorage"`
+ CrossVersionIssueID int `json:"crossVersionIssueId"`
+ VersionIssueIds []int `json:"versionIssueIds"`
+ SubIssueVersions string `json:"subIssueVersions"`
+ ExpMessage string `json:"expMessage"`
+ RootCount int `json:"rootCount"`
+ SysRootCount int `json:"sysRootCount"`
+ ExpAddr string `json:"expAddr"`
+ RefSdkAppID string `json:"refSdkAppId"`
+ RefSdkIssueID string `json:"refSdkIssueId"`
+ CrashRecordCount int `json:"crashRecordCount"`
+ } `json:"issueDocMap"`
+ CrossVersionIssueID int `json:"crossVersionIssueId"`
+ EsCount int `json:"esCount"`
+ EsDeviceCount int `json:"esDeviceCount"`
+ } `json:"issueList"`
+ NumFound int `json:"numFound"`
+ CrashNums int `json:"crashNums"`
+ AnrNums int `json:"anrNums"`
+ ErrorNums int `json:"errorNums"`
+ } `json:"ret"`
+}
diff --git a/test/cli/test.go b/test/cli/test.go
index 2e446c7..9adbd25 100644
--- a/test/cli/test.go
+++ b/test/cli/test.go
@@ -8,34 +8,30 @@ import (
"autogo/monkey"
"autogo/test"
"fmt"
- "net/http"
"os/exec"
"strings"
"time"
-
- "github.com/imroc/req/v3"
- "github.com/spf13/cast"
)
func main() {
- test.GetMonkeyResult()
+ test.GetSysMapping()
return
- db, err := dbsql.GetConn(dbsql.DSN_local)
- if err != nil {
- return
- }
- defer dbsql.Close(db)
- var list []models.MonkeyTask
- db.Model(models.MonkeyTask{}).Where("crash_count > 0 AND is_del = 0").Find(&list)
- str := ""
- for _, v := range list {
- str += "\"" + cast.ToString(v.Id) + "\" "
- }
- fmt.Println(str)
+ // db, err := dbsql.GetConn(dbsql.DSN_local)
+ // if err != nil {
+ // return
+ // }
+ // defer dbsql.Close(db)
+ // var list []models.MonkeyTask
+ // db.Model(models.MonkeyTask{}).Where("crash_count > 0 AND is_del = 0").Find(&list)
+ // str := ""
+ // for _, v := range list {
+ // str += "\"" + cast.ToString(v.Id) + "\" "
+ // }
+ // fmt.Println(str)
- return
- buglyHelper()
+ // return
+ test.BuglyHelper()
return
cmd := exec.Command("docker", "ps")
output, err := cmd.Output()
@@ -58,54 +54,6 @@ func main() {
fmt.Println("end")
}
-func buglyHelper() {
- var rsp BuglyRsp
- url := `https://bugly.qq.com/v2/search?start=0&userSearchPage=%2Fv2%2Fworkbench%2Fapps&pid=2&platformId=2&date=last_7_day&sortOrder=desc&useSearchTimes=3&rows=10&sortField=matchCount&appId=447d39aea1&fsn=8799e426-34c8-4a75-bd0d-1e186509eb5e`
- client := req.C().
- SetTimeout(5 * time.Second)
- resp, err := client.R().
- SetCookies(cookies()...).
- SetHeader("X-Token", "957369952").
- SetHeader("Accept", "application/json;charset=utf-8").
- SetHeader("User-Agent", "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/62.0.3202.75 Safari/537.36").
- // SetHeader("Cookie", "bugly-session=s%3AqQZzQXsgw0wv_lFKAOT88ND_yh_B1f6H.au%2F78LCSHj5zhwqe%2FljmOXGP7TBW3yHnMwypYesrn34;bugly_session=eyJpdiI6InV1R3R0TmZ2S01HTkVBSGpucThXZXc9PSIsInZhbHVlIjoiam1lM3o1cVJISjNyZVJ6U3JJYzhmK1M1UVJiUlhCS1wvRTh6T1d4XC93NDdiY3FITVNJQXRpVFd6Y1BBV1wvZTBhOWR0MHBxNTlRdGNYdExoS2VWK2swckE9PSIsIm1hYyI6IjliMDExNTdmMzgyODFmNTEyYzVmMGQ3MGMxYTdjOTZmMDNjYzVjYzlkYzcxMmVjNmUyMzk4YWE2OTRmNzY4NzAifQ%3D%3D;").
- SetHeader("Accept", "application/json;charset=utf-8").
- SetHeader("Accept-Encoding", "gzip, deflate, br").
- SetHeader("Accept-Language", "zh-CN,zh;q=0.9").
- SetHeader("Connection", "keep-alive").
- SetSuccessResult(&rsp).
- // SetResult(&rsp).
- Get(url)
- if err != nil {
- fmt.Println(err)
- return
- }
- if resp.IsErrorState() {
- fmt.Println(resp.StatusCode)
- return
- }
- if len(rsp.Ret.IssueList) > 0 {
- fmt.Println(len(rsp.Ret.IssueList))
- } else {
- fmt.Println(resp.String())
- }
-
-}
-
-func cookies() []*http.Cookie {
- var cookies []*http.Cookie
- // var c1 http.Cookie
- // c1.Name = "bugly-session"
- // c1.Value = "s:qQZzQXsgw0wv_lFKAOT88ND_yh_B1f6H.au/78LCSHj5zhwqe/ljmOXGP7TBW3yHnMwypYesrn34"
- // cookies = append(cookies, &c1)
-
- var c3 http.Cookie
- c3.Name = "bugly_session"
- c3.Value = "eyJpdiI6InV1R3R0TmZ2S01HTkVBSGpucThXZXc9PSIsInZhbHVlIjoiam1lM3o1cVJISjNyZVJ6U3JJYzhmK1M1UVJiUlhCS1wvRTh6T1d4XC93NDdiY3FITVNJQXRpVFd6Y1BBV1wvZTBhOWR0MHBxNTlRdGNYdExoS2VWK2swckE9PSIsIm1hYyI6IjliMDExNTdmMzgyODFmNTEyYzVmMGQ3MGMxYTdjOTZmMDNjYzVjYzlkYzcxMmVjNmUyMzk4YWE2OTRmNzY4NzAifQ=="
- cookies = append(cookies, &c3)
- return cookies
-}
-
func getRuntime(containerID string) {
// 执行 docker inspect 命令获取容器创建时间
@@ -190,66 +138,3 @@ func Dir() {
fmt.Println(err)
}
}
-
-type BuglyRsp struct {
- Status int `json:"status"`
- Msg string `json:"msg"`
- Ret struct {
- AppID string `json:"appId"`
- PlatformID string `json:"platformId"`
- IssueList []struct {
- IssueID int `json:"issueId"`
- IssueHash string `json:"issueHash"`
- IssueCount int `json:"issueCount"`
- CrashInfo struct {
- CrashID string `json:"crashId"`
- TagID int `json:"tagId"`
- } `json:"crashInfo"`
- IssueVersions []struct {
- Version string `json:"version"`
- Count int `json:"count"`
- DeviceCount int `json:"deviceCount"`
- } `json:"issueVersions"`
- FtName string `json:"ftName"`
- IssueDocMap struct {
- ID string `json:"id"`
- IssueID int `json:"issueId"`
- Status int `json:"status"`
- Count int `json:"count"`
- SysCount int `json:"sysCount"`
- ProductVersion string `json:"productVersion"`
- DeviceCount int `json:"deviceCount"`
- SysDeviceCount int `json:"sysDeviceCount"`
- LastUpdateTime string `json:"lastUpdateTime"`
- FirstUploadTime string `json:"firstUploadTime"`
- LastUploadTime string `json:"lastUploadTime"`
- ExpName string `json:"expName"`
- ExpFingure string `json:"expFingure"`
- IsSystemStack int `json:"isSystemStack"`
- KeyStack string `json:"keyStack"`
- Type string `json:"type"`
- AverageBattery float64 `json:"averageBattery"`
- AverageMemory float64 `json:"averageMemory"`
- AverageSD float64 `json:"averageSD"`
- AverageStorage float64 `json:"averageStorage"`
- CrossVersionIssueID int `json:"crossVersionIssueId"`
- VersionIssueIds []int `json:"versionIssueIds"`
- SubIssueVersions string `json:"subIssueVersions"`
- ExpMessage string `json:"expMessage"`
- RootCount int `json:"rootCount"`
- SysRootCount int `json:"sysRootCount"`
- ExpAddr string `json:"expAddr"`
- RefSdkAppID string `json:"refSdkAppId"`
- RefSdkIssueID string `json:"refSdkIssueId"`
- CrashRecordCount int `json:"crashRecordCount"`
- } `json:"issueDocMap"`
- CrossVersionIssueID int `json:"crossVersionIssueId"`
- EsCount int `json:"esCount"`
- EsDeviceCount int `json:"esDeviceCount"`
- } `json:"issueList"`
- NumFound int `json:"numFound"`
- CrashNums int `json:"crashNums"`
- AnrNums int `json:"anrNums"`
- ErrorNums int `json:"errorNums"`
- } `json:"ret"`
-}
diff --git a/test/monkey_result.go b/test/monkey_result.go
index 63ddc55..e0cfabb 100644
--- a/test/monkey_result.go
+++ b/test/monkey_result.go
@@ -4,7 +4,6 @@ import (
"autogo/common"
"autogo/dbsql"
"autogo/models"
- "encoding/json"
"fmt"
"strings"
@@ -12,7 +11,7 @@ import (
)
func GetMonkeyResult() {
- var res models.MonkeyResult
+ var ano models.MonkeyAnomaly
dbsql.SetDSN("Flatincbr.com")
db, err := dbsql.GetConn(dbsql.DSN_local)
if err != nil {
@@ -20,47 +19,62 @@ func GetMonkeyResult() {
return
}
defer dbsql.Close(db)
- db.Model(models.MonkeyResult{}).Last(&res)
-
- var strs []string
- json.Unmarshal([]byte(res.CrashLogs), &strs)
- if len(strs) > 0 {
- res.CrashLogList = strs
- }
- json.Unmarshal([]byte(res.ActivityNameInfo), &strs)
- if len(strs) > 0 {
- res.ActivityList = strs
- }
- json.Unmarshal([]byte(res.Logs), &strs)
- if len(strs) > 0 {
- res.LogList = strs
- }
+ db.Model(models.MonkeyAnomaly{}).Last(&ano)
var task models.MonkeyTask
- db.Table(task.TableName()).Model(models.MonkeyTask{}).Where("id = ?", res.TaskId).Last(&task)
+ db.Table(task.TableName()).Model(models.MonkeyTask{}).Where("id = ?", ano.TaskId).Last(&task)
+
+ bug_type := "Other"
+ if strings.Contains(ano.AnomalyInfos, "FATAL EXCEPTION") {
+ bug_type = "EXCEPTION"
+ }
- // buf, _ := json.Marshal(res)
- content := ""
- content += "**关联Monkey报告:** [点击查看](http://qa.flatincbr.work/#/monkey/result/" + cast.ToString(res.TaskId) + ")" + "\n\n
\n\n"
- content += "**上报时间:**" + res.CreateTime.Format("2006-01-02 15:04:05") + "\n\n
\n\n"
+ content := "**异常ID:**" + cast.ToString(ano.ID) + " "
+ 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 i, v := range strings.Split(res.CrashLogList[0], "\n") {
- content += "> " + v + "\n"
- if i > 10 {
- break
+
+ title := "【Monkey测试】"
+
+ ano.JsonReady()
+ for i, v := range ano.Anomalies {
+ for ii, vv := range strings.Split(v, "\n") {
+ content += "> " + vv + "\n"
+ 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
+ }
}
+ content += "> " + "——————————————————————" + "\n"
}
content += "> " + "(...更多请查看Monkey报告)" + "\n"
content += "\n"
- // fmt.Println(content)
- bug := common.NewBug("crushu")
- bug.SetExecutor("62733beb6918b259138d7577").
- SetInvolveMember("62733beb6918b259138d7577").
- SetTitle("【Monkey测试】测试缺陷标题byProjectName").
- SetPlatform("adr").
- SetContent(content)
+ bug := common.NewBug("crushu") //task.Project
+
+ bug.SetTitle(title).
+ SetPlatform(task.Platform).
+ SetContent(content).
+ SetCategory(common.BugCategory_Anomaly)
id, err := bug.Create()
if err != nil {
@@ -68,4 +82,6 @@ func GetMonkeyResult() {
return
}
fmt.Println("缺陷创建成功:", "https://www.teambition.com/task/"+id)
+
+ db.Table(ano.TableName()).Model(models.MonkeyAnomaly{}).Where("id = ?", ano.ID).Update("bug_id", id)
}
diff --git a/test/sys_mapping.go b/test/sys_mapping.go
new file mode 100644
index 0000000..109e554
--- /dev/null
+++ b/test/sys_mapping.go
@@ -0,0 +1,22 @@
+package test
+
+import (
+ "autogo/dbsql"
+ "autogo/models"
+ "fmt"
+)
+
+func GetSysMapping() {
+ dbsql.SetDSN("Flatincbr.com")
+ db, err := dbsql.GetConn(dbsql.DSN_local)
+ if err != nil {
+ fmt.Println(err)
+ return
+ }
+ defer dbsql.Close(db)
+
+ var list []models.SysMap
+ db.Model(models.SysMap{}).Where("name = ?", "bugly-login").Find(&list)
+
+ fmt.Println(list)
+}