gpt4 book ai didi

c# - CodedUI 测试 - 无法在共享点中跨环境重复使用测试

转载 作者:行者123 更新时间:2023-11-30 17:16:20 24 4
gpt4 key购买 nike

我正在对在 Sharepoint 中开发的应用程序使用 CodedUI 测试。问题是它不能在不同的环境中工作。所以每个环境都得重新录测试,很麻烦,而且容易出错。

稍作调查后发现,为服务器生成的 clientId 在 Web 部件中的控件在每个环境中都不同(即使页面中的所有内容都完全相同 - masterpage、pagelayout、webparts)。

为了(几乎)解决这个问题,我想到了编辑 SearchPropertyExpressions 以仅使用带有“包含”运算符的 clientID 的最后一段。如果您在 designer.cs 中手动编辑生成的代码,这会很有效。

我的问题是,是否有任何简单而优雅的方法来自动执行此操作?

到目前为止,这是我尝试过的:我 replaced具有我自己的函数的索引器 setter PropertyExpressionCollection 类。我使用此函数检查正在设置的值,并使用字符串“ctl”更改值并将其替换为字符串的最后一段(例如将“ctl0123_textbox1”替换为“textbox1”),最后使用包含运算符。它工作正常。但它在过滤输入时是不分青红皂白的——它不关心它是过滤器还是搜索,它甚至不知道它属于什么类型的控件。这种方法确实很hacky。

最佳答案

我们现在面临完全相同的问题(必须支持我们应用程序的 20 个自定义版本)。我们得出的一般解决方案:

1) 从业务逻辑中抽象 UI 交互(我们为 UITestControls 定制结构,从 XML 文件反序列化它们)

2) 对于每个客户端,根据需要调整 UI 交互逻辑,并按照开发人员调整应用程序的方式对其进行分支

3) 因此,对于应用程序的每个分支(“不同的环境”),我们都有相同的逻辑但不同的 UI 层

4) 我们现在可以为我们的测试提供用于此环境的 XML UI 符号文件,并且很高兴

这个解决方案很难,需要一些复杂的代码,但给了我们所需的灵 active 。而且,好吧,我们不记录测试,而是从头开始创建它们,因此代码更清晰且更易于维护。

希望这对您有所帮助。如果您需要,我可以提供更详细的信息。

关于c# - CodedUI 测试 - 无法在共享点中跨环境重复使用测试,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7284982/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com