mirror of
https://github.com/httprunner/httprunner.git
synced 2026-05-11 18:11:21 +08:00
fix: android tests
This commit is contained in:
@@ -14,30 +14,25 @@ import (
|
||||
"github.com/httprunner/httprunner/v5/pkg/uixt/types"
|
||||
)
|
||||
|
||||
var (
|
||||
driver IDriver
|
||||
driverExt *XTDriver
|
||||
)
|
||||
|
||||
func setupAndroidAdbDriver(t *testing.T) {
|
||||
func setupADBDriverExt(t *testing.T) *XTDriver {
|
||||
device, err := NewAndroidDevice()
|
||||
checkErr(t, err)
|
||||
device.Options.UIA2 = false
|
||||
device.Options.LogOn = false
|
||||
driver, err = device.NewDriver()
|
||||
driver, err := device.NewDriver()
|
||||
checkErr(t, err)
|
||||
driverExt = NewXTDriver(driver,
|
||||
return NewXTDriver(driver,
|
||||
ai.WithCVService(ai.CVServiceTypeVEDEM))
|
||||
}
|
||||
|
||||
func setupAndroidUIA2Driver(t *testing.T) {
|
||||
func setupUIA2DriverExt(t *testing.T) *XTDriver {
|
||||
device, err := NewAndroidDevice()
|
||||
checkErr(t, err)
|
||||
device.Options.UIA2 = true
|
||||
device.Options.UIA2 = true // use uiautomator2 driver
|
||||
device.Options.LogOn = false
|
||||
driver, err = device.NewDriver()
|
||||
driver, err := device.NewDriver()
|
||||
checkErr(t, err)
|
||||
driverExt = NewXTDriver(driver,
|
||||
return NewXTDriver(driver,
|
||||
ai.WithCVService(ai.CVServiceTypeVEDEM))
|
||||
}
|
||||
|
||||
@@ -58,12 +53,14 @@ func TestAndroidDevice_GetCurrentWindow(t *testing.T) {
|
||||
}
|
||||
|
||||
func TestDriver_Quit(t *testing.T) {
|
||||
driver := setupADBDriverExt(t)
|
||||
if err := driver.DeleteSession(); err != nil {
|
||||
t.Fatal(err)
|
||||
}
|
||||
}
|
||||
|
||||
func TestDriver_Status(t *testing.T) {
|
||||
driver := setupADBDriverExt(t)
|
||||
_, err := driver.Status()
|
||||
if err != nil {
|
||||
t.Fatal(err)
|
||||
@@ -71,6 +68,7 @@ func TestDriver_Status(t *testing.T) {
|
||||
}
|
||||
|
||||
func TestDriver_Screenshot(t *testing.T) {
|
||||
driver := setupADBDriverExt(t)
|
||||
screenshot, err := driver.ScreenShot()
|
||||
if err != nil {
|
||||
t.Fatal(err)
|
||||
@@ -80,6 +78,7 @@ func TestDriver_Screenshot(t *testing.T) {
|
||||
}
|
||||
|
||||
func TestDriver_Rotation(t *testing.T) {
|
||||
driver := setupADBDriverExt(t)
|
||||
rotation, err := driver.Rotation()
|
||||
if err != nil {
|
||||
t.Fatal(err)
|
||||
@@ -89,6 +88,7 @@ func TestDriver_Rotation(t *testing.T) {
|
||||
}
|
||||
|
||||
func TestDriver_DeviceSize(t *testing.T) {
|
||||
driver := setupADBDriverExt(t)
|
||||
deviceSize, err := driver.WindowSize()
|
||||
if err != nil {
|
||||
t.Fatal(err)
|
||||
@@ -98,9 +98,9 @@ func TestDriver_DeviceSize(t *testing.T) {
|
||||
}
|
||||
|
||||
func TestDriver_Source(t *testing.T) {
|
||||
setupAndroidUIA2Driver(t)
|
||||
driver := setupUIA2DriverExt(t)
|
||||
|
||||
source, err := driverExt.Source()
|
||||
source, err := driver.Source()
|
||||
if err != nil {
|
||||
t.Fatal(err)
|
||||
}
|
||||
@@ -109,6 +109,7 @@ func TestDriver_Source(t *testing.T) {
|
||||
}
|
||||
|
||||
func TestDriver_BatteryInfo(t *testing.T) {
|
||||
driver := setupADBDriverExt(t)
|
||||
batteryInfo, err := driver.BatteryInfo()
|
||||
if err != nil {
|
||||
t.Fatal(err)
|
||||
@@ -118,6 +119,7 @@ func TestDriver_BatteryInfo(t *testing.T) {
|
||||
}
|
||||
|
||||
func TestDriver_DeviceInfo(t *testing.T) {
|
||||
driver := setupADBDriverExt(t)
|
||||
devInfo, err := driver.DeviceInfo()
|
||||
if err != nil {
|
||||
t.Fatal(err)
|
||||
@@ -129,9 +131,9 @@ func TestDriver_DeviceInfo(t *testing.T) {
|
||||
}
|
||||
|
||||
func TestDriver_Tap(t *testing.T) {
|
||||
setupAndroidUIA2Driver(t)
|
||||
driverExt.StartCaptureLog("")
|
||||
err := driverExt.TapXY(0.5, 0.5,
|
||||
driver := setupUIA2DriverExt(t)
|
||||
driver.StartCaptureLog("")
|
||||
err := driver.TapXY(0.5, 0.5,
|
||||
option.WithIdentifier("test"),
|
||||
option.WithPressDuration(4))
|
||||
if err != nil {
|
||||
@@ -149,8 +151,8 @@ func TestDriver_Tap(t *testing.T) {
|
||||
}
|
||||
|
||||
func TestDriver_Swipe(t *testing.T) {
|
||||
setupAndroidUIA2Driver(t)
|
||||
err := driverExt.Swipe(400, 1000, 400, 500,
|
||||
driver := setupUIA2DriverExt(t)
|
||||
err := driver.Swipe(400, 1000, 400, 500,
|
||||
option.WithPressDuration(0.5))
|
||||
if err != nil {
|
||||
t.Fatal(err)
|
||||
@@ -158,14 +160,15 @@ func TestDriver_Swipe(t *testing.T) {
|
||||
}
|
||||
|
||||
func TestDriver_Swipe_Relative(t *testing.T) {
|
||||
setupAndroidUIA2Driver(t)
|
||||
err := driverExt.Swipe(0.5, 0.7, 0.5, 0.5)
|
||||
driver := setupUIA2DriverExt(t)
|
||||
err := driver.Swipe(0.5, 0.7, 0.5, 0.5)
|
||||
if err != nil {
|
||||
t.Fatal(err)
|
||||
}
|
||||
}
|
||||
|
||||
func TestDriver_Drag(t *testing.T) {
|
||||
driver := setupUIA2DriverExt(t)
|
||||
err := driver.Drag(400, 260, 400, 500)
|
||||
if err != nil {
|
||||
t.Fatal(err)
|
||||
@@ -180,9 +183,9 @@ func TestDriver_Drag(t *testing.T) {
|
||||
}
|
||||
|
||||
func TestDriver_SendKeys(t *testing.T) {
|
||||
setupAndroidUIA2Driver(t)
|
||||
driver := setupUIA2DriverExt(t)
|
||||
|
||||
err := driverExt.Input("辽宁省沈阳市新民市民族街36-4",
|
||||
err := driver.Input("辽宁省沈阳市新民市民族街36-4",
|
||||
option.WithIdentifier("test"))
|
||||
if err != nil {
|
||||
t.Fatal(err)
|
||||
@@ -204,6 +207,7 @@ func TestDriver_SendKeys(t *testing.T) {
|
||||
}
|
||||
|
||||
func TestDriver_PressBack(t *testing.T) {
|
||||
driver := setupADBDriverExt(t)
|
||||
err := driver.Back()
|
||||
if err != nil {
|
||||
t.Fatal(err)
|
||||
@@ -211,6 +215,7 @@ func TestDriver_PressBack(t *testing.T) {
|
||||
}
|
||||
|
||||
func TestDriver_SetRotation(t *testing.T) {
|
||||
driver := setupADBDriverExt(t)
|
||||
// err = driver.SetRotation(Rotation{Z: 0})
|
||||
err := driver.SetRotation(types.Rotation{Z: 270})
|
||||
if err != nil {
|
||||
@@ -219,11 +224,11 @@ func TestDriver_SetRotation(t *testing.T) {
|
||||
}
|
||||
|
||||
func TestDriver_GetOrientation(t *testing.T) {
|
||||
setupAndroidUIA2Driver(t)
|
||||
_, _ = driverExt.AppTerminate("com.quark.browser")
|
||||
_ = driverExt.AppLaunch("com.quark.browser")
|
||||
driver := setupUIA2DriverExt(t)
|
||||
_, _ = driver.AppTerminate("com.quark.browser")
|
||||
_ = driver.AppLaunch("com.quark.browser")
|
||||
time.Sleep(2 * time.Second)
|
||||
_ = driverExt.Home()
|
||||
_ = driver.Home()
|
||||
}
|
||||
|
||||
func Test_getFreePort(t *testing.T) {
|
||||
@@ -255,13 +260,13 @@ func TestDriver_AppLaunch(t *testing.T) {
|
||||
}
|
||||
|
||||
func TestDriver_IsAppInForeground(t *testing.T) {
|
||||
setupAndroidUIA2Driver(t)
|
||||
driver := setupUIA2DriverExt(t)
|
||||
// setupAndroidAdbDriver(t)
|
||||
|
||||
err := driverExt.AppLaunch("com.android.settings")
|
||||
err := driver.AppLaunch("com.android.settings")
|
||||
checkErr(t, err)
|
||||
|
||||
app, err := driverExt.ForegroundInfo()
|
||||
app, err := driver.ForegroundInfo()
|
||||
checkErr(t, err)
|
||||
if app.PackageName != "com.android.settings" {
|
||||
t.FailNow()
|
||||
@@ -339,8 +344,8 @@ func TestDriver_ShellInputUnicode(t *testing.T) {
|
||||
}
|
||||
|
||||
func TestRecordVideo(t *testing.T) {
|
||||
setupAndroidAdbDriver(t)
|
||||
path, err := driverExt.ScreenRecord(5 * time.Second)
|
||||
driver := setupADBDriverExt(t)
|
||||
path, err := driver.ScreenRecord(5 * time.Second)
|
||||
if err != nil {
|
||||
t.Fatal(err)
|
||||
}
|
||||
@@ -348,9 +353,8 @@ func TestRecordVideo(t *testing.T) {
|
||||
}
|
||||
|
||||
func Test_Android_Backspace(t *testing.T) {
|
||||
setupAndroidAdbDriver(t)
|
||||
|
||||
err := driverExt.Backspace(1)
|
||||
driver := setupADBDriverExt(t)
|
||||
err := driver.Backspace(1)
|
||||
if err != nil {
|
||||
t.Fatal(err)
|
||||
}
|
||||
|
||||
@@ -63,54 +63,61 @@ func TestDriverExt(t *testing.T) {
|
||||
androidDevice.InstallAPK("/path/to/app.apk")
|
||||
}
|
||||
|
||||
var (
|
||||
iosDevice *IOSDevice
|
||||
iosDriverExt *XTDriver
|
||||
)
|
||||
|
||||
// func init() {
|
||||
// iosDevice, _ = NewIOSDevice()
|
||||
// driver, _ := iosDevice.NewDriver()
|
||||
// iosDriverExt = NewXTDriver(driver,
|
||||
// ai.WithCVService(ai.CVServiceTypeVEDEM))
|
||||
// }
|
||||
func setupDriverExt(t *testing.T, driverType ...string) *XTDriver {
|
||||
var dType string
|
||||
if len(driverType) > 0 {
|
||||
dType = driverType[0]
|
||||
}
|
||||
switch dType {
|
||||
case "ADB":
|
||||
return setupADBDriverExt(t)
|
||||
case "UIA2":
|
||||
return setupUIA2DriverExt(t)
|
||||
case "WDA":
|
||||
return setupWDADriverExt(t)
|
||||
case "HDC":
|
||||
return setupHDCDriverExt(t)
|
||||
default:
|
||||
return setupADBDriverExt(t)
|
||||
}
|
||||
}
|
||||
|
||||
func TestDriverExt_TapXY(t *testing.T) {
|
||||
err := iosDriverExt.TapXY(0.4, 0.5)
|
||||
driver := setupDriverExt(t)
|
||||
err := driver.TapXY(0.4, 0.5)
|
||||
checkErr(t, err)
|
||||
}
|
||||
|
||||
func TestDriverExt_TapAbsXY(t *testing.T) {
|
||||
err := iosDriverExt.TapAbsXY(100, 300)
|
||||
driver := setupDriverExt(t)
|
||||
err := driver.TapAbsXY(100, 300)
|
||||
checkErr(t, err)
|
||||
}
|
||||
|
||||
func TestAndroidSwipeAction(t *testing.T) {
|
||||
setupAndroidAdbDriver(t)
|
||||
driver := setupDriverExt(t)
|
||||
|
||||
swipeAction := prepareSwipeAction(driverExt, "up", option.WithDirection("down"))
|
||||
err := swipeAction(driverExt)
|
||||
swipeAction := prepareSwipeAction(driver, "up", option.WithDirection("down"))
|
||||
err := swipeAction(driver)
|
||||
checkErr(t, err)
|
||||
|
||||
swipeAction = prepareSwipeAction(driverExt, "up", option.WithCustomDirection(0.5, 0.5, 0.5, 0.9))
|
||||
err = swipeAction(driverExt)
|
||||
swipeAction = prepareSwipeAction(driver, "up", option.WithCustomDirection(0.5, 0.5, 0.5, 0.9))
|
||||
err = swipeAction(driver)
|
||||
checkErr(t, err)
|
||||
}
|
||||
|
||||
func TestAndroidSwipeToTapApp(t *testing.T) {
|
||||
setupAndroidAdbDriver(t)
|
||||
|
||||
err := driverExt.SwipeToTapApp("抖音")
|
||||
driver := setupDriverExt(t)
|
||||
err := driver.SwipeToTapApp("抖音")
|
||||
checkErr(t, err)
|
||||
}
|
||||
|
||||
func TestAndroidSwipeToTapTexts(t *testing.T) {
|
||||
setupAndroidAdbDriver(t)
|
||||
|
||||
err := driverExt.AppLaunch("com.ss.android.ugc.aweme")
|
||||
driver := setupDriverExt(t)
|
||||
err := driver.AppLaunch("com.ss.android.ugc.aweme")
|
||||
checkErr(t, err)
|
||||
|
||||
err = driverExt.swipeToTapTexts([]string{"点击进入直播间", "直播中"}, option.WithDirection("up"))
|
||||
err = driver.swipeToTapTexts([]string{"点击进入直播间", "直播中"}, option.WithDirection("up"))
|
||||
checkErr(t, err)
|
||||
}
|
||||
|
||||
@@ -155,10 +162,10 @@ func TestSleepStrict(t *testing.T) {
|
||||
}
|
||||
|
||||
func TestGetScreenShot(t *testing.T) {
|
||||
setupAndroidAdbDriver(t)
|
||||
driver := setupADBDriverExt(t)
|
||||
|
||||
imagePath := filepath.Join(config.ScreenShotsPath, "test_screenshot")
|
||||
_, err := driverExt.ScreenShot(option.WithScreenShotFileName(imagePath))
|
||||
_, err := driver.ScreenShot(option.WithScreenShotFileName(imagePath))
|
||||
if err != nil {
|
||||
t.Fatalf("GetScreenShot failed: %v", err)
|
||||
}
|
||||
@@ -167,8 +174,8 @@ func TestGetScreenShot(t *testing.T) {
|
||||
}
|
||||
|
||||
func TestCheckPopup(t *testing.T) {
|
||||
setupAndroidAdbDriver(t)
|
||||
popup, err := driverExt.CheckPopup()
|
||||
driver := setupADBDriverExt(t)
|
||||
popup, err := driver.CheckPopup()
|
||||
if err != nil {
|
||||
t.Logf("check popup failed, err: %v", err)
|
||||
} else if popup == nil {
|
||||
@@ -179,9 +186,8 @@ func TestCheckPopup(t *testing.T) {
|
||||
}
|
||||
|
||||
func TestClosePopup(t *testing.T) {
|
||||
setupAndroidAdbDriver(t)
|
||||
|
||||
if err := driverExt.ClosePopupsHandler(); err != nil {
|
||||
driver := setupADBDriverExt(t)
|
||||
if err := driver.ClosePopupsHandler(); err != nil {
|
||||
t.Fatal(err)
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user