fix: unittest

This commit is contained in:
xucong.053
2022-10-13 16:39:17 +08:00
parent 7e075e87ad
commit 465e0554a2
6 changed files with 16 additions and 31 deletions

View File

@@ -13,7 +13,7 @@ func TestIOSKuaiShouLive(t *testing.T) {
Config: hrp.NewConfig("直播_快手_关注天窗_ios").
WithVariables(map[string]interface{}{
"device": "${ENV(UDID)}",
"ups": "大哥,王者",
"ups": "${ENV(LIVEUPLIST)}",
}).
SetIOS(hrp.WithUDID("$device"), hrp.WithLogOn(true), hrp.WithWDAPort(8100), hrp.WithWDAMjpegPort(9100)),
TestSteps: []hrp.IStep{
@@ -36,7 +36,7 @@ func TestIOSKuaiShouLive(t *testing.T) {
TapByOCR("关注", hrp.WithIndex(1)).Sleep(10),
hrp.NewStep("点击直播标签,进入直播间").
IOS().
SwipeToTapTexts([]string{}, hrp.WithFunction("${split_by_comma($ups)}"), hrp.WithCustomDirection(0.6, 0.2, 0.2, 0.2), hrp.WithIdentifier("click_live")).Sleep(60).
SwipeToTapTexts("${split_by_comma($ups)}", hrp.WithCustomDirection(0.6, 0.2, 0.2, 0.2), hrp.WithIdentifier("click_live")).Sleep(60).
Validate().
AssertOCRExists("说点什么", "进入直播间失败"),
hrp.NewStep("下滑进入下一个直播间").

View File

@@ -3,7 +3,7 @@
"name": "直播_快手_关注天窗_ios",
"variables": {
"device": "${ENV(UDID)}",
"ups": "大哥,王者"
"ups": "${ENV(LIVEUPLIST)}"
},
"ios": [
{
@@ -104,15 +104,14 @@
"actions": [
{
"method": "swipe_to_tap_texts",
"params": [],
"params": "${split_by_comma($ups)}",
"identifier": "click_live",
"direction": [
0.6,
0.2,
0.2,
0.2
],
"function": "${split_by_comma($ups)}"
]
},
{
"method": "sleep",

View File

@@ -2,7 +2,7 @@ config:
name: 直播_快手_关注天窗_ios
variables:
device: ${ENV(UDID)}
ups: 大哥,王者
ups: ${ENV(LIVEUPLIST)}
ios:
- udid: $device
port: 8100
@@ -55,14 +55,13 @@ teststeps:
ios:
actions:
- method: swipe_to_tap_texts
params: []
params: ${split_by_comma($ups)}
identifier: click_live
direction:
- 0.6
- 0.2
- 0.2
- 0.2
function: ${split_by_comma($ups)}
- method: sleep
params: 60
validate:

View File

@@ -67,7 +67,6 @@ type MobileAction struct {
Identifier string `json:"identifier,omitempty" yaml:"identifier,omitempty"` // used to identify the action in log
MaxRetryTimes int `json:"max_retry_times,omitempty" yaml:"max_retry_times,omitempty"` // max retry times
Direction interface{} `json:"direction,omitempty" yaml:"direction,omitempty"` // used by swipe to tap text or app
Function string `json:"function,omitempty" yaml:"function,omitempty"` // used to replace params
Index int `json:"index,omitempty" yaml:"index,omitempty"` // index of the target element, should start from 1
Timeout int `json:"timeout,omitempty" yaml:"timeout,omitempty"` // TODO: wait timeout in seconds for mobile action
IgnoreNotFoundError bool `json:"ignore_NotFoundError,omitempty" yaml:"ignore_NotFoundError,omitempty"` // ignore error if target element not found
@@ -90,13 +89,6 @@ func WithIndex(index int) ActionOption {
}
}
// WithFunction replaces params
func WithFunction(function string) ActionOption {
return func(o *MobileAction) {
o.Function = function
}
}
// WithDirection inputs direction (up, down, left, right)
func WithDirection(direction string) ActionOption {
return func(o *MobileAction) {
@@ -437,14 +429,17 @@ func (dExt *DriverExt) DoAction(action MobileAction) error {
ACTION_SwipeToTapText, action.Params)
case ACTION_SwipeToTapTexts:
if texts, ok := action.Params.([]interface{}); ok {
var textList []string
for _, t := range texts {
textList = append(textList, t.(string))
}
action.Params = textList
}
if texts, ok := action.Params.([]string); ok {
var point PointF
findText := func(d *DriverExt) error {
var err error
var ts []string
for _, t := range texts {
ts = append(ts, t.(string))
}
points, err := d.GetTextXYs(ts)
points, err := d.GetTextXYs(texts)
if err != nil {
return err
}

View File

@@ -31,7 +31,6 @@ var (
WithDescription = uixt.WithDescription
WithDirection = uixt.WithDirection
WithCustomDirection = uixt.WithCustomDirection
WithFunction = uixt.WithFunction
)
var (

View File

@@ -263,7 +263,7 @@ func (s *StepMobile) SwipeToTapText(text string, options ...uixt.ActionOption) *
return &StepMobile{step: s.step}
}
func (s *StepMobile) SwipeToTapTexts(texts []string, options ...uixt.ActionOption) *StepMobile {
func (s *StepMobile) SwipeToTapTexts(texts interface{}, options ...uixt.ActionOption) *StepMobile {
action := uixt.MobileAction{
Method: uixt.ACTION_SwipeToTapTexts,
Params: texts,
@@ -618,13 +618,6 @@ func runStepMobileUI(s *SessionRunner, step *TStep) (stepResult *StepResult, err
// run actions
for _, action := range actions {
if action.Function != "" {
parsedParams, err := parser.ParseString(action.Function, stepVariables)
if err != nil {
return stepResult, err
}
action.Params = parsedParams
}
if action.Params, err = parser.Parse(action.Params, stepVariables); err != nil {
return stepResult, errors.Wrap(err, "parse action params failed")
}