Files
httprunner/hrp/step_ios_ui_test.go
2022-08-15 22:34:17 +08:00

174 lines
4.3 KiB
Go
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
package hrp
import (
"fmt"
"testing"
)
func TestIOSSettingsAction(t *testing.T) {
testCase := &TestCase{
Config: NewConfig("ios ui action on Settings"),
TestSteps: []IStep{
NewStep("launch Settings").
IOS().Home().Click("//*[@label='设置']").
Validate().
AssertNameExists("飞行模式").
AssertNameNotExists("飞行模式2"),
NewStep("swipe up and down").
IOS().SwipeUp().SwipeUp().SwipeDown(),
},
}
fmt.Println(testCase)
err := NewRunner(t).Run(testCase)
if err != nil {
t.Fatal(err)
}
}
func TestIOSSearchApp(t *testing.T) {
testCase := &TestCase{
Config: NewConfig("ios ui action on Search App 资源库"),
TestSteps: []IStep{
NewStep("进入 App 资源库 搜索框").
IOS().Home().SwipeLeft().Times(2).Click("dewey-search-field").
Validate().
AssertNameExists("取消"),
NewStep("搜索抖音").
IOS().Input("抖音\n"),
},
}
fmt.Println(testCase)
// err := NewRunner(t).Run(testCase)
// if err != nil {
// t.Fatal(err)
// }
}
func TestIOSAppLaunch(t *testing.T) {
testCase := &TestCase{
Config: NewConfig("启动 & 关闭 App"),
TestSteps: []IStep{
NewStep("终止今日头条").
IOS().AppTerminate("com.ss.iphone.article.News"),
NewStep("启动今日头条").
IOS().AppLaunch("com.ss.iphone.article.News"),
NewStep("终止今日头条").
IOS().AppTerminate("com.ss.iphone.article.News"),
NewStep("启动今日头条").
IOS().AppLaunchUnattached("com.ss.iphone.article.News"),
},
}
fmt.Println(testCase)
// err := NewRunner(t).Run(testCase)
// if err != nil {
// t.Fatal(err)
// }
}
func TestIOSWeixinLive(t *testing.T) {
testCase := &TestCase{
Config: NewConfig("ios ui action on 微信直播"),
TestSteps: []IStep{
NewStep("启动微信").
IOS().
Home().
AppTerminate("com.tencent.xin"). // 关闭已运行的微信,确保启动微信后在「微信」首页
Click("微信").
Validate().
AssertNameExists("通讯录", "微信启动失败,「通讯录」不存在"),
NewStep("进入直播页").
IOS().
Click("发现").Sleep(5). // 进入「发现页」;等待 5 秒确保加载完成
Click([]float64{0.5, 0.3}). // 基于坐标位置点击「直播」TODO通过 OCR 识别「直播」
Validate().
AssertNameExists("直播"),
NewStep("向上滑动 5 次").
IOS().
SwipeUp().Times(3).ScreenShot(). // 上划 3 次,截图保存
SwipeUp().Times(2).ScreenShot(), // 再上划 2 次,截图保存
},
}
fmt.Println(testCase)
err := NewRunner(t).Run(testCase)
if err != nil {
t.Fatal(err)
}
}
func TestIOSCameraPhotoCapture(t *testing.T) {
testCase := &TestCase{
Config: NewConfig("ios camera photo capture"),
TestSteps: []IStep{
NewStep("launch camera").
IOS().Home().
StopCamera().
StartCamera().
Validate().
AssertNameExists("PhotoCapture", "拍照按钮不存在"),
NewStep("start recording").
IOS().Click("PhotoCapture"),
},
}
fmt.Println(testCase)
// err := NewRunner(t).Run(testCase)
// if err != nil {
// t.Fatal(err)
// }
}
func TestIOSCameraVideoCapture(t *testing.T) {
testCase := &TestCase{
Config: NewConfig("ios camera video capture"),
TestSteps: []IStep{
NewStep("launch camera").
IOS().Home().
StopCamera().
StartCamera().
Validate().
AssertNameExists("PhotoCapture", "录像按钮不存在"),
NewStep("switch to video capture").
IOS().
SwipeRight().
Validate().
AssertNameExists("VideoCapture", "拍摄按钮不存在"),
NewStep("start recording").
IOS().
Click("VideoCapture"). // 开始录像
Sleep(5).
Click("VideoCapture"), // 停止录像
},
}
fmt.Println(testCase)
// err := NewRunner(t).Run(testCase)
// if err != nil {
// t.Fatal(err)
// }
}
func TestIOSDouyinAction(t *testing.T) {
testCase := &TestCase{
Config: NewConfig("ios ui action on 抖音"),
TestSteps: []IStep{
NewStep("launch douyin").
IOS().Home().Click("//*[@label='抖音']").
Validate().
AssertNameExists("首页", "首页 tab 不存在").
AssertNameExists("消息", "消息 tab 不存在"),
NewStep("swipe up and down").
IOS().SwipeUp().Times(3).SwipeDown(),
},
}
fmt.Println(testCase)
// err := NewRunner(t).Run(testCase)
// if err != nil {
// t.Fatal(err)
// }
}