mirror of
https://github.com/httprunner/httprunner.git
synced 2026-05-17 18:17:36 +08:00
123 lines
2.3 KiB
Go
123 lines
2.3 KiB
Go
//go:build localtest
|
|
|
|
package uixt
|
|
|
|
import (
|
|
"bytes"
|
|
"fmt"
|
|
"os"
|
|
"regexp"
|
|
"testing"
|
|
)
|
|
|
|
func checkOCR(buff *bytes.Buffer) error {
|
|
service, err := newVEDEMImageService()
|
|
if err != nil {
|
|
return err
|
|
}
|
|
imageResult, err := service.GetImage(buff)
|
|
if err != nil {
|
|
return err
|
|
}
|
|
fmt.Println(fmt.Sprintf("imageResult: %v", imageResult))
|
|
return nil
|
|
}
|
|
|
|
func TestOCRWithScreenshot(t *testing.T) {
|
|
setupAndroid(t)
|
|
|
|
raw, err := driverExt.Driver.Screenshot()
|
|
if err != nil {
|
|
t.Fatal(err)
|
|
}
|
|
|
|
if err := checkOCR(raw); err != nil {
|
|
t.Fatal(err)
|
|
}
|
|
}
|
|
|
|
func TestOCRWithLocalFile(t *testing.T) {
|
|
imagePath := "/Users/debugtalk/Downloads/s1.png"
|
|
|
|
file, err := os.ReadFile(imagePath)
|
|
if err != nil {
|
|
t.Fatal(err)
|
|
}
|
|
|
|
buf := new(bytes.Buffer)
|
|
buf.Read(file)
|
|
|
|
if err := checkOCR(buf); err != nil {
|
|
t.Fatal(err)
|
|
}
|
|
}
|
|
|
|
func matchPopup(text string) bool {
|
|
for _, popup := range popups {
|
|
if regexp.MustCompile(popup[1]).MatchString(text) {
|
|
return true
|
|
}
|
|
}
|
|
return false
|
|
}
|
|
|
|
func TestMatchRegex(t *testing.T) {
|
|
testData := []string{
|
|
"以后再说", "我知道了", "同意", "拒绝", "稍后",
|
|
"始终允许", "继续使用", "仅在使用中允许",
|
|
}
|
|
for _, text := range testData {
|
|
if !matchPopup(text) {
|
|
t.Fatal(text)
|
|
}
|
|
}
|
|
}
|
|
|
|
func TestTapUIWithScreenshot(t *testing.T) {
|
|
serialNumber := os.Getenv("SERIAL_NUMBER")
|
|
device, _ := NewAndroidDevice(WithSerialNumber(serialNumber))
|
|
driver, err := device.NewDriver()
|
|
if err != nil {
|
|
t.Fatal(err)
|
|
}
|
|
|
|
err = driver.TapByUIDetection(
|
|
WithScreenShotUITypes("dyhouse", "shoppingbag"))
|
|
if err != nil {
|
|
t.Fatal(err)
|
|
}
|
|
}
|
|
|
|
func TestDriverExtOCR(t *testing.T) {
|
|
driverExt, err := iosDevice.NewDriver()
|
|
checkErr(t, err)
|
|
|
|
point, err := driverExt.FindScreenText("抖音")
|
|
checkErr(t, err)
|
|
|
|
t.Logf("point.X: %v, point.Y: %v", point.X, point.Y)
|
|
driverExt.Driver.TapFloat(point.X, point.Y-20)
|
|
}
|
|
|
|
func TestClosePopup(t *testing.T) {
|
|
setupAndroid(t)
|
|
|
|
screenResult, err := driverExt.GetScreenResult(
|
|
WithScreenShotClosePopups(true), WithScreenShotUpload(true))
|
|
if err != nil {
|
|
t.Logf("get screen result failed for popup handler: %v", err)
|
|
return
|
|
}
|
|
t.Logf("screen result: %v", screenResult)
|
|
|
|
if screenResult.Popup == nil {
|
|
t.Log("there are no popups here")
|
|
return
|
|
}
|
|
t.Logf("popup info: %v", screenResult.Popup)
|
|
|
|
if err = driverExt.tapPopupHandler(screenResult.Popup); err != nil {
|
|
t.Fatal(err)
|
|
}
|
|
}
|