From f3e5f3ac854ad472003b38d6f24f00b86a7f86d6 Mon Sep 17 00:00:00 2001 From: "lilong.129" Date: Tue, 6 Jun 2023 20:38:43 +0800 Subject: [PATCH] feat: add hrp.Run wrapper --- examples/uitest/demo_android_feed_swipe_test.go | 3 +-- examples/uitest/demo_android_live_swipe_test.go | 3 +-- examples/uitest/demo_android_video_crawler.json | 8 ++++---- examples/uitest/demo_android_video_crawler_test.go | 6 ++---- examples/uitest/demo_douyin_follow_live_test.go | 3 +-- examples/uitest/demo_ios_live_swipe_test.go | 3 +-- examples/uitest/demo_kuaishou_test.go | 3 +-- examples/uitest/demo_weixin_test.go | 3 +-- examples/uitest/ios_kuaishou_follow_live_test.go | 6 +----- examples/uitest/wda_log_test.go | 3 +-- examples/worldcup/main_test.go | 3 +-- hrp/cmd/cli/main.go | 5 ++++- hrp/internal/code/code.go | 12 +++++++----- hrp/runner.go | 14 +++++--------- 14 files changed, 31 insertions(+), 44 deletions(-) diff --git a/examples/uitest/demo_android_feed_swipe_test.go b/examples/uitest/demo_android_feed_swipe_test.go index c2a024c3..1a95eb2d 100644 --- a/examples/uitest/demo_android_feed_swipe_test.go +++ b/examples/uitest/demo_android_feed_swipe_test.go @@ -54,8 +54,7 @@ func TestAndroidDouyinFeedTest(t *testing.T) { t.Fatal(err) } - runner := hrp.NewRunner(t).SetSaveTests(true) - err := runner.Run(testCase) + err := hrp.Run(t, testCase) if err != nil { t.Fatal(err) } diff --git a/examples/uitest/demo_android_live_swipe_test.go b/examples/uitest/demo_android_live_swipe_test.go index f8d9448b..0666d6da 100644 --- a/examples/uitest/demo_android_live_swipe_test.go +++ b/examples/uitest/demo_android_live_swipe_test.go @@ -51,8 +51,7 @@ func TestAndroidLiveSwipeTest(t *testing.T) { t.Fatal(err) } - runner := hrp.NewRunner(t).SetSaveTests(true) - err := runner.Run(testCase) + err := hrp.Run(t, testCase) if err != nil { t.Fatal(err) } diff --git a/examples/uitest/demo_android_video_crawler.json b/examples/uitest/demo_android_video_crawler.json index ce65f138..6ad87edd 100644 --- a/examples/uitest/demo_android_video_crawler.json +++ b/examples/uitest/demo_android_video_crawler.json @@ -18,7 +18,7 @@ { "method": "video_crawler", "params": { - "app_package_name": "com.smile.gifmaker", + "app_package_name": "com.ss.android.ugc.aweme", "feed": { "sleep_random": [ 0, @@ -38,7 +38,7 @@ 1, 1 ], - "target": 0, + "target": 1, "text": "^广告$" }, { @@ -49,7 +49,7 @@ 1, 1 ], - "target": 0, + "target": 1, "text": "^图文$" }, { @@ -89,7 +89,7 @@ 15, 20 ], - "target_count": 0 + "target_count": 3 }, "timeout": 600 } diff --git a/examples/uitest/demo_android_video_crawler_test.go b/examples/uitest/demo_android_video_crawler_test.go index 3ce48f88..406cedf8 100644 --- a/examples/uitest/demo_android_video_crawler_test.go +++ b/examples/uitest/demo_android_video_crawler_test.go @@ -50,8 +50,7 @@ func TestAndroidVideoCrawlerTest(t *testing.T) { t.Fatal(err) } - runner := hrp.NewRunner(t).SetSaveTests(true) - err := runner.Run(testCase) + err := hrp.Run(t, testCase) if err != nil { t.Fatal(err) } @@ -96,8 +95,7 @@ func TestAndroidVideoCrawlerKSTest(t *testing.T) { t.Fatal(err) } - runner := hrp.NewRunner(t).SetSaveTests(true) - err := runner.Run(testCase) + err := hrp.Run(t, testCase) if err != nil { t.Fatal(err) } diff --git a/examples/uitest/demo_douyin_follow_live_test.go b/examples/uitest/demo_douyin_follow_live_test.go index d87f1da9..a749f709 100644 --- a/examples/uitest/demo_douyin_follow_live_test.go +++ b/examples/uitest/demo_douyin_follow_live_test.go @@ -48,8 +48,7 @@ func TestIOSDouyinFollowLive(t *testing.T) { t.Fatal(err) } - runner := hrp.NewRunner(t).SetSaveTests(true) - err := runner.Run(testCase) + err := hrp.Run(t, testCase) if err != nil { t.Fatal(err) } diff --git a/examples/uitest/demo_ios_live_swipe_test.go b/examples/uitest/demo_ios_live_swipe_test.go index 575edc58..5608aacd 100644 --- a/examples/uitest/demo_ios_live_swipe_test.go +++ b/examples/uitest/demo_ios_live_swipe_test.go @@ -49,8 +49,7 @@ func TestIOSDouyinLive(t *testing.T) { t.Fatal(err) } - runner := hrp.NewRunner(t).SetSaveTests(true) - err := runner.Run(testCase) + err := hrp.Run(t, testCase) if err != nil { t.Fatal(err) } diff --git a/examples/uitest/demo_kuaishou_test.go b/examples/uitest/demo_kuaishou_test.go index 2cc179aa..5b64f228 100644 --- a/examples/uitest/demo_kuaishou_test.go +++ b/examples/uitest/demo_kuaishou_test.go @@ -60,8 +60,7 @@ func TestAndroidKuaiShouFeedCardLive(t *testing.T) { t.Fatal(err) } - runner := hrp.NewRunner(t).SetSaveTests(true) - err := runner.Run(testCase) + err := hrp.Run(t, testCase) if err != nil { t.Fatal(err) } diff --git a/examples/uitest/demo_weixin_test.go b/examples/uitest/demo_weixin_test.go index 133ae18c..da067aba 100644 --- a/examples/uitest/demo_weixin_test.go +++ b/examples/uitest/demo_weixin_test.go @@ -45,8 +45,7 @@ func TestIOSWeixinLive(t *testing.T) { t.Fatal(err) } - runner := hrp.NewRunner(t).SetSaveTests(true) - err := runner.Run(testCase) + err := hrp.Run(t, testCase) if err != nil { t.Fatal(err) } diff --git a/examples/uitest/ios_kuaishou_follow_live_test.go b/examples/uitest/ios_kuaishou_follow_live_test.go index 4fdf837d..9c5959b0 100644 --- a/examples/uitest/ios_kuaishou_follow_live_test.go +++ b/examples/uitest/ios_kuaishou_follow_live_test.go @@ -53,12 +53,8 @@ func TestIOSKuaiShouLive(t *testing.T) { if err := testCase.Dump2JSON("ios_kuaishou_follow_live_test.json"); err != nil { t.Fatal(err) } - if err := testCase.Dump2YAML("ios_kuaishou_follow_live_test.yaml"); err != nil { - t.Fatal(err) - } - runner := hrp.NewRunner(t).SetSaveTests(true) - err := runner.Run(testCase) + err := hrp.Run(t, testCase) if err != nil { t.Fatal(err) } diff --git a/examples/uitest/wda_log_test.go b/examples/uitest/wda_log_test.go index 39943f09..13c16513 100644 --- a/examples/uitest/wda_log_test.go +++ b/examples/uitest/wda_log_test.go @@ -55,8 +55,7 @@ func TestWDALog(t *testing.T) { t.Fatal(err) } - runner := hrp.NewRunner(t).SetSaveTests(true) - err := runner.Run(testCase) + err := hrp.Run(t, testCase) if err != nil { t.Fatal(err) } diff --git a/examples/worldcup/main_test.go b/examples/worldcup/main_test.go index ce54be59..2bf9966a 100644 --- a/examples/worldcup/main_test.go +++ b/examples/worldcup/main_test.go @@ -102,8 +102,7 @@ func TestIOSDouyinWorldCupLive(t *testing.T) { }, } - runner := hrp.NewRunner(t).SetSaveTests(true) - err := runner.Run(testCase) + err := hrp.Run(t, testCase) if err != nil { t.Fatal(err) } diff --git a/hrp/cmd/cli/main.go b/hrp/cmd/cli/main.go index 453891a1..b6532fd5 100644 --- a/hrp/cmd/cli/main.go +++ b/hrp/cmd/cli/main.go @@ -5,6 +5,7 @@ import ( "time" "github.com/getsentry/sentry-go" + "github.com/rs/zerolog/log" "github.com/httprunner/httprunner/v4/hrp/cmd" ) @@ -21,5 +22,7 @@ func main() { } }() - os.Exit(cmd.Execute()) + exitCode := cmd.Execute() + log.Info().Int("code", exitCode).Msg("hrp exit") + os.Exit(exitCode) } diff --git a/hrp/internal/code/code.go b/hrp/internal/code/code.go index 3e9d74c1..2632291b 100644 --- a/hrp/internal/code/code.go +++ b/hrp/internal/code/code.go @@ -155,18 +155,20 @@ func IsErrorPredefined(err error) bool { return ok } -func GetErrorCode(err error) (exitCode int) { +func GetErrorCode(err error) (errCode int) { + defer func() { + log.Debug().Int("code", errCode).Msg("get error code") + }() + if err == nil { return Success } e := errors.Cause(err) if code, ok := errorsMap[e]; ok { - exitCode = code + errCode = code } else { - exitCode = GeneralFail + errCode = GeneralFail } - - log.Warn().Int("code", exitCode).Msg("hrp exit") return } diff --git a/hrp/runner.go b/hrp/runner.go index 98569ec8..829092cd 100644 --- a/hrp/runner.go +++ b/hrp/runner.go @@ -30,10 +30,11 @@ import ( "github.com/httprunner/httprunner/v4/hrp/pkg/uixt" ) -// Run starts to run API test with default configs. -func Run(testcases ...ITestCase) error { - t := &testing.T{} - return NewRunner(t).SetRequestsLogOn().Run(testcases...) +// Run starts to run testcase with default configs. +func Run(t *testing.T, testcases ...ITestCase) error { + err := NewRunner(t).SetSaveTests(true).Run(testcases...) + code.GetErrorCode(err) + return err } // NewRunner constructs a new runner instance. @@ -204,11 +205,6 @@ func (r *HRPRunner) Run(testcases ...ITestCase) (err error) { // record execution data to summary s := newOutSummary() - defer func() { - exitCode := code.GetErrorCode(err) - log.Info().Int("code", exitCode).Msg("hrp runner exit code") - }() - // load all testcases testCases, err := LoadTestCases(testcases...) if err != nil {