change: add ks

This commit is contained in:
lilong.129
2023-05-10 16:23:47 +08:00
parent 41e4d89c95
commit 56e065c10b
6 changed files with 164 additions and 8 deletions

View File

@@ -1,6 +1,6 @@
# Release History # Release History
## v4.3.4 (2023-05-04) ## v4.3.4 (2023-05-10)
**go version** **go version**
@@ -15,6 +15,7 @@
- refactor: FindText(s) returns OCRText(s) - refactor: FindText(s) returns OCRText(s)
- refactor: merge ActionOption with DataOption - refactor: merge ActionOption with DataOption
- change: exit with AndroidShellExecError code for adb shell failure - change: exit with AndroidShellExecError code for adb shell failure
- change: request vedem ocr with uploading image
## v4.3.3 (2023-04-19) ## v4.3.3 (2023-04-19)

View File

@@ -18,7 +18,7 @@
{ {
"method": "video_crawler", "method": "video_crawler",
"params": { "params": {
"app_package_name": "com.ss.android.ugc.aweme", "app_package_name": "com.smile.gifmaker",
"feed": { "feed": {
"sleep_random": [ "sleep_random": [
0, 0,
@@ -38,7 +38,7 @@
1, 1,
1 1
], ],
"target": 1, "target": 0,
"text": "^广告$" "text": "^广告$"
}, },
{ {
@@ -49,7 +49,7 @@
1, 1,
1 1
], ],
"target": 1, "target": 0,
"text": "^图文$" "text": "^图文$"
}, },
{ {
@@ -89,7 +89,7 @@
15, 15,
20 20
], ],
"target_count": 3 "target_count": 0
}, },
"timeout": 600 "timeout": 600
} }

View File

@@ -56,3 +56,49 @@ func TestAndroidVideoCrawlerTest(t *testing.T) {
t.Fatal(err) t.Fatal(err)
} }
} }
func TestAndroidVideoCrawlerKSTest(t *testing.T) {
testCase := &hrp.TestCase{
Config: hrp.NewConfig("抓取 KS 视频信息").
WithVariables(map[string]interface{}{
"device": "${ENV(SerialNumber)}",
}).
SetAndroid(uixt.WithSerialNumber("$device")),
TestSteps: []hrp.IStep{
hrp.NewStep("滑动消费 feed 至少 100 个滑动过程中70% 随机间隔 0-5s30% 随机间隔 5-10s").
Android().
VideoCrawler(map[string]interface{}{
"app_package_name": "com.smile.gifmaker",
"timeout": 3600,
"feed": map[string]interface{}{
"target_count": 100,
"target_labels": []map[string]interface{}{
{"text": "^广告$", "scope": []float64{0, 0.5, 1, 1}, "regex": true},
{"text": "^推广$", "scope": []float64{0, 0.5, 1, 1}, "regex": true},
{"text": "^磁力广告$", "scope": []float64{0, 0.5, 1, 1}, "regex": true},
},
"sleep_random": []float64{0, 5, 0.7, 5, 10, 0.3},
},
"live": map[string]interface{}{
"target_count": 0,
"sleep_random": []float64{15, 20},
},
}),
hrp.NewStep("exit").
Android().
AppTerminate("com.smile.gifmaker").
Validate().
AssertAppNotInForeground("com.smile.gifmaker"),
},
}
if err := testCase.Dump2JSON("demo_android_video_ks_crawler.json"); err != nil {
t.Fatal(err)
}
runner := hrp.NewRunner(t).SetSaveTests(true)
err := runner.Run(testCase)
if err != nil {
t.Fatal(err)
}
}

View File

@@ -0,0 +1,98 @@
{
"config": {
"name": "抓取 KS 视频信息",
"variables": {
"device": "${ENV(SerialNumber)}"
},
"android": [
{
"serial": "$device"
}
]
},
"teststeps": [
{
"name": "滑动消费 feed 至少 100 个滑动过程中70% 随机间隔 0-5s30% 随机间隔 5-10s",
"android": {
"actions": [
{
"method": "video_crawler",
"params": {
"app_package_name": "com.smile.gifmaker",
"feed": {
"sleep_random": [
0,
5,
0.7,
5,
10,
0.3
],
"target_count": 100,
"target_labels": [
{
"regex": true,
"scope": [
0,
0.5,
1,
1
],
"text": "^广告$"
},
{
"regex": true,
"scope": [
0,
0.5,
1,
1
],
"text": "^推广$"
},
{
"regex": true,
"scope": [
0,
0.5,
1,
1
],
"text": "^磁力广告$"
}
]
},
"live": {
"sleep_random": [
15,
20
],
"target_count": 0
},
"timeout": 3600
}
}
]
}
},
{
"name": "exit",
"android": {
"actions": [
{
"method": "app_terminate",
"params": "com.smile.gifmaker"
}
]
},
"validate": [
{
"check": "ui_foreground_app",
"assert": "not_equal",
"expect": "com.smile.gifmaker",
"msg": "app [com.smile.gifmaker] should not be in foreground"
}
]
}
]
}

View File

@@ -1 +1 @@
v4.3.4-beta-202305042235 v4.3.4-beta-202305101622

View File

@@ -199,12 +199,23 @@ type LiveCrawler struct {
} }
func (l *LiveCrawler) checkLiveVideo(texts OCRTexts) (enterPoint PointF, yes bool) { func (l *LiveCrawler) checkLiveVideo(texts OCRTexts) (enterPoint PointF, yes bool) {
// 预览流入口 // 预览流入口DY/KS
points, err := texts.FindTexts([]string{".?点击进入直播间", "直播中"}, WithRegex(true)) points, err := texts.FindTexts([]string{".?点击进入直播间"}, WithRegex(true))
if err == nil { if err == nil {
return points[0].Center(), true return points[0].Center(), true
} }
// 预览流入口KS
points, err = texts.FindTexts([]string{"和主播聊聊天.*"}, WithRegex(true))
if err == nil {
point := points[0].Center()
enterPoint = PointF{
X: point.X,
Y: point.Y - 100,
}
return enterPoint, true
}
// TODO: 头像入口 // TODO: 头像入口
return PointF{}, false return PointF{}, false