mirror of
https://github.com/httprunner/httprunner.git
synced 2026-05-20 23:59:49 +08:00
fix: android tests
This commit is contained in:
@@ -7,14 +7,15 @@ import (
|
||||
"fmt"
|
||||
"os"
|
||||
"testing"
|
||||
|
||||
"github.com/stretchr/testify/assert"
|
||||
"github.com/stretchr/testify/require"
|
||||
)
|
||||
|
||||
func TestGetImageFromBuffer(t *testing.T) {
|
||||
imagePath := "/Users/debugtalk/Downloads/s1.png"
|
||||
file, err := os.ReadFile(imagePath)
|
||||
if err != nil {
|
||||
t.Fatal(err)
|
||||
}
|
||||
require.Nil(t, err)
|
||||
buf := new(bytes.Buffer)
|
||||
buf.Read(file)
|
||||
|
||||
@@ -22,9 +23,7 @@ func TestGetImageFromBuffer(t *testing.T) {
|
||||
WithCVService(CVServiceTypeVEDEM),
|
||||
)
|
||||
cvResult, err := service.ReadFromBuffer(buf)
|
||||
if err != nil {
|
||||
t.Fatal(err)
|
||||
}
|
||||
assert.Nil(t, err)
|
||||
fmt.Println(fmt.Sprintf("cvResult: %v", cvResult))
|
||||
}
|
||||
|
||||
@@ -34,8 +33,6 @@ func TestGetImageFromPath(t *testing.T) {
|
||||
WithCVService(CVServiceTypeVEDEM),
|
||||
)
|
||||
cvResult, err := service.ReadFromPath(imagePath)
|
||||
if err != nil {
|
||||
t.Fatal(err)
|
||||
}
|
||||
assert.Nil(t, err)
|
||||
fmt.Println(fmt.Sprintf("cvResult: %v", cvResult))
|
||||
}
|
||||
|
||||
@@ -552,36 +552,3 @@ func (l *AdbLogcat) CatchLogcat(filter string) (err error) {
|
||||
|
||||
return
|
||||
}
|
||||
|
||||
type ExportPoint struct {
|
||||
Start int `json:"start" yaml:"start"`
|
||||
End int `json:"end" yaml:"end"`
|
||||
From interface{} `json:"from" yaml:"from"`
|
||||
To interface{} `json:"to" yaml:"to"`
|
||||
Operation string `json:"operation" yaml:"operation"`
|
||||
Ext string `json:"ext" yaml:"ext"`
|
||||
RunTime int `json:"run_time,omitempty" yaml:"run_time,omitempty"`
|
||||
}
|
||||
|
||||
func ConvertPoints(lines []string) (eps []ExportPoint) {
|
||||
log.Info().Msg("ConvertPoints")
|
||||
log.Info().Msg(strings.Join(lines, "\n"))
|
||||
for _, line := range lines {
|
||||
if strings.Contains(line, "ext") {
|
||||
idx := strings.Index(line, "{")
|
||||
if idx == -1 {
|
||||
continue
|
||||
}
|
||||
line = line[idx:]
|
||||
p := ExportPoint{}
|
||||
err := json.Unmarshal([]byte(line), &p)
|
||||
if err != nil {
|
||||
log.Error().Msg("failed to parse point data")
|
||||
continue
|
||||
}
|
||||
log.Info().Msg(line)
|
||||
eps = append(eps, p)
|
||||
}
|
||||
}
|
||||
return
|
||||
}
|
||||
|
||||
@@ -78,15 +78,17 @@ func (ad *ADBDriver) runShellCommand(cmd string, args ...string) (output string,
|
||||
}
|
||||
|
||||
func (ad *ADBDriver) InitSession(capabilities option.Capabilities) error {
|
||||
log.Warn().Msg("InitSession not implemented in ADBDriver")
|
||||
return nil
|
||||
}
|
||||
|
||||
func (ad *ADBDriver) DeleteSession() (err error) {
|
||||
return types.ErrDriverNotImplemented
|
||||
func (ad *ADBDriver) DeleteSession() error {
|
||||
log.Warn().Msg("DeleteSession not implemented in ADBDriver")
|
||||
return nil
|
||||
}
|
||||
|
||||
func (ad *ADBDriver) Status() (deviceStatus types.DeviceStatus, err error) {
|
||||
err = types.ErrDriverNotImplemented
|
||||
log.Warn().Msg("Status not implemented in ADBDriver")
|
||||
return
|
||||
}
|
||||
|
||||
@@ -95,12 +97,12 @@ func (ad *ADBDriver) GetDevice() IDevice {
|
||||
}
|
||||
|
||||
func (ad *ADBDriver) DeviceInfo() (deviceInfo types.DeviceInfo, err error) {
|
||||
err = types.ErrDriverNotImplemented
|
||||
log.Warn().Msg("DeviceInfo not implemented in ADBDriver")
|
||||
return
|
||||
}
|
||||
|
||||
func (ad *ADBDriver) BatteryInfo() (batteryInfo types.BatteryInfo, err error) {
|
||||
err = types.ErrDriverNotImplemented
|
||||
log.Warn().Msg("BatteryInfo not implemented in ADBDriver")
|
||||
return
|
||||
}
|
||||
|
||||
@@ -407,7 +409,7 @@ func (ad *ADBDriver) ForceTouch(x, y int, pressure float64, second ...float64) e
|
||||
}
|
||||
|
||||
func (ad *ADBDriver) ForceTouchFloat(x, y, pressure float64, second ...float64) (err error) {
|
||||
err = types.ErrDriverNotImplemented
|
||||
log.Warn().Msg("ForceTouchFloat not implemented in ADBDriver")
|
||||
return
|
||||
}
|
||||
|
||||
@@ -521,12 +523,12 @@ func (ad *ADBDriver) AppClear(packageName string) error {
|
||||
}
|
||||
|
||||
func (ad *ADBDriver) Rotation() (rotation types.Rotation, err error) {
|
||||
err = types.ErrDriverNotImplemented
|
||||
log.Warn().Msg("Rotation not implemented in ADBDriver")
|
||||
return
|
||||
}
|
||||
|
||||
func (ad *ADBDriver) SetRotation(rotation types.Rotation) (err error) {
|
||||
err = types.ErrDriverNotImplemented
|
||||
log.Warn().Msg("SetRotation not implemented in ADBDriver")
|
||||
return
|
||||
}
|
||||
|
||||
@@ -835,9 +837,44 @@ func (ad *ADBDriver) ScreenRecord(duration time.Duration) (videoPath string, err
|
||||
}
|
||||
|
||||
func (ad *ADBDriver) Setup() error {
|
||||
log.Warn().Msg("Setup not implemented in ADBDriver")
|
||||
return nil
|
||||
}
|
||||
|
||||
func (ad *ADBDriver) TearDown() error {
|
||||
log.Warn().Msg("TearDown not implemented in ADBDriver")
|
||||
return nil
|
||||
}
|
||||
|
||||
type ExportPoint struct {
|
||||
Start int `json:"start" yaml:"start"`
|
||||
End int `json:"end" yaml:"end"`
|
||||
From interface{} `json:"from" yaml:"from"`
|
||||
To interface{} `json:"to" yaml:"to"`
|
||||
Operation string `json:"operation" yaml:"operation"`
|
||||
Ext string `json:"ext" yaml:"ext"`
|
||||
RunTime int `json:"run_time,omitempty" yaml:"run_time,omitempty"`
|
||||
}
|
||||
|
||||
func ConvertPoints(lines []string) (eps []ExportPoint) {
|
||||
log.Info().Msg("ConvertPoints")
|
||||
log.Info().Msg(strings.Join(lines, "\n"))
|
||||
for _, line := range lines {
|
||||
if strings.Contains(line, "ext") {
|
||||
idx := strings.Index(line, "{")
|
||||
if idx == -1 {
|
||||
continue
|
||||
}
|
||||
line = line[idx:]
|
||||
p := ExportPoint{}
|
||||
err := json.Unmarshal([]byte(line), &p)
|
||||
if err != nil {
|
||||
log.Error().Msg("failed to parse point data")
|
||||
continue
|
||||
}
|
||||
log.Info().Msg(line)
|
||||
eps = append(eps, p)
|
||||
}
|
||||
}
|
||||
return
|
||||
}
|
||||
|
||||
@@ -4,11 +4,12 @@ package uixt
|
||||
|
||||
import (
|
||||
"os"
|
||||
"strings"
|
||||
"testing"
|
||||
"time"
|
||||
|
||||
"github.com/httprunner/httprunner/v5/internal/builtin"
|
||||
"github.com/stretchr/testify/assert"
|
||||
"github.com/stretchr/testify/require"
|
||||
|
||||
"github.com/httprunner/httprunner/v5/pkg/uixt/ai"
|
||||
"github.com/httprunner/httprunner/v5/pkg/uixt/option"
|
||||
"github.com/httprunner/httprunner/v5/pkg/uixt/types"
|
||||
@@ -16,346 +17,220 @@ import (
|
||||
|
||||
func setupADBDriverExt(t *testing.T) *XTDriver {
|
||||
device, err := NewAndroidDevice()
|
||||
checkErr(t, err)
|
||||
require.Nil(t, err)
|
||||
device.Options.UIA2 = false
|
||||
device.Options.LogOn = false
|
||||
driver, err := device.NewDriver()
|
||||
checkErr(t, err)
|
||||
require.Nil(t, err)
|
||||
return NewXTDriver(driver,
|
||||
ai.WithCVService(ai.CVServiceTypeVEDEM))
|
||||
}
|
||||
|
||||
func setupUIA2DriverExt(t *testing.T) *XTDriver {
|
||||
device, err := NewAndroidDevice()
|
||||
checkErr(t, err)
|
||||
require.Nil(t, err)
|
||||
device.Options.UIA2 = true // use uiautomator2 driver
|
||||
device.Options.LogOn = false
|
||||
driver, err := device.NewDriver()
|
||||
checkErr(t, err)
|
||||
require.Nil(t, err)
|
||||
return NewXTDriver(driver,
|
||||
ai.WithCVService(ai.CVServiceTypeVEDEM))
|
||||
}
|
||||
|
||||
func TestAndroidDevice_GetPackageInfo(t *testing.T) {
|
||||
device, err := NewAndroidDevice()
|
||||
checkErr(t, err)
|
||||
appInfo, err := device.GetPackageInfo("com.android.settings")
|
||||
checkErr(t, err)
|
||||
func TestDevice_Android_GetPackageInfo(t *testing.T) {
|
||||
driver := setupADBDriverExt(t)
|
||||
appInfo, err := driver.GetDevice().GetPackageInfo("com.android.settings")
|
||||
require.Nil(t, err)
|
||||
t.Log(appInfo)
|
||||
assert.Equal(t, "com.android.settings", appInfo.Name)
|
||||
assert.NotEmpty(t, appInfo.AppPath)
|
||||
assert.NotEmpty(t, appInfo.AppMD5)
|
||||
}
|
||||
|
||||
func TestAndroidDevice_GetCurrentWindow(t *testing.T) {
|
||||
device, err := NewAndroidDevice()
|
||||
checkErr(t, err)
|
||||
windowInfo, err := device.GetCurrentWindow()
|
||||
checkErr(t, err)
|
||||
t.Logf("packageName: %s\tactivityName: %s", windowInfo.PackageName, windowInfo.Activity)
|
||||
}
|
||||
|
||||
func TestDriver_Quit(t *testing.T) {
|
||||
func TestDevice_Android_GetCurrentWindow(t *testing.T) {
|
||||
driver := setupADBDriverExt(t)
|
||||
if err := driver.DeleteSession(); err != nil {
|
||||
t.Fatal(err)
|
||||
}
|
||||
driver.AppLaunch("com.android.settings")
|
||||
windowInfo, err := driver.GetDevice().(*AndroidDevice).GetCurrentWindow()
|
||||
require.Nil(t, err)
|
||||
assert.Equal(t, "com.android.settings", windowInfo.PackageName)
|
||||
}
|
||||
|
||||
func TestDriver_Status(t *testing.T) {
|
||||
func TestDriver_ADB_Session_TODO(t *testing.T) {
|
||||
driver := setupADBDriverExt(t)
|
||||
_, err := driver.Status()
|
||||
if err != nil {
|
||||
t.Fatal(err)
|
||||
}
|
||||
err := driver.InitSession(nil)
|
||||
require.Nil(t, err)
|
||||
err = driver.DeleteSession()
|
||||
assert.Nil(t, err)
|
||||
}
|
||||
|
||||
func TestDriver_Screenshot(t *testing.T) {
|
||||
func TestDriver_ADB_Status_TODO(t *testing.T) {
|
||||
driver := setupADBDriverExt(t)
|
||||
status, err := driver.Status()
|
||||
require.Nil(t, err)
|
||||
t.Log(status)
|
||||
}
|
||||
|
||||
func TestDriver_ADB_ScreenShot(t *testing.T) {
|
||||
driver := setupADBDriverExt(t)
|
||||
screenshot, err := driver.ScreenShot()
|
||||
if err != nil {
|
||||
t.Fatal(err)
|
||||
}
|
||||
|
||||
t.Log(os.WriteFile("/Users/hero/Desktop/s1.png", screenshot.Bytes(), 0o600))
|
||||
assert.Nil(t, err)
|
||||
path, err := saveScreenShot(screenshot, "1234")
|
||||
require.Nil(t, err)
|
||||
defer os.Remove(path)
|
||||
t.Logf("save screenshot to %s", path)
|
||||
}
|
||||
|
||||
func TestDriver_Rotation(t *testing.T) {
|
||||
func TestDriver_ADB_Rotation_TODO(t *testing.T) {
|
||||
driver := setupADBDriverExt(t)
|
||||
rotation, err := driver.Rotation()
|
||||
if err != nil {
|
||||
t.Fatal(err)
|
||||
}
|
||||
|
||||
require.Nil(t, err)
|
||||
t.Logf("x = %d\ty = %d\tz = %d", rotation.X, rotation.Y, rotation.Z)
|
||||
}
|
||||
|
||||
func TestDriver_DeviceSize(t *testing.T) {
|
||||
func TestDriver_ADB_DeviceSize(t *testing.T) {
|
||||
driver := setupADBDriverExt(t)
|
||||
deviceSize, err := driver.WindowSize()
|
||||
if err != nil {
|
||||
t.Fatal(err)
|
||||
}
|
||||
|
||||
t.Logf("width = %d\theight = %d", deviceSize.Width, deviceSize.Height)
|
||||
require.Nil(t, err)
|
||||
assert.Greater(t, deviceSize.Width, 200)
|
||||
assert.Greater(t, deviceSize.Height, 200)
|
||||
}
|
||||
|
||||
func TestDriver_Source(t *testing.T) {
|
||||
driver := setupUIA2DriverExt(t)
|
||||
|
||||
func TestDriver_ADB_Source(t *testing.T) {
|
||||
driver := setupADBDriverExt(t)
|
||||
source, err := driver.Source()
|
||||
if err != nil {
|
||||
t.Fatal(err)
|
||||
}
|
||||
|
||||
require.Nil(t, err)
|
||||
assert.Contains(t, source, "<?xml version")
|
||||
assert.Contains(t, source, "android.widget.TextView")
|
||||
t.Log(source)
|
||||
}
|
||||
|
||||
func TestDriver_BatteryInfo(t *testing.T) {
|
||||
func TestDriver_ADB_BatteryInfo_TODO(t *testing.T) {
|
||||
driver := setupADBDriverExt(t)
|
||||
batteryInfo, err := driver.BatteryInfo()
|
||||
if err != nil {
|
||||
t.Fatal(err)
|
||||
}
|
||||
|
||||
require.Nil(t, err)
|
||||
t.Log(batteryInfo)
|
||||
}
|
||||
|
||||
func TestDriver_DeviceInfo(t *testing.T) {
|
||||
func TestDriver_ADB_DeviceInfo_TODO(t *testing.T) {
|
||||
driver := setupADBDriverExt(t)
|
||||
devInfo, err := driver.DeviceInfo()
|
||||
if err != nil {
|
||||
t.Fatal(err)
|
||||
}
|
||||
|
||||
require.Nil(t, err)
|
||||
t.Logf("api version: %s", devInfo.APIVersion)
|
||||
t.Logf("platform version: %s", devInfo.PlatformVersion)
|
||||
t.Logf("bluetooth state: %s", devInfo.Bluetooth.State)
|
||||
}
|
||||
|
||||
func TestDriver_Tap(t *testing.T) {
|
||||
func TestDriver_ADB_TapXY(t *testing.T) {
|
||||
driver := setupADBDriverExt(t)
|
||||
err := driver.TapXY(0.4, 0.5)
|
||||
assert.Nil(t, err)
|
||||
}
|
||||
|
||||
func TestDriver_ADB_TapAbsXY(t *testing.T) {
|
||||
driver := setupADBDriverExt(t)
|
||||
err := driver.TapAbsXY(100, 300)
|
||||
assert.Nil(t, err)
|
||||
}
|
||||
|
||||
func TestDriver_ADB_Swipe(t *testing.T) {
|
||||
driver := setupADBDriverExt(t)
|
||||
err := driver.Swipe(0.5, 0.7, 0.5, 0.5,
|
||||
option.WithPressDuration(0.5))
|
||||
assert.Nil(t, err)
|
||||
}
|
||||
|
||||
func TestDriver_ADB_Drag(t *testing.T) {
|
||||
driver := setupADBDriverExt(t)
|
||||
err := driver.Drag(0.5, 0.7, 0.5, 0.5)
|
||||
assert.Nil(t, err)
|
||||
}
|
||||
|
||||
func TestDriver_ADB_Input(t *testing.T) {
|
||||
driver := setupADBDriverExt(t)
|
||||
err := driver.Input("Hi 你好\n",
|
||||
option.WithIdentifier("test"))
|
||||
assert.Nil(t, err)
|
||||
time.Sleep(time.Second * 1)
|
||||
err = driver.Input("123\n")
|
||||
assert.Nil(t, err)
|
||||
}
|
||||
|
||||
func TestDriver_ADB_PressBack(t *testing.T) {
|
||||
driver := setupADBDriverExt(t)
|
||||
err := driver.Back()
|
||||
assert.Nil(t, err)
|
||||
}
|
||||
|
||||
func TestDriver_ADB_SetRotation_TODO(t *testing.T) {
|
||||
driver := setupADBDriverExt(t)
|
||||
err := driver.SetRotation(types.Rotation{Z: 270})
|
||||
assert.Nil(t, err)
|
||||
}
|
||||
|
||||
func TestDriver_ADB_Orientation(t *testing.T) {
|
||||
driver := setupADBDriverExt(t)
|
||||
orientation, err := driver.Orientation()
|
||||
assert.Nil(t, err)
|
||||
assert.Equal(t, types.OrientationPortrait, orientation)
|
||||
}
|
||||
|
||||
func TestDriver_ADB_AppLaunchTerminate(t *testing.T) {
|
||||
driver := setupADBDriverExt(t)
|
||||
err := driver.AppLaunch("com.android.settings")
|
||||
assert.Nil(t, err)
|
||||
time.Sleep(1 * time.Second)
|
||||
ok, err := driver.AppTerminate("com.android.settings")
|
||||
assert.Nil(t, err)
|
||||
assert.True(t, ok)
|
||||
}
|
||||
|
||||
func TestDriver_ADB_ForegroundInfo(t *testing.T) {
|
||||
driver := setupADBDriverExt(t)
|
||||
err := driver.AppLaunch("com.android.settings")
|
||||
assert.Nil(t, err)
|
||||
app, err := driver.ForegroundInfo()
|
||||
assert.Nil(t, err)
|
||||
assert.Equal(t, "com.android.settings", app.PackageName)
|
||||
}
|
||||
|
||||
func TestDriver_ADB_ScreenRecord(t *testing.T) {
|
||||
driver := setupADBDriverExt(t)
|
||||
path, err := driver.ScreenRecord(5 * time.Second)
|
||||
assert.Nil(t, err)
|
||||
defer os.Remove(path)
|
||||
t.Log(path)
|
||||
}
|
||||
|
||||
func TestDriver_ADB_Backspace(t *testing.T) {
|
||||
driver := setupADBDriverExt(t)
|
||||
err := driver.Backspace(1)
|
||||
assert.Nil(t, err)
|
||||
}
|
||||
|
||||
func TestDriver_UIA2_TapXY(t *testing.T) {
|
||||
driver := setupUIA2DriverExt(t)
|
||||
driver.StartCaptureLog("")
|
||||
driver.StartCaptureLog("tap_xy")
|
||||
err := driver.TapXY(0.5, 0.5,
|
||||
option.WithIdentifier("test"),
|
||||
option.WithPressDuration(4))
|
||||
if err != nil {
|
||||
t.Fatal(err)
|
||||
}
|
||||
//time.Sleep(time.Second)
|
||||
//
|
||||
//err = driverExt.Tap(60.5, 125.5, WithIdentifier("test"))
|
||||
//if err != nil {
|
||||
// t.Fatal(err)
|
||||
//}
|
||||
//time.Sleep(time.Second)
|
||||
//result, _ := driverExt.StopCaptureLog()
|
||||
//t.Log(result)
|
||||
assert.Nil(t, err)
|
||||
result, _ := driver.StopCaptureLog()
|
||||
t.Log(result)
|
||||
}
|
||||
|
||||
func TestDriver_Swipe(t *testing.T) {
|
||||
func TestDriver_UIA2_Swipe(t *testing.T) {
|
||||
driver := setupUIA2DriverExt(t)
|
||||
err := driver.Swipe(400, 1000, 400, 500,
|
||||
err := driver.Swipe(0.5, 0.7, 0.5, 0.5,
|
||||
option.WithPressDuration(0.5))
|
||||
if err != nil {
|
||||
t.Fatal(err)
|
||||
}
|
||||
assert.Nil(t, err)
|
||||
}
|
||||
|
||||
func TestDriver_Swipe_Relative(t *testing.T) {
|
||||
func TestDriver_UIA2_Input(t *testing.T) {
|
||||
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)
|
||||
}
|
||||
time.Sleep(time.Millisecond * 200)
|
||||
|
||||
err = driver.Drag(400, 501.5, 400, 261.5)
|
||||
if err != nil {
|
||||
t.Fatal(err)
|
||||
}
|
||||
time.Sleep(time.Millisecond * 200)
|
||||
}
|
||||
|
||||
func TestDriver_SendKeys(t *testing.T) {
|
||||
driver := setupUIA2DriverExt(t)
|
||||
|
||||
err := driver.Input("辽宁省沈阳市新民市民族街36-4",
|
||||
err := driver.Input("Hi 你好\n",
|
||||
option.WithIdentifier("test"))
|
||||
if err != nil {
|
||||
t.Fatal(err)
|
||||
}
|
||||
|
||||
time.Sleep(time.Second * 2)
|
||||
|
||||
//err = driver.SendKeys("def")
|
||||
//if err != nil {
|
||||
// t.Fatal(err)
|
||||
//}
|
||||
//time.Sleep(time.Second * 2)
|
||||
|
||||
//err = driver.SendKeys("\\n")
|
||||
// err = driver.SendKeys(`\n`, false)
|
||||
//if err != nil {
|
||||
// t.Fatal(err)
|
||||
//}
|
||||
}
|
||||
|
||||
func TestDriver_PressBack(t *testing.T) {
|
||||
driver := setupADBDriverExt(t)
|
||||
err := driver.Back()
|
||||
if err != nil {
|
||||
t.Fatal(err)
|
||||
}
|
||||
}
|
||||
|
||||
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 {
|
||||
t.Fatal(err)
|
||||
}
|
||||
}
|
||||
|
||||
func TestDriver_GetOrientation(t *testing.T) {
|
||||
driver := setupUIA2DriverExt(t)
|
||||
_, _ = driver.AppTerminate("com.quark.browser")
|
||||
_ = driver.AppLaunch("com.quark.browser")
|
||||
time.Sleep(2 * time.Second)
|
||||
_ = driver.Home()
|
||||
}
|
||||
|
||||
func Test_getFreePort(t *testing.T) {
|
||||
freePort, err := builtin.GetFreePort()
|
||||
if err != nil {
|
||||
t.Fatal(err)
|
||||
}
|
||||
t.Log(freePort)
|
||||
}
|
||||
|
||||
func TestDriver_AppLaunch(t *testing.T) {
|
||||
device, _ := NewAndroidDevice()
|
||||
driver, err := device.NewDriver()
|
||||
if err != nil {
|
||||
t.Fatal(err)
|
||||
}
|
||||
|
||||
err = driver.AppLaunch("com.android.settings")
|
||||
if err != nil {
|
||||
t.Fatal(err)
|
||||
}
|
||||
|
||||
raw, err := driver.ScreenShot()
|
||||
if err != nil {
|
||||
t.Fatal(err)
|
||||
}
|
||||
|
||||
t.Log(os.WriteFile("s1.png", raw.Bytes(), 0o600))
|
||||
}
|
||||
|
||||
func TestDriver_IsAppInForeground(t *testing.T) {
|
||||
driver := setupUIA2DriverExt(t)
|
||||
// setupAndroidAdbDriver(t)
|
||||
|
||||
err := driver.AppLaunch("com.android.settings")
|
||||
checkErr(t, err)
|
||||
|
||||
app, err := driver.ForegroundInfo()
|
||||
checkErr(t, err)
|
||||
if app.PackageName != "com.android.settings" {
|
||||
t.FailNow()
|
||||
}
|
||||
if app.Activity != ".Settings" {
|
||||
t.FailNow()
|
||||
}
|
||||
}
|
||||
|
||||
func TestDriver_KeepAlive(t *testing.T) {
|
||||
device, _ := NewAndroidDevice()
|
||||
driver, err := device.NewDriver()
|
||||
if err != nil {
|
||||
t.Fatal(err)
|
||||
}
|
||||
|
||||
err = driver.AppLaunch("com.android.settings")
|
||||
if err != nil {
|
||||
t.Fatal(err)
|
||||
}
|
||||
|
||||
_, err = driver.ScreenShot()
|
||||
if err != nil {
|
||||
t.Fatal(err)
|
||||
}
|
||||
|
||||
time.Sleep(60 * time.Second)
|
||||
|
||||
_, err = driver.ScreenShot()
|
||||
if err != nil {
|
||||
t.Fatal(err)
|
||||
}
|
||||
}
|
||||
|
||||
func TestDriver_AppTerminate(t *testing.T) {
|
||||
device, _ := NewAndroidDevice()
|
||||
driver, err := device.NewDriver()
|
||||
if err != nil {
|
||||
t.Fatal(err)
|
||||
}
|
||||
|
||||
_, err = driver.AppTerminate("tv.danmaku.bili")
|
||||
if err != nil {
|
||||
t.Fatal(err)
|
||||
}
|
||||
}
|
||||
|
||||
func TestConvertPoints(t *testing.T) {
|
||||
data := "10-09 20:16:48.216 I/iesqaMonitor(17845): {\"duration\":0,\"end\":1665317808206,\"ext\":\"输入\",\"from\":{\"x\":0.0,\"y\":0.0},\"operation\":\"Gtf-SendKeys\",\"run_time\":627,\"start\":1665317807579,\"start_first\":0,\"start_last\":0,\"to\":{\"x\":0.0,\"y\":0.0}}\n10-09 20:18:22.899 I/iesqaMonitor(17845): {\"duration\":0,\"end\":1665317902898,\"ext\":\"进入直播间\",\"from\":{\"x\":717.0,\"y\":2117.5},\"operation\":\"Gtf-Tap\",\"run_time\":121,\"start\":1665317902777,\"start_first\":0,\"start_last\":0,\"to\":{\"x\":717.0,\"y\":2117.5}}\n10-09 20:18:32.063 I/iesqaMonitor(17845): {\"duration\":0,\"end\":1665317912062,\"ext\":\"第一次上划\",\"from\":{\"x\":1437.0,\"y\":2409.9},\"operation\":\"Gtf-Swipe\",\"run_time\":32,\"start\":1665317912030,\"start_first\":0,\"start_last\":0,\"to\":{\"x\":1437.0,\"y\":2409.9}}"
|
||||
|
||||
eps := ConvertPoints(strings.Split(data, "\n"))
|
||||
if len(eps) != 3 {
|
||||
t.Fatal()
|
||||
}
|
||||
}
|
||||
|
||||
func TestDriver_ShellInputUnicode(t *testing.T) {
|
||||
device, _ := NewAndroidDevice()
|
||||
driver, err := NewADBDriver(device)
|
||||
if err != nil {
|
||||
t.Fatal(err)
|
||||
}
|
||||
|
||||
err = driver.Input("test中文输入&")
|
||||
if err != nil {
|
||||
t.Fatal(err)
|
||||
}
|
||||
|
||||
raw, err := driver.ScreenShot()
|
||||
if err != nil {
|
||||
t.Fatal(err)
|
||||
}
|
||||
|
||||
t.Log(os.WriteFile("s1.png", raw.Bytes(), 0o600))
|
||||
}
|
||||
|
||||
func TestRecordVideo(t *testing.T) {
|
||||
driver := setupADBDriverExt(t)
|
||||
path, err := driver.ScreenRecord(5 * time.Second)
|
||||
if err != nil {
|
||||
t.Fatal(err)
|
||||
}
|
||||
println(path)
|
||||
}
|
||||
|
||||
func Test_Android_Backspace(t *testing.T) {
|
||||
driver := setupADBDriverExt(t)
|
||||
err := driver.Backspace(1)
|
||||
if err != nil {
|
||||
t.Fatal(err)
|
||||
}
|
||||
assert.Nil(t, err)
|
||||
time.Sleep(time.Second * 1)
|
||||
err = driver.Input("123\n")
|
||||
assert.Nil(t, err)
|
||||
}
|
||||
|
||||
@@ -10,15 +10,11 @@ func TestDriverSession(t *testing.T) {
|
||||
session := NewDriverSession()
|
||||
session.SetBaseURL("https://postman-echo.com")
|
||||
resp, err := session.GET("/get")
|
||||
if err != nil {
|
||||
t.Fatal(err)
|
||||
}
|
||||
assert.Nil(t, err)
|
||||
t.Log(resp)
|
||||
|
||||
resp, err = session.GET("/get?a=1&b=2")
|
||||
if err != nil {
|
||||
t.Fatal(err)
|
||||
}
|
||||
assert.Nil(t, err)
|
||||
t.Log(resp)
|
||||
|
||||
driverRequests := session.History()
|
||||
|
||||
@@ -6,11 +6,11 @@ import (
|
||||
"path/filepath"
|
||||
"regexp"
|
||||
"testing"
|
||||
"time"
|
||||
|
||||
"github.com/httprunner/httprunner/v5/internal/config"
|
||||
"github.com/httprunner/httprunner/v5/pkg/uixt/ai"
|
||||
"github.com/httprunner/httprunner/v5/pkg/uixt/option"
|
||||
"github.com/stretchr/testify/assert"
|
||||
)
|
||||
|
||||
func TestNewDriver1(t *testing.T) {
|
||||
@@ -85,66 +85,26 @@ func TestAndroidSwipeAction(t *testing.T) {
|
||||
|
||||
swipeAction := prepareSwipeAction(driver, "up", option.WithDirection("down"))
|
||||
err := swipeAction(driver)
|
||||
checkErr(t, err)
|
||||
assert.Nil(t, err)
|
||||
|
||||
swipeAction = prepareSwipeAction(driver, "up", option.WithCustomDirection(0.5, 0.5, 0.5, 0.9))
|
||||
err = swipeAction(driver)
|
||||
checkErr(t, err)
|
||||
assert.Nil(t, err)
|
||||
}
|
||||
|
||||
func TestAndroidSwipeToTapApp(t *testing.T) {
|
||||
driver := setupDriverExt(t)
|
||||
err := driver.SwipeToTapApp("抖音")
|
||||
checkErr(t, err)
|
||||
assert.Nil(t, err)
|
||||
}
|
||||
|
||||
func TestAndroidSwipeToTapTexts(t *testing.T) {
|
||||
driver := setupDriverExt(t)
|
||||
err := driver.AppLaunch("com.ss.android.ugc.aweme")
|
||||
checkErr(t, err)
|
||||
assert.Nil(t, err)
|
||||
|
||||
err = driver.swipeToTapTexts([]string{"点击进入直播间", "直播中"}, option.WithDirection("up"))
|
||||
checkErr(t, err)
|
||||
}
|
||||
|
||||
func checkErr(t *testing.T, err error, msg ...string) {
|
||||
if err != nil {
|
||||
if len(msg) == 0 {
|
||||
t.Fatal(err)
|
||||
} else {
|
||||
t.Fatal(msg, err)
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
func TestGetSimulationDuration(t *testing.T) {
|
||||
params := []float64{1.23}
|
||||
duration := getSimulationDuration(params)
|
||||
if duration != 1230 {
|
||||
t.Fatal("getSimulationDuration failed")
|
||||
}
|
||||
|
||||
params = []float64{1, 2}
|
||||
duration = getSimulationDuration(params)
|
||||
if duration < 1000 || duration > 2000 {
|
||||
t.Fatal("getSimulationDuration failed")
|
||||
}
|
||||
|
||||
params = []float64{1, 5, 0.7, 5, 10, 0.3}
|
||||
duration = getSimulationDuration(params)
|
||||
if duration < 1000 || duration > 10000 {
|
||||
t.Fatal("getSimulationDuration failed")
|
||||
}
|
||||
}
|
||||
|
||||
func TestSleepStrict(t *testing.T) {
|
||||
startTime := time.Now()
|
||||
sleepStrict(startTime, 1230)
|
||||
dur := time.Since(startTime).Milliseconds()
|
||||
t.Log(dur)
|
||||
if dur < 1230 || dur > 1300 {
|
||||
t.Fatalf("sleepRandom failed, dur: %d", dur)
|
||||
}
|
||||
assert.Nil(t, err)
|
||||
}
|
||||
|
||||
func TestGetScreenShot(t *testing.T) {
|
||||
|
||||
53
pkg/uixt/driver_utils_test.go
Normal file
53
pkg/uixt/driver_utils_test.go
Normal file
@@ -0,0 +1,53 @@
|
||||
package uixt
|
||||
|
||||
import (
|
||||
"strings"
|
||||
"testing"
|
||||
"time"
|
||||
|
||||
"github.com/httprunner/httprunner/v5/internal/builtin"
|
||||
"github.com/stretchr/testify/assert"
|
||||
)
|
||||
|
||||
func TestGetSimulationDuration(t *testing.T) {
|
||||
params := []float64{1.23}
|
||||
duration := getSimulationDuration(params)
|
||||
if duration != 1230 {
|
||||
t.Fatal("getSimulationDuration failed")
|
||||
}
|
||||
|
||||
params = []float64{1, 2}
|
||||
duration = getSimulationDuration(params)
|
||||
if duration < 1000 || duration > 2000 {
|
||||
t.Fatal("getSimulationDuration failed")
|
||||
}
|
||||
|
||||
params = []float64{1, 5, 0.7, 5, 10, 0.3}
|
||||
duration = getSimulationDuration(params)
|
||||
if duration < 1000 || duration > 10000 {
|
||||
t.Fatal("getSimulationDuration failed")
|
||||
}
|
||||
}
|
||||
|
||||
func TestSleepStrict(t *testing.T) {
|
||||
startTime := time.Now()
|
||||
sleepStrict(startTime, 1230)
|
||||
dur := time.Since(startTime).Milliseconds()
|
||||
t.Log(dur)
|
||||
if dur < 1230 || dur > 1300 {
|
||||
t.Fatalf("sleepRandom failed, dur: %d", dur)
|
||||
}
|
||||
}
|
||||
|
||||
func TestUtils_GetFreePort(t *testing.T) {
|
||||
freePort, err := builtin.GetFreePort()
|
||||
assert.Nil(t, err)
|
||||
assert.Greater(t, freePort, 10000)
|
||||
t.Log(freePort)
|
||||
}
|
||||
|
||||
func TestUtils_ConvertPoints(t *testing.T) {
|
||||
data := "10-09 20:16:48.216 I/iesqaMonitor(17845): {\"duration\":0,\"end\":1665317808206,\"ext\":\"输入\",\"from\":{\"x\":0.0,\"y\":0.0},\"operation\":\"Gtf-SendKeys\",\"run_time\":627,\"start\":1665317807579,\"start_first\":0,\"start_last\":0,\"to\":{\"x\":0.0,\"y\":0.0}}\n10-09 20:18:22.899 I/iesqaMonitor(17845): {\"duration\":0,\"end\":1665317902898,\"ext\":\"进入直播间\",\"from\":{\"x\":717.0,\"y\":2117.5},\"operation\":\"Gtf-Tap\",\"run_time\":121,\"start\":1665317902777,\"start_first\":0,\"start_last\":0,\"to\":{\"x\":717.0,\"y\":2117.5}}\n10-09 20:18:32.063 I/iesqaMonitor(17845): {\"duration\":0,\"end\":1665317912062,\"ext\":\"第一次上划\",\"from\":{\"x\":1437.0,\"y\":2409.9},\"operation\":\"Gtf-Swipe\",\"run_time\":32,\"start\":1665317912030,\"start_first\":0,\"start_last\":0,\"to\":{\"x\":1437.0,\"y\":2409.9}}"
|
||||
eps := ConvertPoints(strings.Split(data, "\n"))
|
||||
assert.Equal(t, 3, len(eps))
|
||||
}
|
||||
@@ -7,99 +7,77 @@ import (
|
||||
"testing"
|
||||
|
||||
"github.com/httprunner/httprunner/v5/pkg/uixt/ai"
|
||||
"github.com/stretchr/testify/assert"
|
||||
"github.com/stretchr/testify/require"
|
||||
)
|
||||
|
||||
func setupHDCDriverExt(t *testing.T) *XTDriver {
|
||||
device, err := NewHarmonyDevice()
|
||||
if err != nil {
|
||||
t.Fatal(err)
|
||||
}
|
||||
require.Nil(t, err)
|
||||
hdcDriver, err := NewHDCDriver(device)
|
||||
if err != nil {
|
||||
t.Fatal(err)
|
||||
}
|
||||
require.Nil(t, err)
|
||||
return NewXTDriver(hdcDriver, ai.WithCVService(ai.CVServiceTypeVEDEM))
|
||||
}
|
||||
|
||||
func TestWindowSize(t *testing.T) {
|
||||
driver := setupHDCDriverExt(t)
|
||||
size, err := driver.WindowSize()
|
||||
if err != nil {
|
||||
t.Fatal(err)
|
||||
}
|
||||
assert.Nil(t, err)
|
||||
t.Log(fmt.Sprintf("width: %d, height: %d", size.Width, size.Height))
|
||||
}
|
||||
|
||||
func TestHarmonyTap(t *testing.T) {
|
||||
driver := setupHDCDriverExt(t)
|
||||
err := driver.TapAbsXY(200, 2000)
|
||||
if err != nil {
|
||||
t.Fatal(err)
|
||||
}
|
||||
assert.Nil(t, err)
|
||||
}
|
||||
|
||||
func TestHarmonySwipe(t *testing.T) {
|
||||
driver := setupHDCDriverExt(t)
|
||||
err := driver.Swipe(0.5, 0.5, 0.1, 0.5)
|
||||
if err != nil {
|
||||
t.Fatal(err)
|
||||
}
|
||||
assert.Nil(t, err)
|
||||
}
|
||||
|
||||
func TestHarmonyInput(t *testing.T) {
|
||||
driver := setupHDCDriverExt(t)
|
||||
err := driver.Input("test")
|
||||
if err != nil {
|
||||
t.Fatal(err)
|
||||
}
|
||||
assert.Nil(t, err)
|
||||
}
|
||||
|
||||
func TestHomeScreen(t *testing.T) {
|
||||
driver := setupHDCDriverExt(t)
|
||||
err := driver.Home()
|
||||
if err != nil {
|
||||
t.Fatal(err)
|
||||
}
|
||||
assert.Nil(t, err)
|
||||
}
|
||||
|
||||
func TestUnlock(t *testing.T) {
|
||||
driver := setupHDCDriverExt(t)
|
||||
err := driver.Unlock()
|
||||
if err != nil {
|
||||
t.Fatal(err)
|
||||
}
|
||||
assert.Nil(t, err)
|
||||
}
|
||||
|
||||
func TestPressBack(t *testing.T) {
|
||||
driver := setupHDCDriverExt(t)
|
||||
err := driver.Back()
|
||||
if err != nil {
|
||||
t.Fatal(err)
|
||||
}
|
||||
assert.Nil(t, err)
|
||||
}
|
||||
|
||||
func TestScreenshot(t *testing.T) {
|
||||
driver := setupHDCDriverExt(t)
|
||||
screenshot, err := driver.ScreenShot()
|
||||
if err != nil {
|
||||
t.Fatal(err)
|
||||
}
|
||||
assert.Nil(t, err)
|
||||
t.Log(screenshot)
|
||||
}
|
||||
|
||||
func TestLaunch(t *testing.T) {
|
||||
driver := setupHDCDriverExt(t)
|
||||
err := driver.AppLaunch("")
|
||||
if err != nil {
|
||||
t.Fatal(err)
|
||||
}
|
||||
assert.Nil(t, err)
|
||||
}
|
||||
|
||||
func TestForegroundApp(t *testing.T) {
|
||||
driver := setupHDCDriverExt(t)
|
||||
appInfo, err := driver.ForegroundInfo()
|
||||
if err != nil {
|
||||
t.Fatal(err)
|
||||
}
|
||||
assert.Nil(t, err)
|
||||
t.Log(appInfo)
|
||||
}
|
||||
|
||||
@@ -3,11 +3,12 @@
|
||||
package uixt
|
||||
|
||||
import (
|
||||
"fmt"
|
||||
"os"
|
||||
"testing"
|
||||
"time"
|
||||
|
||||
"github.com/rs/zerolog/log"
|
||||
"github.com/stretchr/testify/assert"
|
||||
"github.com/stretchr/testify/require"
|
||||
|
||||
"github.com/httprunner/httprunner/v5/pkg/uixt/ai"
|
||||
"github.com/httprunner/httprunner/v5/pkg/uixt/option"
|
||||
@@ -19,33 +20,24 @@ func setupWDADriverExt(t *testing.T) *XTDriver {
|
||||
option.WithWDAPort(8700),
|
||||
option.WithWDAMjpegPort(8800),
|
||||
option.WithWDALogOn(true))
|
||||
if err != nil {
|
||||
t.Fatal(err)
|
||||
}
|
||||
require.Nil(t, err)
|
||||
driver, err := device.NewDriver()
|
||||
if err != nil {
|
||||
t.Fatal(err)
|
||||
}
|
||||
require.Nil(t, err)
|
||||
return NewXTDriver(driver, ai.WithCVService(ai.CVServiceTypeVEDEM))
|
||||
}
|
||||
|
||||
func TestInstall(t *testing.T) {
|
||||
func TestDevice_IOS_Install(t *testing.T) {
|
||||
driver := setupWDADriverExt(t)
|
||||
err := driver.GetDevice().Install("xxx.ipa",
|
||||
option.WithRetryTimes(5))
|
||||
log.Error().Err(err)
|
||||
if err != nil {
|
||||
t.Fatal(err)
|
||||
}
|
||||
assert.Nil(t, err)
|
||||
}
|
||||
|
||||
func TestNewIOSDevice(t *testing.T) {
|
||||
device, _ := NewIOSDevice(
|
||||
func TestDevice_IOS_New(t *testing.T) {
|
||||
device, err := NewIOSDevice(
|
||||
option.WithWDAPort(8700),
|
||||
option.WithWDAMjpegPort(8800))
|
||||
if device != nil {
|
||||
t.Log(device)
|
||||
}
|
||||
require.Nil(t, err)
|
||||
|
||||
device, _ = NewIOSDevice(option.WithUDID("xxxx"))
|
||||
if device != nil {
|
||||
@@ -68,50 +60,37 @@ func TestNewIOSDevice(t *testing.T) {
|
||||
}
|
||||
}
|
||||
|
||||
func TestIOSDevice_GetPackageInfo(t *testing.T) {
|
||||
func TestDevice_IOS_GetPackageInfo(t *testing.T) {
|
||||
device, err := NewIOSDevice(option.WithWDAPort(8700))
|
||||
checkErr(t, err)
|
||||
require.Nil(t, err)
|
||||
appInfo, err := device.GetPackageInfo("com.ss.iphone.ugc.Aweme")
|
||||
checkErr(t, err)
|
||||
assert.Nil(t, err)
|
||||
t.Logf("%+v", appInfo)
|
||||
}
|
||||
|
||||
func TestDriver_WDA_DeviceScaleRatio(t *testing.T) {
|
||||
driver := setupWDADriverExt(t)
|
||||
|
||||
scaleRatio, err := driver.IDriver.(*WDADriver).Scale()
|
||||
if err != nil {
|
||||
t.Fatal(err)
|
||||
}
|
||||
|
||||
require.Nil(t, err)
|
||||
t.Logf("%+v", scaleRatio)
|
||||
}
|
||||
|
||||
func TestDriver_WDA_DeleteSession(t *testing.T) {
|
||||
driver := setupWDADriverExt(t)
|
||||
|
||||
err := driver.DeleteSession()
|
||||
if err != nil {
|
||||
t.Fatal(err)
|
||||
}
|
||||
assert.Nil(t, err)
|
||||
}
|
||||
|
||||
func TestDriver_WDA_HealthCheck(t *testing.T) {
|
||||
driver := setupWDADriverExt(t)
|
||||
|
||||
err := driver.IDriver.(*WDADriver).HealthCheck()
|
||||
if err != nil {
|
||||
t.Fatal(err)
|
||||
}
|
||||
assert.Nil(t, err)
|
||||
}
|
||||
|
||||
func TestDriver_WDA_GetAppiumSettings(t *testing.T) {
|
||||
driver := setupWDADriverExt(t)
|
||||
|
||||
settings, err := driver.IDriver.(*WDADriver).GetAppiumSettings()
|
||||
if err != nil {
|
||||
t.Fatal(err)
|
||||
}
|
||||
assert.Nil(t, err)
|
||||
t.Logf("%+v", settings)
|
||||
}
|
||||
|
||||
@@ -126,87 +105,56 @@ func TestDriver_WDA_SetAppiumSettings(t *testing.T) {
|
||||
|
||||
// settings, err := driver.SetAppiumSettings(map[string]interface{}{"dismissAlertButtonSelector": "暂不"})
|
||||
settings, err := driver.IDriver.(*WDADriver).SetAppiumSettings(map[string]interface{}{key: value})
|
||||
if err != nil {
|
||||
t.Fatal(err)
|
||||
}
|
||||
if settings[key] != value {
|
||||
t.Fatal(settings[key])
|
||||
}
|
||||
assert.Nil(t, err)
|
||||
assert.Equal(t, settings[key], value)
|
||||
}
|
||||
|
||||
func TestDriver_WDA_IsWdaHealthy(t *testing.T) {
|
||||
driver := setupWDADriverExt(t)
|
||||
|
||||
healthy, err := driver.IDriver.(*WDADriver).IsHealthy()
|
||||
if err != nil {
|
||||
t.Fatal(err)
|
||||
}
|
||||
if !healthy {
|
||||
t.Fatal("assert healthy failed")
|
||||
}
|
||||
assert.Nil(t, err)
|
||||
assert.True(t, healthy)
|
||||
}
|
||||
|
||||
func TestDriver_WDA_Status(t *testing.T) {
|
||||
driver := setupWDADriverExt(t)
|
||||
|
||||
status, err := driver.Status()
|
||||
if err != nil {
|
||||
t.Fatal(err)
|
||||
}
|
||||
if !status.Ready {
|
||||
t.Fatal("assert device status failed")
|
||||
}
|
||||
assert.Nil(t, err)
|
||||
assert.True(t, status.Ready)
|
||||
}
|
||||
|
||||
func TestDriver_WDA_DeviceInfo(t *testing.T) {
|
||||
driver := setupWDADriverExt(t)
|
||||
|
||||
info, err := driver.DeviceInfo()
|
||||
if err != nil {
|
||||
t.Fatal(err)
|
||||
}
|
||||
if len(info.Model) == 0 {
|
||||
t.Fatal(info)
|
||||
}
|
||||
assert.Nil(t, err)
|
||||
assert.NotEmpty(t, info.Model)
|
||||
}
|
||||
|
||||
func TestDriver_WDA_BatteryInfo(t *testing.T) {
|
||||
driver := setupWDADriverExt(t)
|
||||
|
||||
batteryInfo, err := driver.BatteryInfo()
|
||||
if err != nil {
|
||||
t.Fatal()
|
||||
}
|
||||
assert.Nil(t, err)
|
||||
t.Log(batteryInfo)
|
||||
}
|
||||
|
||||
func TestDriver_WDA_WindowSize(t *testing.T) {
|
||||
driver := setupWDADriverExt(t)
|
||||
|
||||
size, err := driver.WindowSize()
|
||||
if err != nil {
|
||||
t.Fatal()
|
||||
}
|
||||
assert.Nil(t, err)
|
||||
t.Log(size)
|
||||
}
|
||||
|
||||
func TestDriver_WDA_Screen(t *testing.T) {
|
||||
driver := setupWDADriverExt(t)
|
||||
|
||||
screen, err := driver.IDriver.(*WDADriver).Screen()
|
||||
if err != nil {
|
||||
t.Fatal(err)
|
||||
}
|
||||
assert.Nil(t, err)
|
||||
t.Log(screen)
|
||||
}
|
||||
|
||||
func TestDriver_WDA_Home(t *testing.T) {
|
||||
driver := setupWDADriverExt(t)
|
||||
|
||||
err := driver.Home()
|
||||
if err != nil {
|
||||
t.Fatal(err)
|
||||
}
|
||||
assert.Nil(t, err)
|
||||
}
|
||||
|
||||
func TestDriver_WDA_AppLaunchTerminate(t *testing.T) {
|
||||
@@ -214,42 +162,32 @@ func TestDriver_WDA_AppLaunchTerminate(t *testing.T) {
|
||||
|
||||
bundleId := "com.apple.Preferences"
|
||||
err := driver.AppLaunch(bundleId)
|
||||
if err != nil {
|
||||
t.Fatal(err)
|
||||
}
|
||||
assert.Nil(t, err)
|
||||
time.Sleep(2 * time.Second)
|
||||
|
||||
_, err = driver.AppTerminate(bundleId)
|
||||
if err != nil {
|
||||
t.Fatal(err)
|
||||
}
|
||||
assert.Nil(t, err)
|
||||
}
|
||||
|
||||
func TestDriver_WDA_TapXY(t *testing.T) {
|
||||
driver := setupWDADriverExt(t)
|
||||
|
||||
err := driver.TapXY(0.2, 0.2)
|
||||
if err != nil {
|
||||
t.Fatal(err)
|
||||
}
|
||||
assert.Nil(t, err)
|
||||
}
|
||||
|
||||
func TestDriver_WDA_DoubleTapXY(t *testing.T) {
|
||||
driver := setupWDADriverExt(t)
|
||||
|
||||
err := driver.DoubleTapXY(0.2, 0.2)
|
||||
if err != nil {
|
||||
t.Fatal(err)
|
||||
}
|
||||
assert.Nil(t, err)
|
||||
}
|
||||
|
||||
func TestDriver_WDA_TouchAndHold(t *testing.T) {
|
||||
driver := setupWDADriverExt(t)
|
||||
|
||||
err := driver.TouchAndHold(0.2, 0.2)
|
||||
if err != nil {
|
||||
t.Fatal(err)
|
||||
}
|
||||
assert.Nil(t, err)
|
||||
}
|
||||
|
||||
func TestDriver_WDA_Drag(t *testing.T) {
|
||||
@@ -257,28 +195,23 @@ func TestDriver_WDA_Drag(t *testing.T) {
|
||||
|
||||
err := driver.Drag(0.8, 0.5, 0.2, 0.5,
|
||||
option.WithDuration(0.5))
|
||||
if err != nil {
|
||||
t.Fatal(err)
|
||||
}
|
||||
assert.Nil(t, err)
|
||||
}
|
||||
|
||||
func TestDriver_WDA_Swipe(t *testing.T) {
|
||||
driver := setupWDADriverExt(t)
|
||||
|
||||
err := driver.Swipe(0.8, 0.5, 0.2, 0.5)
|
||||
if err != nil {
|
||||
t.Fatal(err)
|
||||
}
|
||||
assert.Nil(t, err)
|
||||
}
|
||||
|
||||
func TestDriver_WDA_Input(t *testing.T) {
|
||||
driver := setupWDADriverExt(t)
|
||||
driver.StartCaptureLog("hrp_wda_log")
|
||||
err := driver.Input("test中文", option.WithIdentifier("test"))
|
||||
result, _ := driver.StopCaptureLog()
|
||||
if err != nil {
|
||||
t.Fatal(err)
|
||||
}
|
||||
assert.Nil(t, err)
|
||||
result, err := driver.StopCaptureLog()
|
||||
assert.Nil(t, err)
|
||||
t.Log(result)
|
||||
}
|
||||
|
||||
@@ -286,19 +219,13 @@ func TestDriver_WDA_PressButton(t *testing.T) {
|
||||
driver := setupWDADriverExt(t)
|
||||
|
||||
err := driver.IDriver.(*WDADriver).PressButton(types.DeviceButtonVolumeUp)
|
||||
if err != nil {
|
||||
t.Fatal(err)
|
||||
}
|
||||
assert.Nil(t, err)
|
||||
time.Sleep(time.Second * 1)
|
||||
err = driver.IDriver.(*WDADriver).PressButton(types.DeviceButtonVolumeDown)
|
||||
if err != nil {
|
||||
t.Fatal(err)
|
||||
}
|
||||
assert.Nil(t, err)
|
||||
time.Sleep(time.Second * 1)
|
||||
err = driver.IDriver.(*WDADriver).PressButton(types.DeviceButtonHome)
|
||||
if err != nil {
|
||||
t.Fatal(err)
|
||||
}
|
||||
assert.Nil(t, err)
|
||||
}
|
||||
|
||||
func TestDriver_WDA_ScreenShot(t *testing.T) {
|
||||
@@ -306,22 +233,17 @@ func TestDriver_WDA_ScreenShot(t *testing.T) {
|
||||
|
||||
// without save file
|
||||
screenshot, err := driver.ScreenShot()
|
||||
if err != nil {
|
||||
t.Fatal(err)
|
||||
}
|
||||
assert.Nil(t, err)
|
||||
_ = screenshot
|
||||
|
||||
// save file
|
||||
screenshot, err = driver.ScreenShot(option.WithScreenShotFileName("123"))
|
||||
if err != nil {
|
||||
t.Fatal(err)
|
||||
}
|
||||
assert.Nil(t, err)
|
||||
_ = screenshot
|
||||
|
||||
path, err := saveScreenShot(screenshot, "1234")
|
||||
if err != nil {
|
||||
t.Fatal(err)
|
||||
}
|
||||
assert.Nil(t, err)
|
||||
defer os.Remove(path)
|
||||
t.Logf("save screenshot to %s", path)
|
||||
}
|
||||
|
||||
@@ -332,62 +254,44 @@ func TestDriver_WDA_Source(t *testing.T) {
|
||||
var err error
|
||||
|
||||
source, err = driver.Source()
|
||||
if err != nil {
|
||||
t.Fatal(err)
|
||||
}
|
||||
assert.Nil(t, err)
|
||||
|
||||
source, err = driver.Source(option.WithFormat(option.SourceFormatJSON))
|
||||
if err != nil {
|
||||
t.Fatal(err)
|
||||
}
|
||||
assert.Nil(t, err)
|
||||
|
||||
source, err = driver.Source(option.WithFormat(option.SourceFormatDescription))
|
||||
if err != nil {
|
||||
t.Fatal(err)
|
||||
}
|
||||
assert.Nil(t, err)
|
||||
|
||||
source, err = driver.Source(
|
||||
option.WithFormat(option.SourceFormatXML),
|
||||
option.WithExcludedAttributes([]string{"label", "type", "index"}))
|
||||
if err != nil {
|
||||
t.Fatal(err)
|
||||
}
|
||||
assert.Nil(t, err)
|
||||
t.Logf("source: %s", source)
|
||||
}
|
||||
|
||||
func TestDriver_WDA_GetForegroundApp(t *testing.T) {
|
||||
driver := setupWDADriverExt(t)
|
||||
app, err := driver.ForegroundInfo()
|
||||
if err != nil {
|
||||
t.Fatal(err)
|
||||
}
|
||||
assert.Nil(t, err)
|
||||
t.Log(app)
|
||||
}
|
||||
|
||||
func TestDriver_WDA_AccessibleSource(t *testing.T) {
|
||||
driver := setupWDADriverExt(t)
|
||||
|
||||
source, err := driver.IDriver.(*WDADriver).AccessibleSource()
|
||||
if err != nil {
|
||||
t.Fatal(err)
|
||||
}
|
||||
fmt.Println(source)
|
||||
assert.Nil(t, err)
|
||||
t.Log(source)
|
||||
}
|
||||
|
||||
func TestDriver_WDA_ScreenRecord(t *testing.T) {
|
||||
driver := setupWDADriverExt(t)
|
||||
path, err := driver.ScreenRecord(5 * time.Second)
|
||||
if err != nil {
|
||||
t.Fatal(err)
|
||||
}
|
||||
println(path)
|
||||
assert.Nil(t, err)
|
||||
t.Log(path)
|
||||
}
|
||||
|
||||
func TestDriver_WDA_Backspace(t *testing.T) {
|
||||
driver := setupWDADriverExt(t)
|
||||
|
||||
err := driver.Backspace(3)
|
||||
if err != nil {
|
||||
t.Fatal(err)
|
||||
}
|
||||
assert.Nil(t, err)
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user