0

我正在提供 udid,它正在破坏,但它没有执行我的测试,它只是在某个时候重置然后停止工作。

我正在使用:- java-1.8 appium-6.1.0 appium server- 基于 gui 的版本 1.13.0 testng- 6.8

如果我不初始化 loadconfig ,它就不会初始化驱动程序,并且 beforesuite 注释甚至都不起作用。

testng:这是testng文件

    <test name="Emulator">
        <parameter name="runAs" value="grid"></parameter>
        <parameter name="platform" value="mobile"></parameter>
        <parameter name="runOn" value="emulator-5554"></parameter>
        <parameter name="port" value="4726"></parameter>
        <classes>
            <class name="TestCase.Login"/>
        </classes>
    </test>
    <test name="Samsung J7">
        <parameter name="runAs" value="grid"></parameter>
        <parameter name="platform" value="mobile"></parameter>
        <parameter name="runOn" value="52039763fe37a3eb"></parameter>
        <parameter name="port" value="4729"></parameter>
        <classes>
            <class name="TestCase.Login"/>
        </classes>
    </test>

setCapability 文件:用于设置能力

@Parameters({"runOn"})
    @BeforeSuite
    public static void loadConfigProp(@Optional("chrome_normal") String runOn) throws IOException
    {//Importing the files
        FileInputStream fis = new FileInputStream(System.getProperty("user.dir")+"\\src\\main\\resources\\Properties\\"+"data.properties");
        prop.load(fis);
        app= new File(prop.getProperty("app.path"));
        //APPLICATION_NAME = prop.getProperty("application.path");
        BASE_PKG = prop.getProperty("base.pkg");
        APP_ACTIVITY = prop.getProperty("application.activity");        AUTOMATION_INSTRUMENTATION=prop.getProperty("automation.instumentation");
        DEVICE_NAME=prop.getProperty("device.name");

        PLATFORM_NAME=prop.getProperty("platform.name");

        capabilities.setCapability(MobileCapabilityType.PLATFORM_NAME,
                Base.PLATFORM_NAME);
        capabilities.setCapability(MobileCapabilityType.DEVICE_NAME, "Android");
        capabilities.setCapability(MobileCapabilityType.APP,app.getAbsolutePath());
        capabilities.setCapability(AndroidMobileCapabilityType.APP_ACTIVITY,
                Base.APP_ACTIVITY);
        capabilities.setCapability("noReset","true");
        capabilities.setCapability("fullReset","false");
        capabilities.setCapability(AndroidMobileCapabilityType.APP_PACKAGE,
                Base.BASE_PKG);
        if(runOn.equals("52039763fe37a3eb"))
            {
                capabilities.setCapability("udid", "52039763fe37a3eb");
                driver = new AndroidDriver(new URL("http://127.0.0.1:4729/wd/hub"), capabilities);
            }else if(runOn.equals("emulator-5554"))
            {
                capabilities.setCapability("udid", "emulator-5554");
                driver = new AndroidDriver(new URL("http://127.0.0.1:4726/wd/hub"), capabilities);
            }
    }

加载配置:调用加载配置文件

 @BeforeTest
    public void start() throws IOException {
        Base b= new Base();
        b.loadConfigProp("52039763fe37a3eb");
        b.loadConfigProp("emulator-5554");
        driver=b.getDriver();
    }
4

1 回答 1

0
  1. 从函数中删除静态访问修饰符loadConfigProp
  2. 考虑将您的 AndroidDriver 实例放入ThreadLocal

如果不查看完整代码以及 TestNG 配置,很难判断还有什么问题,因此同时您可以查看并行测试 - 最佳实践文章,其中包含提示和技巧以及可以用作测试基础的项目.

于 2019-08-24T09:51:17.100 回答