从今天开始,会陆续记录在做Windows UI Automation里面的一些经验,
主要包括了自己遇到的一些问题和如何解决这些问题的方法。
1. 概要
笔者以前主要做基于Web 应用的自动化,在Windows UI Automation上算是新手。有很多工具可以做自动化,Windows上的比如QTP,TestComplete,甚至AutoIT,本文主要讨论如何基于C#利用微软的Windows UI Automation Library做UI的自动化。
网上有很多的关于Windows UI Automation的文章,英文的偏多。仔细学了之后,你可以不太麻烦的开发一些基于Windows 原生应用的例程,比如计算器。
但是当你学会了这些例程,却发现真实的项目很难运用到这样的例程。这主要是因为这些例程里面的测试代码是基于简单而且规范的Windows应用程序开发的,比如计算器,他的所有控件都有Automation ID,并且有快捷键的支持。真实的Windows应用很难保证有这样的理想化的应用程序,因此做Windows Ui自动化变成了一件很痛苦的事情。本文将就实际的案例,具体记录做自动化中遇到的问题,给读者参考。
利用Windows UI automation的库做自动化UI测试的主要以下几个步骤
1. 发现控件
2. 对控件进行操作
3. 检查结果
其中发现控件的方法很多,可以基于Automation id, 控件的名字,控件的属性,甚至是控件的坐标。在一个规范的应用程序中,所有的控件都应该包括一个控件的automation id,这样测试人员在做自动化的时候,就可以基于Automation id准确的寻找控件。但是如果某个控件没有automation id,那就只能通过以上提到的其他的手段来做自动化。
2. 大体的思路
2.1 发现控件
寻找控件的工具很多,如果UiSpy, Spy++