TestComplete识别对象原理-创新互联

对测试对象的识别能力就成为一个GUI测试工具的最基本功能了。本文介绍TestComplete是如何识别进程、窗体和控件的。

公司主营业务:网站设计、成都网站设计、移动网站开发等业务。帮助企业客户真正实现互联网宣传,提高企业的竞争能力。成都创新互联公司是一支青春激扬、勤奋敬业、活力青春激扬、勤奋敬业、活力澎湃、和谐高效的团队。公司秉承以“开放、自由、严谨、自律”为核心的企业文化,感谢他们对我们的高要求,感谢他们从不同领域给我们带来的挑战,让我们激情的团队有机会用头脑与智慧不断的给客户带来惊喜。成都创新互联公司推出鄂州免费做网站回馈大家。

命名概念:

为了在脚本中记录识别出来的测试对象,TC需要使用到这些对象的属性。每个对象都有很多的属性,像“class name”,“text”,“enabled”等。你可以在Object Browser窗口中看到有效的对象属性,或者使用Object Properties窗口来查看。

有些对象属性会在应用程序的运行过程中发生改变(例如edit box对象的text属性),而有些(例如窗体的handle)则是保持不变但是在两个不同的应用程序实例运行时会不一样。某些属性(例如某些应用程序的窗体类名)不会由于应用程序运行实例不一样而改变。

为了使测试脚本能根据对象的属性区分不同的对象,对象的属性必须是唯一区别于其它类似的对象并且保持不变。

一般来说,没有哪些属性能满足所有这些要求,所以TC使用属性的组合来识别对象。例如,默认使用进程的可执行文件名和进程的index来定位进程;为了定位窗体,则使用窗体的类名、caption、index。换而言之,典型的对象名包括几部分:

TestComplete识别对象原理

有些对象的名称(例如,窗口的caption或进程的index)会随着应用程序的运行而改变,因此你需要在脚本运行时使用不同的名称来定位相同的进程或窗体。使用Name Mapping技术,你可以重新定义TC默认用来定位对象的属性组合。

对象的寻址定位是按一定的层次关系进行的。例如,你需要对一个窗体进行操作,首先要获取相应的进程对象;为了对某个控件进行操作,首先要获得包含该控件的窗体对象。可使用Object Browser的对象树来观察对象的层次关系。

识别和定位到对象后,TC就可以通过对象的名字属性来进一步访问它拥有的所有编程对象,通过这些对象接口来对它进行各种操作。

1、进程

TC通过process编程对象来与进程交互。使用Sys.Process或Sys.WaitProcess方法来获取进程对象。这些方法使用能唯一识别操作系统进程的参数:

1>、进程对应的可执行文件名

2>、进程实例的Index。有可能相同名称的应用程序会同时有多个进程实例运行,在这种情况下,进程index可以加以区分,第一个启动的进程的index是1,第二个是2,如此类推。

例如下面脚本获取记事本的第二个进程实例:

var  p : OleVariant;
begin
// Obtains the object that provides scrīpting interface
// to the second instance of Notepad
p := Sys.Process('Notepad', 2);
end;

但是要注意,进程的index可能会在脚本的运行过程中改变:如果低序号index的进程终止了,那么高序号index的进程的index会相应地减小,因此进程名就改变了。

如果你在使用process时省略了index参数,则TC默认使用Index为1的进程,例如,Process(“Notepad”)和Process(“NotePad”,1)是指的相同进程对象。

2、窗体对象

TC用于识别窗体的原则依赖于被测应用程序是Open Application(开放应用程序,白盒的)还是non-Open Application(普通的,黑盒的)。

1>、Open Applications

如果被测应用程序编译成Open Applications(开放的应用程序),则可以使用TC提供的特殊的方法来访问对象:WinFormsObject,VBObject,VCLObject。SwingObject等。

2>、Black-Box Applications

TC默认使用以下几个相对稳定的窗体属性来定位黑盒类型的应用程序:

l        Window class name

l        Window caption

l        Window index

使用Process.Window,Process.WaitWindow,Window.Window和Window.WaitWindow方法来获得窗体对象,例如:

var p, w : OleVariant;
begin
p := Sys.Process('winword');
w := p.Window('OpusApp', 'Microsoft Word - *', 1)
end;

3、控件

因为操作系统的每个控件都是一个窗体,所以控件的识别方法与窗体的识别方法基本一致。

4、Web对象

当测试Web页面时,TC使用DOM或Tag对象模型来定位页面元素,DOM方式是通过Document对象模型来组织页面对象的层次关系,而Tag方式是通过HTML的Tag标签来组织层次关系。

另外有需要云服务器可以了解下创新互联scvps.cn,海内外云服务器15元起步,三天无理由+7*72小时售后在线,公司持有idc许可证,提供“云服务器、裸金属服务器、高防服务器、香港服务器、美国服务器、虚拟主机、免备案服务器”等云主机租用服务以及企业上云的综合解决方案,具有“安全稳定、简单易用、服务可用性高、性价比高”等特点与优势,专为企业上云打造定制,能够满足用户丰富、多元化的应用场景需求。


文章标题:TestComplete识别对象原理-创新互联
文章转载:http://scjbc.cn/article/dijcpd.html

其他资讯