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