changed: 测试代码

master
luziqi 3 years ago
parent 990b48146f
commit 04672e9514

@ -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"`
}

@ -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"`
}

@ -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)
// buf, _ := json.Marshal(res)
content := ""
content += "**关联Monkey报告** [点击查看](http://qa.flatincbr.work/#/monkey/result/" + cast.ToString(res.TaskId) + ")" + "\n\n<br>\n\n"
content += "**上报时间:**" + res.CreateTime.Format("2006-01-02 15:04:05") + "\n\n<br>\n\n"
bug_type := "Other"
if strings.Contains(ano.AnomalyInfos, "FATAL EXCEPTION") {
bug_type = "EXCEPTION"
}
content := "**异常ID**" + cast.ToString(ano.ID) + " "
content += "**关联Monkey报告** [点击查看](http://qa.flatincbr.work/#/monkey/result/" + cast.ToString(ano.TaskId) + ")" + "\n\n<br>\n\n"
content += "**上报时间:**" + ano.CreateTime.Format("2006-01-02 15:04:05") + "\n\n<br>\n\n"
content += "**应用版本:**" + task.Version + "\n\n<br>\n\n"
content += "**信息预览:**" + "\n\n"
for i, v := range strings.Split(res.CrashLogList[0], "\n") {
content += "> " + v + "\n"
if i > 10 {
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)
}

@ -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)
}
Loading…
Cancel
Save