使用MS Coded UI进行自动测试

时间:2015-02-12 21:50:09

标签: testing automation coded-ui-tests

我需要以下方面的帮助:

  • 使用Visual Studio编码GUI进行自动测试
  • 设置测试设置/代理以在虚拟机上虚拟运行以运行测试(如登录,但不是)
  • 获取元素检查的帮助(比如使用'toolStrip1'作为GUI上三个不同位置的ID来区分某些开发人员)
  • 我使用phantomjs或ieserver驱动程序在Visual Studio中成功使用Selenium,C#,但那是针对Web Apps的。

所以我知道我可以做到这一点,但现在我需要为桌面APP设置框架。我有一些GUI桌面自动化运行。不太难以获得元素,我使用psexec-> vm(.bat文件)启动远程测试,使用vstest实现我的测试。效果很好。但是当我离开用户登录时,我传递了登录凭据 - 我听说代理人这样做,所以现在我将“无头”。此外,开发人员在应用程序上为三个不同的工具条留下了“toolStrip1”ID,这让我感到困扰。任何帮助将不胜感激。

1 个答案:

答案 0 :(得分:1)

第1点:使用Visual Studio编码GUI进行自动测试

首先确保您运行的是最新的Visual Studio(包括所有补丁)。请勿尝试使用VS2010或VS2012进行此操作。你还需要VS2013 Premium,我还没看过VS2015。

将控件记录到UI Map非常简单。至于录音,我不打扰录音。只能使用记录仪进行控制识别,然后手动编写实际测试。

您的成功在很大程度上取决于WinApp中的控件。例如,您使用的是Telerik或DevExpress或Standard .Net Winforms吗?甚至可能是C ++ WIn32 App?这是因为像DevExpress这样的控件不使用MSAA,而是使用更好的属性和方法来暴露自己的技术类型以进行测试。对于MSAA,它很大程度上取决于开发人员如何实现可访问性以公开正确的属性和方法。因此,如果他们没有在C ++ Win32应用程序上进行任何曝光,那么任何嵌套复合控件都不太可能有足够的曝光来轻松测试应用程序。

第2点:设置测试设置/代理以在虚拟机上虚拟运行以运行测试(如登录,但不是)

这里最好的路线是使用完整的实验室环境。然后使用MTM(Microsoft测试管理器)执行测试。

所以基本地形是这样的:

  1. 您需要一个TFS构建服务器(Consisting of a build controller and an agent
  2. 测试控制器
  3. 测试代理
  4. 使用TFS注册构建环境,然后在Visual Studio中,将代码检入TFS后,将新构建队列。

    您的测试控制器应该在TFS注册,但您的测试代理不要注册到测试控制器。相反,它们应该在Labs环境中设置(MTM GUI的一部分)。

    这样一旦您为项目分配了构建(使用MTM - >项目 - >属性),并设置了代理(并在代理中安装了TFS代理),并创建了测试环境(MTM),您可以使用MTM右键单击并运行测试。

    然而,有一些陷阱,理论上你可以让测试运行自动登录,但这在虚拟机内部是非常不可靠的。除非您有物理测试机器,否则每次使用MTM运行测试时,最好打开并最小化实验室环境。

    第3点:获取元素检查的帮助(比如使用'toolStrip1'作为GUI上三个不同位置的ID来区分某些开发人员)

    如果您使用刻录机识别控件,则不会出现问题。这是因为CodedUI使用查找链和搜索模式来标识控件。它确实检查了父母 - >孩子的关系。