From aef6e046f067022398c63faad53c178846e7cf8f Mon Sep 17 00:00:00 2001 From: wh_zcy Date: Thu, 18 May 2023 09:58:52 +0800 Subject: [PATCH] =?UTF-8?q?gui=E4=BB=BB=E5=8A=A1=E6=B5=8B=E8=AF=95?= =?UTF-8?q?=E6=8A=A5=E5=91=8A=E8=BE=93=E5=87=BA?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- cmd/v2/ui/views/rtask_testview.go | 57 ++++++++++++++++++++++++++++--- 1 file changed, 52 insertions(+), 5 deletions(-) diff --git a/cmd/v2/ui/views/rtask_testview.go b/cmd/v2/ui/views/rtask_testview.go index ef0cfe1e2..fc80e3985 100644 --- a/cmd/v2/ui/views/rtask_testview.go +++ b/cmd/v2/ui/views/rtask_testview.go @@ -1,13 +1,18 @@ package formview import ( + "bytes" "fmt" "go_dreamfactory/cmd/v2/lib/common" pb2 "go_dreamfactory/cmd/v2/lib/pb" "go_dreamfactory/cmd/v2/model" "go_dreamfactory/cmd/v2/service" + "go_dreamfactory/cmd/v2/service/observer" + "go_dreamfactory/comm" "go_dreamfactory/pb" "go_dreamfactory/utils" + "os" + "path/filepath" "strings" "sync" @@ -25,6 +30,7 @@ type RtaskTestView struct { BaseformView itemList *common.ItemList result chan int + flag bool } func (this *RtaskTestView) CreateView(t *model.TestCase) fyne.CanvasObject { @@ -34,10 +40,6 @@ func (this *RtaskTestView) CreateView(t *model.TestCase) fyne.CanvasObject { this.result = make(chan int) - go func() { - - }() - rtaskTypeInput := widget.NewEntry() paramsInput := widget.NewEntry() @@ -84,7 +86,7 @@ func (this *RtaskTestView) CreateView(t *model.TestCase) fyne.CanvasObject { autoTestForm := widget.NewForm( widget.NewFormItem("Json配置", jsonPathEntry), - widget.NewFormItem("报告目录", reportEntry), + widget.NewFormItem("报告保存", reportEntry), ) autoTestForm.OnSubmit = func() { @@ -92,6 +94,7 @@ func (this *RtaskTestView) CreateView(t *model.TestCase) fyne.CanvasObject { Path: jsonPathEntry.Text, } var wg sync.WaitGroup + var msgs []string if tb, err := cfg.NewTables(commCfg.Loader); err == nil { for _, v := range tb.RdtaskCondi.GetDataList() { wg.Add(1) @@ -116,11 +119,28 @@ func (this *RtaskTestView) CreateView(t *model.TestCase) fyne.CanvasObject { return } logrus.Debugf("执行任务 id:%v rtype:%v params:%v", condId, rtype, p) + msgs = append(msgs, fmt.Sprintf("condId:%v rtype:%v params:%v", condId, rtype, p)) }(v.Id, v.Type, p) wg.Wait() // time.Sleep(time.Millisecond * 100) } } + + record := strings.Join(msgs, "\n") + var buf bytes.Buffer + buf.WriteString(fmt.Sprintf("---任务参数测试报告---\n")) + buf.WriteString(record) + buf.WriteString("\n-------") + + file, err := os.OpenFile(filepath.Join(reportEntry.Text, "report.log"), os.O_TRUNC|os.O_CREATE, os.ModePerm) + if err != nil { + logrus.Error(err) + } + defer file.Close() + + if _, err := file.WriteString(buf.String()); err != nil { + logrus.Error(err) + } } autoTestBtn := widget.NewButton("自动触发配置", func() { @@ -145,6 +165,7 @@ func (this *RtaskTestView) CreateView(t *model.TestCase) fyne.CanvasObject { } }) + this.rtestListener() c := container.NewBorder( container.NewHBox(testBtn, autoTestBtn, autoBtn), nil, nil, nil, this.itemList.ItemList) @@ -163,3 +184,29 @@ func (this *RtaskTestView) loadProtocol() { } } + +func (this *RtaskTestView) rtestListener() { + if this.flag { + return + } + + this.obs.AddListener(observer.EVENT_REQ_RSP, observer.Listener{ + OnNotify: func(d interface{}, args ...interface{}) { + data := d.(*pb.UserMessage) + if data.MainType == string(comm.ModuleRtask) && + data.SubType == "rtest" { + rsp := &pb.RtaskTestResp{} + + if !comm.ProtoUnmarshal(data, rsp) { + logrus.Error("unmarshal err") + return + } + + if !rsp.Flag { + logrus.Debug(fmt.Sprintf("%v", rsp.Flag)) + } + } + }, + }) + this.flag = true +}