用户界面结果测试
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
指向两者?以上是关于用户界面结果测试的主要内容,如果未能解决你的问题,请参考以下文章
R语言图形用户界面数据挖掘包Rattle:加载UCI糖尿病数据集并启动Rattle图形用户界面数据集变量重命名,为数据集结果变量添加标签数据划分(训练集测试集验证集)随机数设置