用户界面结果测试

Posted

技术标签:

【中文标题】用户界面结果测试【英文标题】:User interface result test 【发布时间】:2016-07-20 15:36:24 【问题描述】:

是否可以在 ios 中使用自动化测试来测试用户操作的结果?例如,如果用户单击保存按钮,我如何检查应用程序是否创建了文件。我已经尝试过 Appium 和 Apple 制造的 XCUITesting,但我就是想不通。

【问题讨论】:

【参考方案1】:

使用 Apple 的 XCUITesting 测试应用程序存在于一个单独的进程中,并且无法直接访问您应用程序的沙箱,因此,除非您的应用程序的 UI 提供某种视觉反馈表明文件已创建,否则无法使用官方工具。

您可以使用 SBTUITestTunnel(免责声明,我是该库的作者),它扩展了 UI 测试功能,允许编写这样的测试。例如,假设您的应用在应用的 Document 文件夹中保存了一个 test_file.txt,您可以编写以下测试:

func testThatFileExistsAfterTap() 
    // launch app
    app = SBTUITunneledApplication()
    app.launchTunnelWithOptions([SBTUITunneledApplicationLaunchOptionResetFilesystem]) 
         // do additional setup before the app launches, if needed
    

    app.buttons["action"].tap() // button that triggers file save

    // add some expectation on the UI to wait for the write to complete (UIActivity indicator, etc)

    let fileData = app.downloadItemFromPath("test_file.txt", relativeTo: .DocumentDirectory)

    // XCTAssert() that fileData contains the expected data

请注意如何传递SBTUITunneledApplicationLaunchOptionResetFilesystem,它会在启动时重置应用的文件系统。此选项允许您编写独立于先前会话的测试。

【讨论】:

你能帮帮我吗,我已经将文件添加到项目手册中,并在每个文件中选择了目标,但构建总是失败并出现错误:链接器命令失败,找不到符号架构 arm64,所以我无法在应用程序中启动隧道。 您尝试过使用 CocoaPods 吗?这是迄今为止添加库最简单的方法。 对不起,我是个白痴,但我就是做不到。我尝试使用 CocoaPods,安装了 pod 文件(我在示例项目中使用了那个,但重写了目标),然后使用了 CocoaPods 生成的工作空间,我一直卡在这里。 嗯,我用一个空项目尝试了这个库,效果很好,但是我正在处理的项目是由Unity生成的。你知道我怎样才能让它工作吗? 我从未使用过 Unity,但我希望它能够正常工作,手动添加文件时,您是否确保将 Server 文件夹中的文件添加到应用程序目标,文件位于Client 指向 UI 测试目标,Common 指向两者?

以上是关于用户界面结果测试的主要内容,如果未能解决你的问题,请参考以下文章

测试用例

测试用例

学生管理App测试用例

日程管理测试用例

R语言图形用户界面数据挖掘包Rattle:加载UCI糖尿病数据集并启动Rattle图形用户界面数据集变量重命名,为数据集结果变量添加标签数据划分(训练集测试集验证集)随机数设置

SQLsrv-表中行的权限