我的团队目前使用 TestComplete 进行自动化 UI 测试(.Net 3.5 WinForms 应用程序)。我们正在考虑切换工具 - 一个主要原因是我们想使用 C# 编写 UI 测试。(我们的非 UI 测试 - 单元、集成、系统 - 都是 C#,我们的团队在用 C# 编写和组织代码方面经验丰富,我们喜欢测试代码的编译时检查等好处)
然而,TestComplete 的一个非常重要的特性是能够访问 AUT 中 .Net 对象的本机属性。我们的 UI 有一些尴尬的地方,我们需要读取底层数据并进行一些算术运算以确定如何执行下一个操作。我们可以使用 TestComplete 的对象浏览器附加到 GUI 应用程序并开始探索控制层次结构,并探索 .Net 属性/字段。并在我们的自动化测试中访问相同的内容:http: //support.smartbear.com/viewarticle/30816/
我快速浏览了 Ranorex(勾选了 C# 框),从这个意义上说,它似乎没有 TestComplete 那样强大。一旦属性/字段类型不可序列化,它似乎就会卡住并返回 null: http ://www.ranorex.com/blog/transfering-data-to-and-from-a-net-control
将对象复制到进程边界上似乎是合理的,该对象应该是可序列化的,但是 TestComplete 在做什么呢?反射有什么讨厌的东西?
我的问题是,是否有任何测试框架可以让这个属性浏览像 TestComplete 一样简单,同时允许我们用 C# 编写测试?(并且希望比 TestComplete 更不容易崩溃)
Ranorex 链接似乎表明我们可以编写自己的(测试)代码来将对象映射到可以传输的东西,但这是额外的努力。此外,TestComplete 的对象浏览器对于测试人员手动探索应用程序的模糊深度非常有用,而 Ranorex 的 Spy 工具不允许您浏览到不可序列化的对象。