如何为Android和iOS运行一个功能文件

时间:2019-10-09 14:29:39

标签: java android ios cucumber appium

我需要针对Android和iOS运行测试。我有一个适用于2个平台的功能文件,因为步骤相同。以及针对Android和iOS的不同步骤定义文件和页面对象文件。我如何只在Android / iOS上运行一个功能文件,并在两者上运行。

1 个答案:

答案 0 :(得分:0)

使用不同的步骤定义文件,似乎不可能。

在当前框架中,我在执行maven命令时传递系统属性,并在步骤定义中获取该属性(isIos()方法检查我传递的设备参数),然后调用实际方法。在此框架中,iOS和Android应用程序的所有步骤定义均相同,这使此方法合理。但是对于这种方法,您还应该在执行开始时初始化所有页面对象。(我不是在注入依赖项,而是在开始时对其进行初始化,然后在步骤定义文件中注入驱动程序)

@Then("The user clicks add to basket button")
public void theUserClicksAddToBasketButton() {
    try {
        if (Hooks.isIos()) {
            iosHomePage.clickAddToBasket();
        } else {
            androidHomePage.clickAddToBasket();
        }
        logger.info("The user clicked add to basket button");
    } catch (Throwable err) {
        logger.fatal("The user can not clicks add to basket button");
        Assert.fail("ERROR : " + "The user can not clicks add to basket button" + err);
    }
}