From a23b62e19853ae950ac2bf34e2db899a1f2e5c38 Mon Sep 17 00:00:00 2001 From: vearne Date: Tue, 22 Oct 2024 11:58:45 +0800 Subject: [PATCH 1/2] add html page --- internal/command/http_automate.go | 60 ++++++++++++++++++++++-- internal/command/http_call.go | 68 +++++++++++++++++++++++++++ internal/command/template/case.tpl | 36 +++++++++++++++ internal/command/template/index.tpl | 72 +++++++++++++++++++++++++++++ internal/config/config.go | 2 +- internal/resource/resource.go | 10 ++++ internal/util/util.go | 6 +++ 7 files changed, 250 insertions(+), 4 deletions(-) create mode 100644 internal/command/template/case.tpl create mode 100644 internal/command/template/index.tpl diff --git a/internal/command/http_automate.go b/internal/command/http_automate.go index 676f22f..1ec8d7c 100644 --- a/internal/command/http_automate.go +++ b/internal/command/http_automate.go @@ -2,6 +2,7 @@ package command import ( "context" + "embed" "github.com/lianggaoqiang/progress" "github.com/vearne/autotest/internal/config" "github.com/vearne/autotest/internal/model" @@ -11,6 +12,8 @@ import ( slog "github.com/vearne/simplelog" "github.com/vearne/zaplog" "go.uber.org/zap" + "html/template" + "os" "path/filepath" "sort" "strconv" @@ -18,6 +21,9 @@ import ( "time" ) +//go:embed template/*.tpl +var mytpl embed.FS + type ResultInfo struct { Total int SuccessCount int @@ -54,12 +60,12 @@ func HttpAutomateTest(httpTestCases map[string][]*config.TestCaseHttp) { slog.Info("HttpTestCases, total:%v, finishCount:%v, successCount:%v, failedCount:%v", total, finishCount, successCount, failedCount) // generate report file - GenReportFileHttp(filePath, tcResultList) + GenReportFileHttp(filePath, tcResultList, info) } slog.Info("[end]HttpTestCases, total:%v, cost:%v", total, time.Since(begin)) } -func GenReportFileHttp(testCasefilePath string, tcResultList []HttpTestCaseResult) { +func GenReportFileHttp(testCasefilePath string, tcResultList []HttpTestCaseResult, info *ResultInfo) { filename := filepath.Base(testCasefilePath) name := strings.TrimSuffix(filename, filepath.Ext(filename)) filename = name + ".csv" @@ -69,8 +75,9 @@ func GenReportFileHttp(testCasefilePath string, tcResultList []HttpTestCaseResul sort.Slice(tcResultList, func(i, j int) bool { return tcResultList[i].ID < tcResultList[j].ID }) + // 1. csv file var records [][]string - records = append(records, []string{"id", "desc", "state", "reason"}) + records = append(records, []string{"id", "description", "state", "reason"}) for _, item := range tcResultList { reasonStr := item.Reason.String() if item.Reason == model.ReasonSuccess { @@ -80,6 +87,53 @@ func GenReportFileHttp(testCasefilePath string, tcResultList []HttpTestCaseResul item.Desc, item.State.String(), reasonStr}) } util.WriterCSV(reportPath, records) + // 2. html file + dirName := util.MD5(reportDirPath + name) + obj := map[string]any{ + "info": info, + "tcResultList": tcResultList, + "dirName": dirName, + } + // index file + err := RenderTpl(mytpl, "template/index.tpl", obj, filepath.Join(reportDirPath, name+".html")) + if err != nil { + slog.Error("RenderTpl, %v", err) + return + } + + for _, item := range tcResultList { + data := map[string]any{ + "Error": item.Error, + "reqDetail": item.ReqDetail(), + "respDetail": item.RespDetail(), + } + err := RenderTpl(mytpl, "template/case.tpl", data, + filepath.Join(reportDirPath, dirName, strconv.Itoa(int(item.ID))+".html")) + if err != nil { + slog.Error("RenderTpl, %v", err) + return + } + } +} + +func RenderTpl(fs embed.FS, key string, obj map[string]any, targetPath string) error { + data, err := fs.ReadFile(key) + if err != nil { + slog.Error("mytpl.ReadFile, %v", err) + return err + } + t, err := template.New("index").Parse(string(data)) + if err != nil { + slog.Error("template Parse, %v", err) + return err + } + file, err := os.Create(targetPath) + if err != nil { + slog.Error("Create file, %v", err) + return err + } + defer file.Close() + return t.Execute(file, obj) } func HandleSingleFileHttp(workerNum int, filePath string) (*ResultInfo, []HttpTestCaseResult) { diff --git a/internal/command/http_call.go b/internal/command/http_call.go index 4a54581..84a5f19 100644 --- a/internal/command/http_call.go +++ b/internal/command/http_call.go @@ -2,6 +2,7 @@ package command import ( "context" + "fmt" "github.com/go-resty/resty/v2" "github.com/vearne/autotest/internal/config" "github.com/vearne/autotest/internal/model" @@ -9,6 +10,7 @@ import ( "github.com/vearne/executor" "github.com/vearne/zaplog" "go.uber.org/zap" + "net/url" "strings" "time" ) @@ -22,6 +24,66 @@ type HttpTestCaseResult struct { Request config.RequestHttp TestCase *config.TestCaseHttp KeyValues map[string]any + Error error + Response *resty.Response +} + +/* + POST /api/order/subscribe HTTP/1.1 + HOST: localhost:8080 + HEADERS: + Content-Type: application/json + User-Agent: go-resty/2.12.0 (https://github.com/go-resty/resty) + BODY: + { + "title": "book3_title", + "author": "book3_author" + } +*/ + +func (t *HttpTestCaseResult) ReqDetail() string { + var builder strings.Builder + builder.WriteString(fmt.Sprintf("%v %v\n", t.Request.Method, t.Request.URL)) + u, _ := url.Parse(t.Request.URL) + builder.WriteString(fmt.Sprintf("HOST: %v\n", u.Host)) + builder.WriteString("HEADERS:\n") + for _, item := range t.Request.Headers { + builder.WriteString(fmt.Sprintf("%v\n", item)) + } + builder.WriteString("BODY:\n") + builder.WriteString(fmt.Sprintf("%v\n", t.Request.Body)) + return builder.String() +} + +/* + STATUS : 200 OK + PROTO : HTTP/1.1 + RECEIVED AT : 2024-10-17T17:05:05.156315+08:00 + TIME DURATION: 38.354958ms + HEADERS : + Content-Length: 17 + Content-Type: application/json; charset=utf-8 + Date: Thu, 17 Oct 2024 09:05:05 GMT + BODY : + { + "code": "E000" + } +*/ + +func (t *HttpTestCaseResult) RespDetail() string { + if t.Response == nil { + return "" + } + + var builder strings.Builder + builder.WriteString(fmt.Sprintf("STATUS: %v %v\n", t.Response.StatusCode, t.Response.Status)) + builder.WriteString("HEADERS:\n") + for key, values := range t.Response.Header() { + builder.WriteString(fmt.Sprintf("%v: %v\n", key, strings.Join(values, ","))) + } + builder.WriteString("BODY:\n") + builder.WriteString(fmt.Sprintf("%v\n", t.Response.String())) + return builder.String() } type HttpTestCallable struct { @@ -40,6 +102,8 @@ func (m *HttpTestCallable) Call(ctx context.Context) *executor.GPResult { Reason: model.ReasonSuccess, TestCase: m.testcase, KeyValues: map[string]any{}, + Error: nil, + Response: nil, } // 1. Check other test cases of dependencies @@ -75,6 +139,7 @@ func (m *HttpTestCallable) Call(ctx context.Context) *executor.GPResult { if err != nil { tcResult.State = model.StateFailed tcResult.Reason = model.ReasonTemplateRenderError + tcResult.Error = err r.Value = tcResult r.Err = err return &r @@ -119,11 +184,14 @@ func (m *HttpTestCallable) Call(ctx context.Context) *executor.GPResult { ) tcResult.State = model.StateFailed tcResult.Reason = model.ReasonRequestFailed + tcResult.Error = err r.Value = tcResult r.Err = err return &r } + tcResult.Response = out + // 6. export if m.testcase.Export != nil { exportConfig := m.testcase.Export diff --git a/internal/command/template/case.tpl b/internal/command/template/case.tpl new file mode 100644 index 0000000..880b943 --- /dev/null +++ b/internal/command/template/case.tpl @@ -0,0 +1,36 @@ + + + + + + HTTP Request and Response Display + + + +

HTTP Request and Response Display

+ +
+
~~~ REQUEST ~~~
+
+    {{ .reqDetail }}
+    
+
+ +
+
~~~ RESPONSE ~~~
+ {{if .Error}} + + {{else}} +
+        {{ .respDetail }}
+        
+ {{end}} +
+ + \ No newline at end of file diff --git a/internal/command/template/index.tpl b/internal/command/template/index.tpl new file mode 100644 index 0000000..d7ff394 --- /dev/null +++ b/internal/command/template/index.tpl @@ -0,0 +1,72 @@ + + + + + + Styled Table Example + + + + + + + + + + + + + + + + + {{range .tcResultList}} + + + + + + + + {{end}} + +
FinishCount: {{.info.Total}}, SuccessCount: {{.info.SuccessCount}}, FailedCount: {{.info.FailedCount}}
iddescriptionstatereasoncontent
{{ .ID }}{{ .Desc }}{{ .State.String() }}{{ .Reason.String() }}View Details
+ + + \ No newline at end of file diff --git a/internal/config/config.go b/internal/config/config.go index 938ae8d..2aeecb8 100644 --- a/internal/config/config.go +++ b/internal/config/config.go @@ -17,7 +17,7 @@ type AutoTestConfig struct { } `yaml:"logger"` Report struct { DirPath string `yaml:"dir_path"` - } + } `yaml:"report"` } `yaml:"global"` HttpRuleFiles []string `yaml:"http_rule_files"` diff --git a/internal/resource/resource.go b/internal/resource/resource.go index 0f8555d..be928cb 100644 --- a/internal/resource/resource.go +++ b/internal/resource/resource.go @@ -14,6 +14,7 @@ import ( "net/http" "os" "path/filepath" + "strconv" "strings" "sync" "sync/atomic" @@ -223,6 +224,15 @@ func ParseConfigFile(filePath string) error { GlobalConfig.GrpcRuleFiles[idx] = absolutePath } + // 3) modify report path + newPath := filepath.Join(GlobalConfig.Global.Report.DirPath, "autotest_"+strconv.Itoa(int(time.Now().Unix()))) + // 创建单个文件夹 + err = os.Mkdir("newPath", 0755) + if err != nil { + return err + } + + GlobalConfig.Global.Report.DirPath = newPath slog.Info("[end]ParseConfigFile") return nil } diff --git a/internal/util/util.go b/internal/util/util.go index 0b244d4..4af90ce 100644 --- a/internal/util/util.go +++ b/internal/util/util.go @@ -1,7 +1,9 @@ package util import ( + "crypto/md5" "encoding/csv" + "fmt" slog "github.com/vearne/simplelog" "os" ) @@ -24,3 +26,7 @@ func WriterCSV(path string, records [][]string) { writer.Flush() slog.Info("write report file:%v", path) } + +func MD5(data string) string { + return fmt.Sprintf("%x", md5.Sum([]byte(data))) +} From 75ae40fa9bac3257605d619a5f6368eca4c6cd24 Mon Sep 17 00:00:00 2001 From: vearne Date: Tue, 22 Oct 2024 16:21:01 +0800 Subject: [PATCH 2/2] support html report --- README.md | 2 ++ README_zh.md | 2 ++ config_files/autotest.yml | 6 ++--- go.mod | 2 +- go.sum | 2 ++ img/result_html.jpg | Bin 0 -> 154506 bytes internal/command/http_automate.go | 34 ++++++++++++++++++++++++++-- internal/command/http_call.go | 4 ++-- internal/command/template/case.tpl | 12 ++++------ internal/command/template/index.tpl | 18 +++++++++------ internal/resource/resource.go | 2 +- 11 files changed, 60 insertions(+), 24 deletions(-) create mode 100644 img/result_html.jpg diff --git a/README.md b/README.md index 4b58310..5910b1d 100644 --- a/README.md +++ b/README.md @@ -95,6 +95,8 @@ autotest extract -x "//title" -j '[ } ]' ``` +## Test Report +![report](https://github.com/vearne/autotest/raw/main/img/result_html.jpg) ## TODO * [x] 1) support utilizing the script language Lua to ascertain the conformity of HTTP responses with expectations. diff --git a/README_zh.md b/README_zh.md index 0eca281..8ca5628 100644 --- a/README_zh.md +++ b/README_zh.md @@ -92,6 +92,8 @@ autotest extract -x "//title" -j '[ } ]' ``` +## 测试报告 +![report](https://github.com/vearne/autotest/raw/main/img/result_html.jpg) ## TODO * [x] 1) 支持使用脚本语言Lua判断HTTP response是否符合预期 diff --git a/config_files/autotest.yml b/config_files/autotest.yml index dbb9e10..c1793a0 100644 --- a/config_files/autotest.yml +++ b/config_files/autotest.yml @@ -4,7 +4,7 @@ global: worker_num: 5 # default: true ignore_testcase_fail: true - debug: true + debug: false # Timeout setting for each request request_timeout: 5s @@ -20,8 +20,8 @@ global: http_rule_files: - "./config_files/my_http_api.yml" -grpc_rule_files: - - "./config_files/my_grpc_api.yml" +#grpc_rule_files: +# - "./config_files/my_grpc_api.yml" diff --git a/go.mod b/go.mod index 640d77f..550d00e 100644 --- a/go.mod +++ b/go.mod @@ -11,7 +11,7 @@ require ( github.com/golang/protobuf v1.5.4 github.com/jhump/protoreflect v1.16.0 github.com/lianggaoqiang/progress v0.0.1 - github.com/spf13/cast v1.6.0 + github.com/spf13/cast v1.7.0 github.com/stretchr/testify v1.9.0 github.com/urfave/cli/v3 v3.0.0-alpha9 github.com/vearne/executor v0.0.3 diff --git a/go.sum b/go.sum index 95bfcfe..68fe9f7 100644 --- a/go.sum +++ b/go.sum @@ -61,6 +61,8 @@ github.com/rogpeppe/go-internal v1.10.0 h1:TMyTOH3F/DB16zRVcYyreMH6GnZZrwQVAoYjR github.com/rogpeppe/go-internal v1.10.0/go.mod h1:UQnix2H7Ngw/k4C5ijL5+65zddjncjaFoBhdsK/akog= github.com/spf13/cast v1.6.0 h1:GEiTHELF+vaR5dhz3VqZfFSzZjYbgeKDpBxQVS4GYJ0= github.com/spf13/cast v1.6.0/go.mod h1:ancEpBxwJDODSW/UG4rDrAqiKolqNNh2DX3mk86cAdo= +github.com/spf13/cast v1.7.0 h1:ntdiHjuueXFgm5nzDRdOS4yfT43P5Fnud6DH50rz/7w= +github.com/spf13/cast v1.7.0/go.mod h1:ancEpBxwJDODSW/UG4rDrAqiKolqNNh2DX3mk86cAdo= github.com/stretchr/objx v0.1.0/go.mod h1:HFkY916IF+rwdDfMAkV7OtwuqBVzrE8GR6GFx+wExME= github.com/stretchr/objx v0.4.0/go.mod h1:YvHI0jy2hoMjB+UWwv71VJQ9isScKT/TqJzVSSt89Yw= github.com/stretchr/objx v0.5.0/go.mod h1:Yh+to48EsGEfYuaHDzXPcE3xhTkx73EhmCGUpEOglKo= diff --git a/img/result_html.jpg b/img/result_html.jpg new file mode 100644 index 0000000000000000000000000000000000000000..614cf05e05bc79323d4ed5dfed3919f30765e12e GIT binary patch literal 154506 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

v6)Alw^#9!G9Nd4WqCXXxLJC@ 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 B?_U4_ literal 0 HcmV?d00001 diff --git a/internal/command/http_automate.go b/internal/command/http_automate.go index 1ec8d7c..52a3d18 100644 --- a/internal/command/http_automate.go +++ b/internal/command/http_automate.go @@ -3,6 +3,7 @@ package command import ( "context" "embed" + "fmt" "github.com/lianggaoqiang/progress" "github.com/vearne/autotest/internal/config" "github.com/vearne/autotest/internal/model" @@ -30,6 +31,14 @@ type ResultInfo struct { FailedCount int } +type CaseShow struct { + ID uint64 + Description string + State string + Reason string + Link string +} + func HttpAutomateTest(httpTestCases map[string][]*config.TestCaseHttp) { total := 0 for _, testcases := range httpTestCases { @@ -89,10 +98,17 @@ func GenReportFileHttp(testCasefilePath string, tcResultList []HttpTestCaseResul util.WriterCSV(reportPath, records) // 2. html file dirName := util.MD5(reportDirPath + name) + + var caseResults []CaseShow + for _, item := range tcResultList { + caseResults = append(caseResults, CaseShow{ID: item.ID, Description: item.Desc, + State: item.State.String(), Reason: item.Reason.String(), + Link: fmt.Sprintf("./%v/%v.html", dirName, item.ID)}) + } + obj := map[string]any{ "info": info, - "tcResultList": tcResultList, - "dirName": dirName, + "tcResultList": caseResults, } // index file err := RenderTpl(mytpl, "template/index.tpl", obj, filepath.Join(reportDirPath, name+".html")) @@ -127,6 +143,14 @@ func RenderTpl(fs embed.FS, key string, obj map[string]any, targetPath string) e slog.Error("template Parse, %v", err) return err } + dirPath := filepath.Dir(targetPath) + if !pathExists(dirPath) { + err = os.Mkdir(dirPath, 0755) + if err != nil { + return err + } + } + file, err := os.Create(targetPath) if err != nil { slog.Error("Create file, %v", err) @@ -136,6 +160,12 @@ func RenderTpl(fs embed.FS, key string, obj map[string]any, targetPath string) e return t.Execute(file, obj) } +func pathExists(path string) bool { + _, err := os.Stat(path) + // os.IsNotExist 判断错误是否为文件或目录不存在 + return !os.IsNotExist(err) +} + func HandleSingleFileHttp(workerNum int, filePath string) (*ResultInfo, []HttpTestCaseResult) { workerNum = min(workerNum, 10) testcases := resource.HttpTestCases[filePath] diff --git a/internal/command/http_call.go b/internal/command/http_call.go index 84a5f19..bc6acef 100644 --- a/internal/command/http_call.go +++ b/internal/command/http_call.go @@ -43,7 +43,7 @@ type HttpTestCaseResult struct { func (t *HttpTestCaseResult) ReqDetail() string { var builder strings.Builder - builder.WriteString(fmt.Sprintf("%v %v\n", t.Request.Method, t.Request.URL)) + builder.WriteString(fmt.Sprintf("%v %v\n", strings.ToUpper(t.Request.Method), t.Request.URL)) u, _ := url.Parse(t.Request.URL) builder.WriteString(fmt.Sprintf("HOST: %v\n", u.Host)) builder.WriteString("HEADERS:\n") @@ -76,7 +76,7 @@ func (t *HttpTestCaseResult) RespDetail() string { } var builder strings.Builder - builder.WriteString(fmt.Sprintf("STATUS: %v %v\n", t.Response.StatusCode, t.Response.Status)) + builder.WriteString(fmt.Sprintf("STATUS: %v\n", t.Response.Status())) builder.WriteString("HEADERS:\n") for key, values := range t.Response.Header() { builder.WriteString(fmt.Sprintf("%v: %v\n", key, strings.Join(values, ","))) diff --git a/internal/command/template/case.tpl b/internal/command/template/case.tpl index 880b943..caf64bc 100644 --- a/internal/command/template/case.tpl +++ b/internal/command/template/case.tpl @@ -17,19 +17,15 @@

