diff --git a/hrp/internal/version/VERSION b/hrp/internal/version/VERSION index c97d9065..5b9834dc 100644 --- a/hrp/internal/version/VERSION +++ b/hrp/internal/version/VERSION @@ -1 +1 @@ -v5.0.0+2411102239 +v5.0.0+2411111113 diff --git a/hrp/pkg/uixt/action.go b/hrp/pkg/uixt/action.go index f3840ab4..4f3ecd64 100644 --- a/hrp/pkg/uixt/action.go +++ b/hrp/pkg/uixt/action.go @@ -15,6 +15,7 @@ import ( type ActionMethod string const ( + ACTION_LOG ActionMethod = "log" ACTION_AppInstall ActionMethod = "install" ACTION_AppUninstall ActionMethod = "uninstall" ACTION_AppClear ActionMethod = "app_clear" @@ -565,6 +566,9 @@ func (dExt *DriverExt) DoAction(action MobileAction) (err error) { }() switch action.Method { + case ACTION_LOG: + // TODO: stat action + log.Info().Str("action", action.Params.(string)).Msg("log uixt action") case ACTION_AppInstall: if appUrl, ok := action.Params.(string); ok { if err = dExt.InstallByUrl(appUrl, WithRetryTimes(action.MaxRetryTimes)); err != nil { diff --git a/hrp/runner.go b/hrp/runner.go index 9cc3624b..b08b2e0c 100644 --- a/hrp/runner.go +++ b/hrp/runner.go @@ -650,6 +650,10 @@ func (r *SessionRunner) RunStep(step IStep) (stepResult *StepResult, err error) return stepResult, nil } +func (r *SessionRunner) GetSummary() *TestCaseSummary { + return r.summary +} + func (r *SessionRunner) parseStepStruct(step IStep) error { caseConfig := r.caseRunner.TestCase.Config.Get() stepConfig := step.Config() diff --git a/hrp/step_mobile_ui.go b/hrp/step_mobile_ui.go index 8dde4c52..c517e545 100644 --- a/hrp/step_mobile_ui.go +++ b/hrp/step_mobile_ui.go @@ -131,6 +131,14 @@ func (s *StepMobile) Serial(serial string) *StepMobile { return s } +func (s *StepMobile) Log(actionName string) *StepMobile { + s.obj().Actions = append(s.obj().Actions, uixt.MobileAction{ + Method: uixt.ACTION_LOG, + Params: actionName, + }) + return s +} + func (s *StepMobile) InstallApp(path string) *StepMobile { s.obj().Actions = append(s.obj().Actions, uixt.MobileAction{ Method: uixt.ACTION_AppInstall, @@ -676,6 +684,11 @@ func runStepMobileUI(s *SessionRunner, step IStep) (stepResult *StepResult, err return nil, errors.New("invalid mobile UI step type") } + // TODO: fix this + if mobileStep.OSType == "" { + mobileStep.OSType = string(stepTypeAndroid) + } + // report GA event go sdk.SendGA4Event("hrp_run_ui", map[string]interface{}{ "osType": mobileStep.OSType, diff --git a/hrp/step_request.go b/hrp/step_request.go index 51fa3319..f5f32c58 100644 --- a/hrp/step_request.go +++ b/hrp/step_request.go @@ -749,6 +749,14 @@ func (s *StepRequest) WebSocket() *StepWebSocket { } } +// MobileUI creates a new mobile step session +func (s *StepRequest) MobileUI() *StepMobile { + return &StepMobile{ + StepConfig: s.StepConfig, + Mobile: &MobileUI{}, + } +} + // Android creates a new android step session func (s *StepRequest) Android(options ...uixt.AndroidDeviceOption) *StepMobile { androidOptions := &uixt.AndroidDevice{}