时间:2020-08-03 13:43作者:admin来源:未知人气:310我要评论(0)
当我们向人们介绍OneNote的自动化时,有一个问题被相当频繁地提到,担忧我们的自动化框架中UI层面测试偏少。
我不喜欢基于UI的自动化。我知道在市场上有许多的自动化系统都是基于UI的自动化(点击按钮以及类似的),甚至在我们自己的办公室中,我们也有几个相似功能的工具在维护。我了解这些工具的优势,因为它们让自动化更准确地模拟真实用户的行为。但在这种自动化运行时,我总觉得似乎太不可靠-有可能是一个窗口突然冒出来再干扰到焦点;有一些工具自身的缺陷,会导致Windows消息丢失。你可以想像每天都有成千上万的测试运行,自动化系统的间歇性缺陷所造成“烦人”的失败,会使我们依赖的自动化系统不再可靠。此外,这些工具都需要考虑时间因素-可以执行测试之前,整个UI都需要重新渲染。如果测试的目的是为了验证一些并不需要UI正常工作的场景(文件IO或同步就是和很好的例子),甚至不需要UI。
所以我们在OneNote中大致是这么做的:
启动OneNote
加载onmain.dll到内存中
加载我们的测试系统/工具(Loadourtestharness)
我们的测试工具通过.NET的反射加载onmain.dll,并引用方法(referencetheactions)。说得非常简约,但只能是这种程度的讨论。
现在把onmain.dll中所有的方法(theactionswithintheonmain.dll)都暴露给我们测试工具。
最后,我们可以从我们测试工具里调用我们想调用的任何方法。
换句话说,如果我想模拟用户单击"粗体(Bold)"按钮,使文字变成粗体,我并不需要"粗体"按钮是可见的。我就可以调用"粗体"按钮事件(clickevent),立即运行代码。
这种方式还是有些不足。首先,任何UI测试所覆盖的可能会丢失。例如,假设有一个缺陷-粗体按钮一直都是不可用的。我的自动化测试将发现不了这个缺陷。第二,我必须要小心上下文。虽然我可以调用当用户点击粗体按钮后运行的代码,我需要确保在调用之前,让光标放在一个页面上。
但是,因为我们使用这种方式,使得我们的自动化系统变得更加可靠,与此同时当我们测试人员学习使用这套系统之后,我们得到更高的覆盖率。
相关阅读 onenote如何设置画笔的颜色和厚度onenote如何使用页面版本onenote如何禁用笔记本的历史记录onenote如何插入带框公式onenote软件如何按照作者查找笔记onenote如何查找昨天编辑的笔记内容onenote如何新建共享笔记本onenote如何一键备份修改过的文件onenote如何备份所有的笔记本onenote如何将新建的便签放置在桌面侧边
热门文章 OneNote中如何打开其他人共享的笔记本?将全网 OneNote 插件一网打尽OneNote 的存储空间到底多大?如何给 OneNote 免费扩容?Notability的一些使用技巧及知乎问题总结
最新文章
onenote如何设置画笔的颜色和厚度onenote如何使用页面版本
onenote如何禁用笔记本的历史记录onenote如何插入带框公式onenote软件如何按照作者查找笔记onenote如何查找昨天编辑的笔记内容
人气排行 OneNote中如何打开其他人共享的笔记本?将全网 OneNote 插件一网打尽OneNote 的存储空间到底多大?如何给 OneNote 免费扩容?Notability的一些使用技巧及知乎问题总结如何直接在 OneNote 里查看和批注 PDF 附件OneNote这似乎不是工作或学校电子邮件 不能在此处使用个人账户登无法登录OneNote 的最佳解决办法如何导出 OneNote 笔记本到本地
盖楼回复X
(您的评论需要经过审核才能显示)
查看所有0条评论>>