如何在Reactnative应用程序的测试自动化中重用stepdefinations和pageobjects?

时间:2019-01-10 13:12:19

标签: react-native selenium-webdriver appium cucumber-jvm

我创建了一个Java-Cucumber框架,该框架使用Cucumber-JVM,appium,java,maven在ReactNative驱动的App上运行自动化方案。 因此,使用ReactNative,我们有了Android和iOS应用。

该框架基于Selenium Multibrowser概念,该驱动程序一旦被实例化(对于浏览器)就可以利用现有的页面对象。

问题1:对于移动设备而言,尽管Page Object方法相同,但是IOS和Android的定位器却不同。 [我没有使用Page工厂(@Findby批注),所以,我想知道如何重用iOS编写的针对Android的页面对象方法? 问题2:我已使用Pico-Container将Page对象播种到Step-def中。 World通过BaseClass实例化,它是Android和iOS Stepdefs的父类。但是,如果我调用,则Android中的page objectmager步骤defs,然后获取NullPointer异常。

问题3:如何使用Cucumber重用iOS for Android的step-defs实现?

我们将Singleton模式用于Appium驱动程序实例化。

1 个答案:

答案 0 :(得分:1)

您应该看看QAF,它旨在通过包括BDD在内的不同测试编写方式来支持Web,移动和Web服务功能测试自动化。

通过locator repositoryresource management的概念,您可以使用相同的代码/页面。

此外,您还可以在项目中针对不同平台或跨项目重用步骤实现(常见的可重用步骤打包在jar中,并在项目中添加了jar)。如果由于功能不同,步骤对于不同的平台有不同的实现,则可以通过在不同的软件包中执行步骤来管理它。在这种情况下,您可以在执行时configure step provider package

简而言之,通过采用框架提供的不同概念,可以实现最高级别的可重用性。