mirror of
https://github.com/httprunner/httprunner.git
synced 2026-09-07 00:17:37 +08:00
feat: GetPackageInfo for ios device
This commit is contained in:
@@ -1 +1 @@
|
|||||||
v5.0.0+2412202201
|
v5.0.0+2412231738
|
||||||
|
|||||||
@@ -518,7 +518,7 @@ func (dev *AndroidDevice) GetPackageInfo(packageName string) (AppInfo, error) {
|
|||||||
appInfo.AppBaseInfo.VersionName = appVersion
|
appInfo.AppBaseInfo.VersionName = appVersion
|
||||||
} else {
|
} else {
|
||||||
log.Warn().Msg("failed to get package version")
|
log.Warn().Msg("failed to get package version")
|
||||||
return appInfo, err
|
return appInfo, errors.Wrap(code.DeviceGetInfoError, err.Error())
|
||||||
}
|
}
|
||||||
|
|
||||||
// get package path
|
// get package path
|
||||||
@@ -527,7 +527,7 @@ func (dev *AndroidDevice) GetPackageInfo(packageName string) (AppInfo, error) {
|
|||||||
appInfo.AppBaseInfo.AppPath = packagePath
|
appInfo.AppBaseInfo.AppPath = packagePath
|
||||||
} else {
|
} else {
|
||||||
log.Warn().Msg("failed to get package path")
|
log.Warn().Msg("failed to get package path")
|
||||||
return appInfo, err
|
return appInfo, errors.Wrap(code.DeviceGetInfoError, err.Error())
|
||||||
}
|
}
|
||||||
|
|
||||||
// get package md5
|
// get package md5
|
||||||
@@ -536,7 +536,7 @@ func (dev *AndroidDevice) GetPackageInfo(packageName string) (AppInfo, error) {
|
|||||||
appInfo.AppBaseInfo.AppMD5 = packageMD5
|
appInfo.AppBaseInfo.AppMD5 = packageMD5
|
||||||
} else {
|
} else {
|
||||||
log.Warn().Msg("failed to get package md5")
|
log.Warn().Msg("failed to get package md5")
|
||||||
return appInfo, err
|
return appInfo, errors.Wrap(code.DeviceGetInfoError, err.Error())
|
||||||
}
|
}
|
||||||
|
|
||||||
return appInfo, nil
|
return appInfo, nil
|
||||||
|
|||||||
@@ -270,7 +270,7 @@ type AppBaseInfo struct {
|
|||||||
PackageName string `json:"packageName,omitempty"` // android package name
|
PackageName string `json:"packageName,omitempty"` // android package name
|
||||||
Activity string `json:"activity,omitempty"` // android activity
|
Activity string `json:"activity,omitempty"` // android activity
|
||||||
VersionName string `json:"versionName,omitempty"`
|
VersionName string `json:"versionName,omitempty"`
|
||||||
VersionCode int `json:"versionCode,omitempty"`
|
VersionCode string `json:"versionCode,omitempty"`
|
||||||
AppName string `json:"appName,omitempty"`
|
AppName string `json:"appName,omitempty"`
|
||||||
AppPath string `json:"appPath,omitempty"`
|
AppPath string `json:"appPath,omitempty"`
|
||||||
AppMD5 string `json:"appMD5,omitempty"`
|
AppMD5 string `json:"appMD5,omitempty"`
|
||||||
|
|||||||
@@ -374,12 +374,9 @@ func (dev *IOSDevice) getAppInfo(packageName string) (appInfo AppInfo, err error
|
|||||||
if app.CFBundleIdentifier == packageName {
|
if app.CFBundleIdentifier == packageName {
|
||||||
appInfo.BundleId = app.CFBundleIdentifier
|
appInfo.BundleId = app.CFBundleIdentifier
|
||||||
appInfo.AppName = app.CFBundleName
|
appInfo.AppName = app.CFBundleName
|
||||||
appInfo.VersionName = app.CFBundleShortVersionString
|
|
||||||
appInfo.PackageName = app.CFBundleIdentifier
|
appInfo.PackageName = app.CFBundleIdentifier
|
||||||
versionCode, err := strconv.Atoi(app.CFBundleVersion)
|
appInfo.VersionName = app.CFBundleShortVersionString
|
||||||
if err == nil {
|
appInfo.VersionCode = app.CFBundleVersion
|
||||||
appInfo.VersionCode = versionCode
|
|
||||||
}
|
|
||||||
return appInfo, err
|
return appInfo, err
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -799,5 +796,34 @@ func (dev *IOSDevice) GetCurrentWindow() (WindowInfo, error) {
|
|||||||
}
|
}
|
||||||
|
|
||||||
func (dev *IOSDevice) GetPackageInfo(packageName string) (AppInfo, error) {
|
func (dev *IOSDevice) GetPackageInfo(packageName string) (AppInfo, error) {
|
||||||
return AppInfo{}, nil
|
svc, err := installationproxy.New(dev.d)
|
||||||
|
if err != nil {
|
||||||
|
return AppInfo{}, err
|
||||||
|
}
|
||||||
|
defer svc.Close()
|
||||||
|
|
||||||
|
apps, err := svc.BrowseAllApps()
|
||||||
|
if err != nil {
|
||||||
|
return AppInfo{}, err
|
||||||
|
}
|
||||||
|
|
||||||
|
for _, app := range apps {
|
||||||
|
if app.CFBundleIdentifier != packageName {
|
||||||
|
continue
|
||||||
|
}
|
||||||
|
|
||||||
|
return AppInfo{
|
||||||
|
Name: app.CFBundleName,
|
||||||
|
AppBaseInfo: AppBaseInfo{
|
||||||
|
BundleId: app.CFBundleIdentifier,
|
||||||
|
PackageName: app.CFBundleIdentifier,
|
||||||
|
VersionName: app.CFBundleShortVersionString,
|
||||||
|
VersionCode: app.CFBundleVersion,
|
||||||
|
AppName: app.CFBundleDisplayName,
|
||||||
|
AppPath: app.Path,
|
||||||
|
},
|
||||||
|
}, nil
|
||||||
|
}
|
||||||
|
return AppInfo{}, errors.Wrap(code.DeviceGetInfoError,
|
||||||
|
fmt.Sprintf("%s not found", packageName))
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -73,7 +73,7 @@ func TestNewIOSDevice(t *testing.T) {
|
|||||||
func TestIOSDevice_GetPackageInfo(t *testing.T) {
|
func TestIOSDevice_GetPackageInfo(t *testing.T) {
|
||||||
device, err := NewIOSDevice(WithWDAPort(8700))
|
device, err := NewIOSDevice(WithWDAPort(8700))
|
||||||
checkErr(t, err)
|
checkErr(t, err)
|
||||||
appInfo, err := device.GetPackageInfo("com.apple.Preferences")
|
appInfo, err := device.GetPackageInfo("com.ss.iphone.ugc.Aweme")
|
||||||
checkErr(t, err)
|
checkErr(t, err)
|
||||||
t.Log(appInfo)
|
t.Log(appInfo)
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -14,7 +14,6 @@ import (
|
|||||||
"os/exec"
|
"os/exec"
|
||||||
"path/filepath"
|
"path/filepath"
|
||||||
"regexp"
|
"regexp"
|
||||||
"strconv"
|
|
||||||
"strings"
|
"strings"
|
||||||
"syscall"
|
"syscall"
|
||||||
"time"
|
"time"
|
||||||
@@ -478,10 +477,7 @@ func (wd *wdaDriver) GetForegroundApp() (appInfo AppInfo, err error) {
|
|||||||
appInfo.BundleId = app.CFBundleIdentifier
|
appInfo.BundleId = app.CFBundleIdentifier
|
||||||
appInfo.PackageName = app.CFBundleIdentifier
|
appInfo.PackageName = app.CFBundleIdentifier
|
||||||
appInfo.VersionName = app.CFBundleShortVersionString
|
appInfo.VersionName = app.CFBundleShortVersionString
|
||||||
versionCode, err := strconv.Atoi(app.CFBundleVersion)
|
appInfo.VersionCode = app.CFBundleVersion
|
||||||
if err == nil {
|
|
||||||
appInfo.VersionCode = versionCode
|
|
||||||
}
|
|
||||||
return appInfo, err
|
return appInfo, err
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user