【问题标题】:Use Appium to black-test Android app使用 Appium 对 Android 应用进行黑测
【发布时间】:2014-10-21 23:28:54
【问题描述】:

我仍在学习使用 Android 应用进行 Appium 测试。我想知道这是否可行。

假设我有 A.apk,我想将 A.apk 安装到我的 Android 设备上,然后启动应用程序并尝试点击每个可点击的链接(按钮、帮助链接、图片链接等)并找到如果有任何一个坏了就出去。

我无权访问 A.apk 的源代码,但我可能需要访问多达 100 个其他 Android 应用程序,因此手动查看每个链接是非常不可能的。

【问题讨论】:

    标签: android appium black-box-testing


    【解决方案1】:

    简短的回答是:可以
    编写此类测试的工作量取决于您希望测试的深度,但即使对于最复杂的场景,您也不需要任何应用源。

    下面是更详细的答案。

    您可以编写仅依赖用户应该看到的 UI 元素的黑盒测试。
    在许多情况下,通过显示在它们上的文本来识别可点击对象就足够了。

    在 java 中测试快照:

     // find your button by the text
     WebElement button = driver.findElement(By.name("my button"));
     button.click();
     // you can then wait for the next screen to appear, scroll to element, etc.
    
     // then you verify that certain text is on screen
     WebElement title = driver.findElement(By.text("some Title"));
     assertNotNull(title);
    

    您可以参考examplessome documentation

    对于不希望/不能仅依赖文本的更复杂的情况,您可能需要使用它们的类(即 Button、TextView、EditText)、XPath 值、屏幕上的唯一 id 字符串手动识别某些元素。
    您可以通过使用appium inspectorUI automator viewer 检查被测应用程序(在编写测试之前只需要执行一次)来获取所有这些信息。
    同样,除了 .apk 文件之外,您不需要任何东西。

    【讨论】:

    • 谢谢kiruwka!
      是否可以对 apk 进行完全黑测试,这意味着甚至无需运行 uiautomatorviewer 一次?例如,我可以使用 Appium 来启动 apk。然后使用深度优先搜索并关注每个可点击的 WebElement,不管按钮、文本视图、视图等。
    • @user908645 你当然可以做到。然而,在我的理解中,功能 UI 测试通常与手动用户测试具有相同的含义:即用户点击“Button1”后 -> 他应该“查看第 2 页的文字 abc 等。
    【解决方案2】:

    您不一定需要源代码来彻底测试您的 APK。由于 Appium 提供了很好的方法来测试你的 APK(不需要 src),为什么不使用真实设备自动化测试呢?不幸的是,模拟器不能提供好的结果(没有 OEM 定制,没有真正的硬件、网络等)

    【讨论】:

    • 非常感谢 erkz 提供的信息。是的,我选择 Appium 的原因是,从我所读到的关于它的内容中,Appium 可用于在没有源代码的情况下对 apk 进行黑色测试。但我发现的所有示例都要求我使用某种标识符,例如资源 ID、文本等,通过 findElements... 调用来定位特定的 WebElement。让我们说,如果我不了解 xpath、resource-id、apk 使用的文本,我如何遍历当前页面上的所有可点击链接/按钮。以及更多如何从一项活动导航到另一项活动。任何示例代码都有帮助
    猜你喜欢
    • 2015-01-04
    • 2020-12-02
    • 2016-05-05
    • 2014-10-28
    • 1970-01-01
    • 2014-08-03
    • 2020-05-02
    • 2015-11-14
    • 1970-01-01
    相关资源
    最近更新 更多