使测试自动化脚本与域无关以重用测试脚本
上一篇 / 下一篇 2012-10-08 10:53:32 / 个人分类:自动化测试
(PY s8e{+t%]/Rp y1K-O0 简介:在测试自动化中,会将测试脚本和相关的测试框架绑定到接受测试的应用程序底层域。然后,判断是否可以跨域使用框架提供的相同记录对象、脚本和可重用函数就成为了一个难题。要克服这个问题,关键是使得自动化测试脚本与域无关。其结果是,可以跨不同的测试应用程序域使用相同的应用程序对象、测试脚本和可重用函数,无需考虑它们是否是 HTML、Java、Microsoft .NET、MicrosoftWindows等。51Testing软件测试网ul4s{8d$M.`C#QG
51Testing软件测试网h?]D0B/C TA问题:域依赖性阻碍了脚本的重用51Testing软件测试网 p d1`:EA4\B
f |8a|,[ F"RBN/|0 无论测试自动化开发人员通过记录回放还是传统描述性编程来创建脚本,测试脚本和可重用函数都会绑定到接受测试的应用程序的底层域。那么,我们如何确保编写功能的工作(例 如,将文本设置到某个 Edit Box)在每次域转变时都不会重复?今天,您可能正在为某个基于 Web 的应用程序编写测试脚本,并且每次都以 HTML 格式针对域进行记录和编写脚本。随后,您可能需要使用您之前已经编写代码的相同功能,但要跨一个基于 Java 的应用程序。
r];aj+JLR051Testing软件测试网&uqh)l0A4h N当我们使用记录回放机制时,所有与应用程序交互的测试对象都被记录和存储在IBM?Rational? Functional Tester 对象映射中。图 1 显示了一个这样的示例,其中应用程序域被硬编码为 Java。
\/Th}y)s+W z2y00u/Ei H!x[Hh0 图 1. 以 Java 作为应用程序域的一个对象映射51Testing软件测试网0U7^6z p:T$UZ
T&}6k,p`R0类似地,如果使用描述性编程机制开发测试脚本,函数会被绑定到某个特定的应用程序域。在这种情况下,实现测试函数可重用性就会变得具有挑战性。
Z5OP%w@*B0因此,最好使脚本和底层测试对象与应用程序域无关。
a8],c^J'v)N0解决方案:使用描述性编程实现跨域兼容性
$ZB3~3BH4nf DcB_0Rational Functional Tester 提供一种动态机制,在脚本回放过程中获得测试对象的引用。find() API 使这一点成为可能,因为它引用接受测试的应用程序中的对象时,无需在测试对象映射中记录或硬编码该对象。该 API 找到父测试对象或顶层测试对象,并查找一个匹配的子对象。51Testing软件测试网$W#d8Xbk"f$R6y%w-p:Q
使用 find() API 识别域或顶层对象51Testing软件测试网%jw9ku f [
鉴于这一点,通过描述性编程实现测试自动化框架以及使用 find() API 可以有助于识别接受测试的应用程序的域或顶层对象,并相应地找到该对象下面的一个匹配的子测试对象。清单 1 中的代码说明了该过程。51Testing软件测试网+yeW+QRq!HG)c&h
清单 1. 为当前应用程序设置测试域值51Testing软件测试网Q1GC(F8M
51Testing软件测试网$k\oM
K%s;} String myDomainName = ""; -FO0L)k:^1j!M+U051Testing软件测试网"G6c.cKi//For HTML Browser - Set the Application Domain Name OR51Testing软件测试网qX ?/MS8Vq| 51Testing软件测试网`] kv} N//For HTML Dialog - Set the Application Domain Name51Testing软件测试网"G2q3Ti%NH\{{ %~*vgm$kx0OR ^o(l\Y.O051Testing软件测试网bk&\2t+W[//For Swing JDialog - Set the Application Domain Name |