~~~ RESPONSE ~~~
- {{if .Error}} - + {{ if .Error }} + {{ .Error }} {{else}} -
-        {{ .respDetail }}
-        
+
{{ .respDetail }}
{{end}}
diff --git a/internal/command/template/index.tpl b/internal/command/template/index.tpl index d7ff394..2e2b2c3 100644 --- a/internal/command/template/index.tpl +++ b/internal/command/template/index.tpl @@ -45,7 +45,7 @@ - + @@ -56,13 +56,17 @@ - {{range .tcResultList}} + {{ range $index, $element := .tcResultList}} - - - - - + + + + + {{end}} diff --git a/internal/resource/resource.go b/internal/resource/resource.go index be928cb..54927f0 100644 --- a/internal/resource/resource.go +++ b/internal/resource/resource.go @@ -227,7 +227,7 @@ func ParseConfigFile(filePath string) error { // 3) modify report path newPath := filepath.Join(GlobalConfig.Global.Report.DirPath, "autotest_"+strconv.Itoa(int(time.Now().Unix()))) // 创建单个文件夹 - err = os.Mkdir("newPath", 0755) + err = os.Mkdir(newPath, 0755) if err != nil { return err }
FinishCount: {{.info.Total}}, SuccessCount: {{.info.SuccessCount}}, FailedCount: {{.info.FailedCount}}Total: {{.info.Total}}, SuccessCount: {{.info.SuccessCount}}, FailedCount: {{.info.FailedCount}}
id
{{ .ID }}{{ .Desc }}{{ .State.String() }}{{ .Reason.String() }}View Details{{ $element.ID }}{{ $element.Description }}{{ $element.State }}{{ $element.Reason }} + {{ if ne $element.Reason "ReasonDependentItemFailed" }} + View Details + {{ end }} +