mirror of
https://github.com/httprunner/httprunner.git
synced 2026-06-02 14:29:44 +08:00
fix: merge
This commit is contained in:
@@ -45,6 +45,11 @@ func NewStubAndroidDriver(dev *uixt.AndroidDevice) (*StubAndroidDriver, error) {
|
||||
ADBDriver: adbDriver,
|
||||
}
|
||||
|
||||
// setup driver
|
||||
if err := driver.Setup(); err != nil {
|
||||
return nil, err
|
||||
}
|
||||
|
||||
return driver, nil
|
||||
}
|
||||
|
||||
@@ -55,10 +60,6 @@ func (sad *StubAndroidDriver) Setup() error {
|
||||
fmt.Sprintf("forward port %d->%s failed: %v",
|
||||
socketLocalPort, StubSocketName, err))
|
||||
}
|
||||
err = sad.Session.SetupPortForward(socketLocalPort)
|
||||
if err != nil {
|
||||
return err
|
||||
}
|
||||
|
||||
douyinLocalPort, err := sad.Device.Forward(AndroidDouyinPort)
|
||||
if err != nil {
|
||||
@@ -272,11 +273,6 @@ func (sad *StubAndroidDriver) LogoutNoneUI(packageName string) error {
|
||||
log.Err(err).Msgf("%v", res)
|
||||
return err
|
||||
}
|
||||
fmt.Printf("%v", resp)
|
||||
if err != nil {
|
||||
return err
|
||||
}
|
||||
time.Sleep(3 * time.Second)
|
||||
return nil
|
||||
}
|
||||
|
||||
|
||||
@@ -4,7 +4,6 @@ import (
|
||||
"fmt"
|
||||
"time"
|
||||
|
||||
"github.com/httprunner/httprunner/v5/internal/builtin"
|
||||
"github.com/httprunner/httprunner/v5/pkg/uixt"
|
||||
"github.com/httprunner/httprunner/v5/pkg/uixt/ai"
|
||||
"github.com/httprunner/httprunner/v5/pkg/uixt/option"
|
||||
@@ -34,7 +33,7 @@ type XTDriver struct {
|
||||
}
|
||||
|
||||
func (dExt *XTDriver) InstallByUrl(url string, opts ...option.InstallOption) error {
|
||||
appPath, err := builtin.DownloadFileByUrl(url)
|
||||
appPath, err := uixt.DownloadFileByUrl(url)
|
||||
if err != nil {
|
||||
return err
|
||||
}
|
||||
|
||||
@@ -1,9 +1,11 @@
|
||||
package driver_ext
|
||||
|
||||
import (
|
||||
"bytes"
|
||||
"encoding/json"
|
||||
"fmt"
|
||||
"net/url"
|
||||
"os"
|
||||
"time"
|
||||
|
||||
"github.com/httprunner/httprunner/v5/code"
|
||||
@@ -16,8 +18,8 @@ import (
|
||||
)
|
||||
|
||||
type StubIOSDriver struct {
|
||||
Session *uixt.DriverSession
|
||||
*uixt.WDADriver
|
||||
|
||||
timeout time.Duration
|
||||
douyinUrlPrefix string
|
||||
douyinLiteUrlPrefix string
|
||||
@@ -30,6 +32,9 @@ const (
|
||||
)
|
||||
|
||||
func NewStubIOSDriver(dev *uixt.IOSDevice) (*StubIOSDriver, error) {
|
||||
// lazy setup WDA
|
||||
dev.Options.LazySetup = true
|
||||
|
||||
wdaDriver, err := uixt.NewWDADriver(dev)
|
||||
if err != nil {
|
||||
return nil, err
|
||||
@@ -37,6 +42,7 @@ func NewStubIOSDriver(dev *uixt.IOSDevice) (*StubIOSDriver, error) {
|
||||
driver := &StubIOSDriver{
|
||||
WDADriver: wdaDriver,
|
||||
timeout: 10 * time.Second,
|
||||
Session: uixt.NewDriverSession(),
|
||||
}
|
||||
|
||||
// setup driver
|
||||
@@ -52,10 +58,6 @@ func (s *StubIOSDriver) Setup() error {
|
||||
if err != nil {
|
||||
return err
|
||||
}
|
||||
err = s.Session.SetupPortForward(localPort)
|
||||
if err != nil {
|
||||
return err
|
||||
}
|
||||
s.Session.SetBaseURL(fmt.Sprintf("http://127.0.0.1:%d", localPort))
|
||||
|
||||
localDouyinPort, err := builtin.GetFreePort()
|
||||
@@ -104,7 +106,7 @@ func (s *StubIOSDriver) Source(srcOpt ...option.SourceOption) (string, error) {
|
||||
return string(resp), nil
|
||||
}
|
||||
|
||||
func (s *StubIOSDriver) OpenUrl(urlStr string, options ...option.ActionOption) (err error) {
|
||||
func (s *StubIOSDriver) OpenUrl(urlStr string, opts ...option.ActionOption) (err error) {
|
||||
targetUrl := fmt.Sprintf("/openURL?url=%s", url.QueryEscape(urlStr))
|
||||
_, err = s.Session.GET(targetUrl)
|
||||
if err != nil {
|
||||
@@ -152,17 +154,12 @@ func (s *StubIOSDriver) LoginDouyin(packageName, phoneNumber string, captcha, pa
|
||||
} else {
|
||||
return info, fmt.Errorf("password and capcha is empty")
|
||||
}
|
||||
bsJSON, err := json.Marshal(params)
|
||||
if err != nil {
|
||||
return info, err
|
||||
}
|
||||
|
||||
urlPrefix, err := s.getUrlPrefix(packageName)
|
||||
if err != nil {
|
||||
return info, err
|
||||
}
|
||||
fullUrl := urlPrefix + "/host/login/account/" + urlPrefix
|
||||
resp, err := s.Session.POST(bsJSON, fullUrl)
|
||||
fullUrl := urlPrefix + "/host/login/account/"
|
||||
resp, err := s.Session.POST(params, fullUrl)
|
||||
if err != nil {
|
||||
return info, err
|
||||
}
|
||||
@@ -219,11 +216,7 @@ func (s *StubIOSDriver) EnableDevtool(packageName string, enable bool) (err erro
|
||||
params := map[string]interface{}{
|
||||
"enable": enable,
|
||||
}
|
||||
bsJSON, err := json.Marshal(params)
|
||||
if err != nil {
|
||||
return err
|
||||
}
|
||||
resp, err := s.Session.POST(bsJSON, fullUrl)
|
||||
resp, err := s.Session.POST(params, fullUrl)
|
||||
if err != nil {
|
||||
return err
|
||||
}
|
||||
@@ -278,3 +271,10 @@ func (s *StubIOSDriver) getUrlPrefix(packageName string) (urlPrefix string, err
|
||||
}
|
||||
return urlPrefix, nil
|
||||
}
|
||||
|
||||
func (s *StubIOSDriver) ScreenShot(opts ...option.ActionOption) (*bytes.Buffer, error) {
|
||||
if os.Getenv("WINGS_LOCAL") == "true" {
|
||||
return s.Device.ScreenShot()
|
||||
}
|
||||
return s.WDADriver.ScreenShot()
|
||||
}
|
||||
|
||||
35
pkg/uixt/driver_ext/ios_stub_driver_test.go
Normal file
35
pkg/uixt/driver_ext/ios_stub_driver_test.go
Normal file
@@ -0,0 +1,35 @@
|
||||
package driver_ext
|
||||
|
||||
import (
|
||||
"github.com/httprunner/httprunner/v5/pkg/uixt"
|
||||
"github.com/httprunner/httprunner/v5/pkg/uixt/option"
|
||||
"testing"
|
||||
)
|
||||
|
||||
var (
|
||||
iOSStubDriver *StubIOSDriver
|
||||
)
|
||||
|
||||
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 setupIOSStubDriver(t *testing.T) {
|
||||
iOSDevice, err := uixt.NewIOSDevice(option.WithWDAPort(8700), option.WithWDAMjpegPort(8800), option.WithResetHomeOnStartup(false))
|
||||
checkErr(t, err)
|
||||
iOSStubDriver, err = NewStubIOSDriver(iOSDevice)
|
||||
checkErr(t, err)
|
||||
}
|
||||
|
||||
func TestIOSStubDriver_LoginNoneUI(t *testing.T) {
|
||||
setupIOSStubDriver(t)
|
||||
info, err := iOSStubDriver.LoginNoneUI("com.ss.iphone.ugc.AwemeInhouse", "12343418541", "", "im112233")
|
||||
checkErr(t, err)
|
||||
t.Logf("login info: %+v", info)
|
||||
}
|
||||
Reference in New Issue
Block a user