【发布时间】:2020-12-18 20:36:23
【问题描述】:
我的 Appium 测试已针对我的 Android 应用顺利运行。使用 Maven 和 Kotlin 编码。我的应用只有一个 LAUNCHER 活动,即我的 SplashScreenActivity。
目前,我有一个提供操作系统级别功能的 baseTest 类,例如 waitForElement 或 swipeScreen(dir: Direction, amount: Int)。
然后我有一个 AppTest 类扩展它并提供一些特定于应用程序的功能。最重要的是一个名为startApp() 的函数,它启动我的应用程序,以我的测试用户身份登录并导航到我的主屏幕。特定 UI 的每个测试都扩展此 AppTest 类并创建其自己的 getToUI 函数,该函数仅运行 startApp 函数,然后自动单击其他几个按钮以访问要测试的特定 UI。
现在我正在尝试将页面对象模型设计模式添加到我的测试中。我应该如何实现这种导航到要测试的 UI?我应该把代码导航到每个页面类的init中的页面吗?还是有更优雅的解决方案?
【问题讨论】:
-
所以你正在尝试做一些事情,比如拥有
someElement.click()。某些元素包含标识符和点击背后的逻辑? -
不,我首先要问的是如何访问该页面。在我的应用程序中,您必须先登录,然后单击 5 个按钮才能进入我要测试的页面。我见过的例子都没有解释你应该如何进入你想要测试的 UI 页面。我看到的例子只是说“创建一个新的登录页面(驱动程序)”现在开始点击元素。在我可以运行 Appium 测试之前,我的应用应该如何进入 LoginPage?
-
你是用 Java 还是 C# 做的?
-
这是在 Kotlin 中,因为我正在测试和 Android 应用程序。一旦我得到这个工作,我会尝试让 IOS 应用程序也能工作
-
无论哪种方式,您都可以使用方法 Login() 创建一个抽象类。这会将您带到所有测试的相同入口点。然后你所有的测试都简单地继承抽象类。如果您在 Java 中使用 TestNG 组合执行此操作,我可以更详细地介绍。
标签: appium appium-android