Winforms 如何使用SilkTest按名称访问控件?

Winforms 如何使用SilkTest按名称访问控件?,winforms,testing,silktest,Winforms,Testing,Silktest,我们有一个自动化测试套件,使用Borland Silk test 2008 R2对新的内部产品进行回归测试 测试脚本通过索引一致地引用控件: Form.Control3 ... 我们对应用程序的主窗体做了一个小的更改,现在以前有索引3的控件有索引4 简单但繁琐的修复方法是将脚本编辑为引用Control4而不是Control3,但这仍然非常脆弱 我们如何通过名称来标识控件-因此,我们指定名为ribbon的控件,而不是引用Control3 我们相信,通过名称来引用事物将大大减少脆弱性 我们尝试了显

我们有一个自动化测试套件,使用Borland Silk test 2008 R2对新的内部产品进行回归测试

测试脚本通过索引一致地引用控件:

Form.Control3 ...
我们对应用程序的主窗体做了一个小的更改,现在以前有索引3的控件有索引4

简单但繁琐的修复方法是将脚本编辑为引用Control4而不是Control3,但这仍然非常脆弱

我们如何通过名称来标识控件-因此,我们指定名为ribbon的控件,而不是引用Control3

我们相信,通过名称来引用事物将大大减少脆弱性

我们尝试了显而易见的方法:

Form.ribbon
这根本不会执行

编辑器中的基本intellisense没有显示太多用途-没有控件属性,没有GetXX或FindXX方法


我们的应用程序是使用.NET 3.5上的C编写的,并且确实使用了第三方控件。

SilkTest通常将信息存储在.inc文件中,以定位应用程序中的控件。角色

Form.Control3 ...

您提到的是对该.inc文件中结构的引用。当您更改应用程序时,您应该能够通过简单地更新.inc文件中的条目来调整测试脚本。

谢谢您提供的信息-我会将此信息传递给现在负责Silk Central的人,然后再回复您。这很有效,虽然结果有点随意,但当测试失败时,需要做哪些更改并不明显。因此,我们已经有效地停止使用Silk Central。如果您仅获取窗体或控件作为名称,这通常意味着SilkTest无法找到更好的属性作为名称。在这种情况下,要么更改应用程序以提供更好的名称,要么手动重命名条目并对其进行更改以使其更有用。这突出了我们在Silk Test中发现的一个问题。我们的应用程序是用.NET WinForms构建的:这几乎不是一种利基技术。每个窗口、控件、标签和面板都有一个公共名称属性,该属性是唯一的,不太可能更改,但Silk Test忽略了这些属性,而是使用了一种非常脆弱的技术,这种技术基于错误的假设,即子控件从未在父控件中移动或重新排列。@Bevan您使用的是Silk Test的经典代理还是开放代理?对于CA,您所说的是正确的,但我相信这是针对OA的,OA更喜欢控件的名称,只要它是唯一的,并且使用基于XPath的定位器来标识控件。这允许您跳过层次结构,因此除非您的应用程序以非常重要的方式进行更改,否则您应该不会有问题,否则您可能必须调整您的测试。。。