mirror of
https://github.com/httprunner/httprunner.git
synced 2026-09-05 23:51:25 +08:00
feat: add hrp.Run wrapper
This commit is contained in:
@@ -54,8 +54,7 @@ func TestAndroidDouyinFeedTest(t *testing.T) {
|
|||||||
t.Fatal(err)
|
t.Fatal(err)
|
||||||
}
|
}
|
||||||
|
|
||||||
runner := hrp.NewRunner(t).SetSaveTests(true)
|
err := hrp.Run(t, testCase)
|
||||||
err := runner.Run(testCase)
|
|
||||||
if err != nil {
|
if err != nil {
|
||||||
t.Fatal(err)
|
t.Fatal(err)
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -51,8 +51,7 @@ func TestAndroidLiveSwipeTest(t *testing.T) {
|
|||||||
t.Fatal(err)
|
t.Fatal(err)
|
||||||
}
|
}
|
||||||
|
|
||||||
runner := hrp.NewRunner(t).SetSaveTests(true)
|
err := hrp.Run(t, testCase)
|
||||||
err := runner.Run(testCase)
|
|
||||||
if err != nil {
|
if err != nil {
|
||||||
t.Fatal(err)
|
t.Fatal(err)
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -18,7 +18,7 @@
|
|||||||
{
|
{
|
||||||
"method": "video_crawler",
|
"method": "video_crawler",
|
||||||
"params": {
|
"params": {
|
||||||
"app_package_name": "com.smile.gifmaker",
|
"app_package_name": "com.ss.android.ugc.aweme",
|
||||||
"feed": {
|
"feed": {
|
||||||
"sleep_random": [
|
"sleep_random": [
|
||||||
0,
|
0,
|
||||||
@@ -38,7 +38,7 @@
|
|||||||
1,
|
1,
|
||||||
1
|
1
|
||||||
],
|
],
|
||||||
"target": 0,
|
"target": 1,
|
||||||
"text": "^广告$"
|
"text": "^广告$"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
@@ -49,7 +49,7 @@
|
|||||||
1,
|
1,
|
||||||
1
|
1
|
||||||
],
|
],
|
||||||
"target": 0,
|
"target": 1,
|
||||||
"text": "^图文$"
|
"text": "^图文$"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
@@ -89,7 +89,7 @@
|
|||||||
15,
|
15,
|
||||||
20
|
20
|
||||||
],
|
],
|
||||||
"target_count": 0
|
"target_count": 3
|
||||||
},
|
},
|
||||||
"timeout": 600
|
"timeout": 600
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -50,8 +50,7 @@ func TestAndroidVideoCrawlerTest(t *testing.T) {
|
|||||||
t.Fatal(err)
|
t.Fatal(err)
|
||||||
}
|
}
|
||||||
|
|
||||||
runner := hrp.NewRunner(t).SetSaveTests(true)
|
err := hrp.Run(t, testCase)
|
||||||
err := runner.Run(testCase)
|
|
||||||
if err != nil {
|
if err != nil {
|
||||||
t.Fatal(err)
|
t.Fatal(err)
|
||||||
}
|
}
|
||||||
@@ -96,8 +95,7 @@ func TestAndroidVideoCrawlerKSTest(t *testing.T) {
|
|||||||
t.Fatal(err)
|
t.Fatal(err)
|
||||||
}
|
}
|
||||||
|
|
||||||
runner := hrp.NewRunner(t).SetSaveTests(true)
|
err := hrp.Run(t, testCase)
|
||||||
err := runner.Run(testCase)
|
|
||||||
if err != nil {
|
if err != nil {
|
||||||
t.Fatal(err)
|
t.Fatal(err)
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -48,8 +48,7 @@ func TestIOSDouyinFollowLive(t *testing.T) {
|
|||||||
t.Fatal(err)
|
t.Fatal(err)
|
||||||
}
|
}
|
||||||
|
|
||||||
runner := hrp.NewRunner(t).SetSaveTests(true)
|
err := hrp.Run(t, testCase)
|
||||||
err := runner.Run(testCase)
|
|
||||||
if err != nil {
|
if err != nil {
|
||||||
t.Fatal(err)
|
t.Fatal(err)
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -49,8 +49,7 @@ func TestIOSDouyinLive(t *testing.T) {
|
|||||||
t.Fatal(err)
|
t.Fatal(err)
|
||||||
}
|
}
|
||||||
|
|
||||||
runner := hrp.NewRunner(t).SetSaveTests(true)
|
err := hrp.Run(t, testCase)
|
||||||
err := runner.Run(testCase)
|
|
||||||
if err != nil {
|
if err != nil {
|
||||||
t.Fatal(err)
|
t.Fatal(err)
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -60,8 +60,7 @@ func TestAndroidKuaiShouFeedCardLive(t *testing.T) {
|
|||||||
t.Fatal(err)
|
t.Fatal(err)
|
||||||
}
|
}
|
||||||
|
|
||||||
runner := hrp.NewRunner(t).SetSaveTests(true)
|
err := hrp.Run(t, testCase)
|
||||||
err := runner.Run(testCase)
|
|
||||||
if err != nil {
|
if err != nil {
|
||||||
t.Fatal(err)
|
t.Fatal(err)
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -45,8 +45,7 @@ func TestIOSWeixinLive(t *testing.T) {
|
|||||||
t.Fatal(err)
|
t.Fatal(err)
|
||||||
}
|
}
|
||||||
|
|
||||||
runner := hrp.NewRunner(t).SetSaveTests(true)
|
err := hrp.Run(t, testCase)
|
||||||
err := runner.Run(testCase)
|
|
||||||
if err != nil {
|
if err != nil {
|
||||||
t.Fatal(err)
|
t.Fatal(err)
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -53,12 +53,8 @@ func TestIOSKuaiShouLive(t *testing.T) {
|
|||||||
if err := testCase.Dump2JSON("ios_kuaishou_follow_live_test.json"); err != nil {
|
if err := testCase.Dump2JSON("ios_kuaishou_follow_live_test.json"); err != nil {
|
||||||
t.Fatal(err)
|
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 := hrp.Run(t, testCase)
|
||||||
err := runner.Run(testCase)
|
|
||||||
if err != nil {
|
if err != nil {
|
||||||
t.Fatal(err)
|
t.Fatal(err)
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -55,8 +55,7 @@ func TestWDALog(t *testing.T) {
|
|||||||
t.Fatal(err)
|
t.Fatal(err)
|
||||||
}
|
}
|
||||||
|
|
||||||
runner := hrp.NewRunner(t).SetSaveTests(true)
|
err := hrp.Run(t, testCase)
|
||||||
err := runner.Run(testCase)
|
|
||||||
if err != nil {
|
if err != nil {
|
||||||
t.Fatal(err)
|
t.Fatal(err)
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -102,8 +102,7 @@ func TestIOSDouyinWorldCupLive(t *testing.T) {
|
|||||||
},
|
},
|
||||||
}
|
}
|
||||||
|
|
||||||
runner := hrp.NewRunner(t).SetSaveTests(true)
|
err := hrp.Run(t, testCase)
|
||||||
err := runner.Run(testCase)
|
|
||||||
if err != nil {
|
if err != nil {
|
||||||
t.Fatal(err)
|
t.Fatal(err)
|
||||||
}
|
}
|
||||||
|
|||||||
+4
-1
@@ -5,6 +5,7 @@ import (
|
|||||||
"time"
|
"time"
|
||||||
|
|
||||||
"github.com/getsentry/sentry-go"
|
"github.com/getsentry/sentry-go"
|
||||||
|
"github.com/rs/zerolog/log"
|
||||||
|
|
||||||
"github.com/httprunner/httprunner/v4/hrp/cmd"
|
"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)
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -155,18 +155,20 @@ func IsErrorPredefined(err error) bool {
|
|||||||
return ok
|
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 {
|
if err == nil {
|
||||||
return Success
|
return Success
|
||||||
}
|
}
|
||||||
|
|
||||||
e := errors.Cause(err)
|
e := errors.Cause(err)
|
||||||
if code, ok := errorsMap[e]; ok {
|
if code, ok := errorsMap[e]; ok {
|
||||||
exitCode = code
|
errCode = code
|
||||||
} else {
|
} else {
|
||||||
exitCode = GeneralFail
|
errCode = GeneralFail
|
||||||
}
|
}
|
||||||
|
|
||||||
log.Warn().Int("code", exitCode).Msg("hrp exit")
|
|
||||||
return
|
return
|
||||||
}
|
}
|
||||||
|
|||||||
+5
-9
@@ -30,10 +30,11 @@ import (
|
|||||||
"github.com/httprunner/httprunner/v4/hrp/pkg/uixt"
|
"github.com/httprunner/httprunner/v4/hrp/pkg/uixt"
|
||||||
)
|
)
|
||||||
|
|
||||||
// Run starts to run API test with default configs.
|
// Run starts to run testcase with default configs.
|
||||||
func Run(testcases ...ITestCase) error {
|
func Run(t *testing.T, testcases ...ITestCase) error {
|
||||||
t := &testing.T{}
|
err := NewRunner(t).SetSaveTests(true).Run(testcases...)
|
||||||
return NewRunner(t).SetRequestsLogOn().Run(testcases...)
|
code.GetErrorCode(err)
|
||||||
|
return err
|
||||||
}
|
}
|
||||||
|
|
||||||
// NewRunner constructs a new runner instance.
|
// NewRunner constructs a new runner instance.
|
||||||
@@ -204,11 +205,6 @@ func (r *HRPRunner) Run(testcases ...ITestCase) (err error) {
|
|||||||
// record execution data to summary
|
// record execution data to summary
|
||||||
s := newOutSummary()
|
s := newOutSummary()
|
||||||
|
|
||||||
defer func() {
|
|
||||||
exitCode := code.GetErrorCode(err)
|
|
||||||
log.Info().Int("code", exitCode).Msg("hrp runner exit code")
|
|
||||||
}()
|
|
||||||
|
|
||||||
// load all testcases
|
// load all testcases
|
||||||
testCases, err := LoadTestCases(testcases...)
|
testCases, err := LoadTestCases(testcases...)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
|
|||||||
Reference in New Issue
Block a user