zoukankan      html  css  js  c++  java
  • appium-flutter-driver 测试flutter_boost项目_Java语言

    flutter_boost混合了原生代码和flutter代码,会涉及到flutter和原生界面的跳转。

    使用IDEA创建项目:

     然后finsh即可。

    导入appium-flutter-driver代码

    目前appium-flutter-driver还没有放到mvn repository上,所以,我这里是将appium-flutter-driver的kotlin代码拷贝到我的项目里了。

     github地址:https://github.com/truongsinh/appium-flutter-driver/tree/master/finder/kotlin/src/main/kotlin/pro/truongsinh/appium_flutter

     在pom.xml上添加依赖:

        <!--添加依赖 -->
        <dependencies>
    
            <dependency>
                <groupId>io.appium</groupId>
                <artifactId>java-client</artifactId>
                <version>7.3.0</version>
            </dependency>
    
            <dependency>
                <groupId>org.seleniumhq.selenium</groupId>
                <artifactId>selenium-java</artifactId>
                <version>3.141.59</version>
            </dependency>
    
            <dependency>
                <groupId>org.jetbrains.kotlinx</groupId>
                <artifactId>kotlinx-serialization-runtime</artifactId>
                <version>0.20.0</version>
            </dependency>
    
        </dependencies>

    编写测试代码:

    import io.appium.java_client.MobileElement;
    import io.appium.java_client.android.AndroidDriver;
    import io.appium.java_client.service.local.AppiumDriverLocalService;
    import org.openqa.selenium.remote.DesiredCapabilities;
    import pro.truongsinh.appium_flutter.FlutterFinder;
    import pro.truongsinh.appium_flutter.finder.FlutterElement;
    
    import java.io.File;
    
    public class AppiumTestDemo {
        public static String appPtah = "/flutterboost-debug.apk";
    
        public static void main(String[] args) {
            File rootFile = new File("");
            System.out.println("测试app文件路径:" + rootFile.getAbsolutePath());
            File appFile = new File(rootFile.getAbsolutePath() + appPtah);
            System.out.println("测试app文件路径:" + appFile.getAbsolutePath());
            appPtah = appFile.getAbsolutePath();
    
            AndroidDriver<MobileElement> driver = getFlutterDriver();
    
            // 切换成本地的代码
            driver.context("NATIVE_APP");
    
            MobileElement openNativeWebElement = driver.findElementById("com.taobao.idlefish.flutterboostexample:id/open_flutter");
            openNativeWebElement.click();
            System.out.println("点击完成跳转至flutter页面完成");
    
            // 切换成flutter端的代码
            driver.context("FLUTTER");
    
            FlutterFinder find = new FlutterFinder(driver);
            FlutterElement buttonFinder = find.byValueKey("openFirstPage");
            buttonFinder.click();
    
            System.out.println("openFirstPage页面完成");
    
            try {
                Thread.sleep(50000);
            } catch (InterruptedException e) {
                e.printStackTrace();
            }
    
            driver.quit();
        }
    
        public static AndroidDriver<MobileElement> getFlutterDriver() {
            System.out.println("getFlutterDriver");
    
            DesiredCapabilities flutterCapabilities = new DesiredCapabilities();
            flutterCapabilities.setCapability("platformName", "Android");
            flutterCapabilities.setCapability("deviceName", "one plus");
            flutterCapabilities.setCapability("app", appPtah);
            flutterCapabilities.setCapability("platformVersion", "10");
            flutterCapabilities.setCapability("noReset", true);
            flutterCapabilities.setCapability("automationName", "Flutter");
    
            AppiumDriverLocalService service = AppiumDriverLocalService.buildDefaultService();
            AndroidDriver<MobileElement> driver = new AndroidDriver<MobileElement>(service.getUrl(), flutterCapabilities);
    
            System.out.println("getFlutterDriver finish");
            return driver;
        }
    }

    代码已经上传到github上了:

    https://github.com/hbolin/AppiumFlutterBoostTest

  • 相关阅读:
    转:LoadRunner响应时间与用户体验时间不一致问题的深入分析
    转:JMeter 参数化之利用JDBC Connection Configuration从数据库读取数据并关联变量
    转:Web性能压力测试工具之ApacheBench(ab)详解
    转:Web网站性能测试分析及调优实例
    转:apache 的mod-status
    转:Android应用性能测试
    转:Jmeter以non-gui模式进行分布式测试
    转:详解JMeter正则表达式(2)
    转:详解JMeter正则表达式(1)
    支持 导入 导出Excel,导出Word, 导出PDF。
  • 原文地址:https://www.cnblogs.com/hbolin/p/12510967.html
Copyright © 2011-2022 走看看