Coded UI Test 常见问题总结

Coded UI Test是Visual Studio 对于测试工程提供的基于用户界面(User Interface)的自动化测试组件,支持Win32,Web,WPF等UI的自动化测试,支持录屏并生成测试代码。

要求

Coded UI test component;

企业版的Visual Studio(Visual Studio 2010及后续的版本);

MSDN链接

最近工作中用到了该组件,整理了一些常见问题及解决方案,总结如下:

一、Coded UI 在录屏时报错:“未录制对Row执行的最后操作,因为该控件没有任何适合的标识属性。

原因:

当ItemsControl(例如ListBox,TreeView)绑定到指定的数据源时,WPF调用每一个Item的ToString方法实现可访问性。如果Item对应的类没有重载ToString方法,该值将是Item的类名,导致ItemsControl中所有Item的名称都一样。 

解决方案:

1.修改被测控件源码,重载Item对应类的ToString方法,使其返回一个有意义的值;
2.被测控件源码无法修改,在控件被引用的地方为其添加AutomationProperties.Name属性,一个ListBox的示例如下:
<ListBox.ItemContainerStyle>    
<Style>
<Setter Property="AutomationProperties.Name" Value="{Binding XPath=.}"/>
</Style>
</ListBox.ItemContainerStyle>

二、Coded UI 重新生成测试代码,原手动修改的代码丢失

原因:

Coded UI录制屏幕操作后生成三个文件UIMap.uitest,UIMap.Designer.cs和UIMap.cs,自动生成的测试代码最初全部保存在UIMap.Designer.cs文件中,该文件不可手动修改。

解决方案:

在Visual Studio中双击打开UIMap.uitest文件,点击下图红圈中的按钮把要修改的测试方法移动到UIMap.cs文件后,再在UIMap.cs文件中对其进行修改。

三、UIMap.uitest无法重命名

解决方案:

把UIMap.uitest复制或者移动到一个新的目录下。

四、执行Coded UI测试用例,回放操作时报错:“Search may have failed at ‘XXControl' Custom as it may have virtualized children. If the control being searched is descendant of ' XXControl' Custom then including it as the parent container may solve the problem.” 

原因:

这是Coded UI的一个Bug。在录屏期间未能正确识别被测控件的层级关系。例如:控件C的Contianer是控件B,控件B的Contianer是控件A,它们的关系是A->B->C,但是在录屏中Coded UI未正确识别控件层级,生成了类似A->C这样的层级关系的测试代码,测试用例执行时在控件A中查找控件C导致错误发生。 

解决方案:

1.使用CodedUITestBuilder识别出控件的正确层级关系;
2.录制屏幕操作,生成测试代码;
3.把生成的测试代码移动到UIMap.cs文件,并在问题控件被调用前手动调整其所属的父控件。

转载于:https://www.cnblogs.com/cswangrf/p/10222627.html

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值