通过手动编码、录制,或二者的组合可以创建测试。即使您打算做一些定制的编码,首先录制测试也比从头开始编写测试要更简单。
在本教程中,您将录制在示例 ClassicsJava 应用程序中购买 CD 的操作。
启动录制器
- 单击工具栏上的红色录制按钮,启动录制器。
- 在 Record a Functional Test 脚本向导中,输入脚本名称 PlaceOrder,并单击Finish。测试录制器启动了,Functional Tester 和录制工具栏最小化,如图 7 中所示。录制工具栏上有许多在录制过程中有用的特性。在本教程中只用到一些。
图 7. 录制工具栏

启动被测试的应用程序
- 单击 Start Application 按钮,以启动ClassicsJavaA - java 应用程序快捷方式。ClassicsJava build A 启动了。
- 牢记您此时在 ClassicsJava 应用程序中所做的一切都被录制下来。使用 Composers 树控件来选择Schubert > Symphonies Nos. 5 & 9。
- 单击Place Order。
- 此示例应用程序没有真正地检查登录或密码。为了简化,当向您请求这些内容时,接受默认值,但要选择Remember Password 复选框。该复选框将在本教程的随后部分说明 Functional Tester 测试回放引擎的健壮性。
- 单击OK,转到 Place an Order 窗口。
创建数据驱动的订单
在测试脚本中默认获取所有的键盘输入。Functional Tester 拥有非常强大的功能:它可以将用户输入的数据与测试的过程和导航命令分开。这样做的优点是能够以各式各样数据的不同集合重复使用相同的测试过程,令您可以复用通用的测试,并且在极大减少您在创建反复的测试中涉及的时间和工作。
- 在 Place an Order 窗口中,输入 Card Number 1111 2222 3333 4444,Card Type 为 Visa,并输入 Expiration Date 12/08。
- 在录制工具栏上,将 Insert Data Driven Commands 图表拖到订单表单上,使得整个表单上包围红色方框,如图 8 所示。
图 8. 选择用于数据驱动访问的字段

3. 如图 9 中的 Insert Data Driven Actions 窗口出现了。Functional Tester 默认您想要数据驱动面板上的所有测试对象或字段。然而,在这样的情况下,您只希望数据驱动信用卡信息。这使您使用同样的脚本来运行有多个信用卡的测试。要删除不必要的测试对象,选中一个,并单击红色 X 图表来删除。对所有的值都进行该操作,除了 CardNumberIncludeTheSpaces、creditCombo,和ExpirationDateText。
图 9. Insert Data Driven Actions 窗口

4. 单击 OK 确认选择。
5. 单击 Place an Order 窗口上的 Place Order 按钮。出现一个确认窗口。验证该窗口中的信息,如下部分中所示。
验证动态数据
正则表达式
Functional Tester 支持使用您可能已经熟悉的所有标准的正则表达式。在本教程中,您将看到通过正则表达式使用数据验证点,此外,在属性验证点值和对象识别属性中也可以使用正则表达式。要了解更多关于正则表达式的内容,请参看 Functional Tester 在线帮助。首先,选择 Help > Help contents;,然后,在帮助菜单中,选择 Recording functional test scripts > Working with verification points > Regular expressions。
应用程序经常要响应您不能完全预料的数据和信息的输入。例如,在 ClassicsJava 中您将收到的确认信息包含二位的确认号码。您也许能够预料到这将是未来订单中的二位号码,但每次您运行该应用程序时该号码的值都是不同的。 您需要一种方法来验证消息的模式,而灵活处理该号码的实际值。Functional Tester 验证点具有这样的灵活性,如您将在本部分中所了解到的。
- 从录制工具栏中将Insert Verification Point or Action 按钮拖到 Message 窗口中的文本上,如图 10 所示。当红框只圈住了以“Your order has been received...”开头的文本时,释放鼠标按钮。
图 10. 选择要验证的标签

2. 存在许多种类型的验证点。在这里,您将添加一个简单的数据验证点。单击Next两次以接受默认选项。
3. 在向导的 Verification Point Data 窗口上,单击 Convert Value to Regular Expression 按钮。正则表达式是一种形式的模式,匹配您可能已经熟悉的语言(参见工具条,看看您在那里能找到更多信息)。
4. 在窗口中编辑数据,擦掉二位号码。
5. 在号码先前的位置上单击右键。上下文菜单提供一列最通用的正则表达式模式。使用上下文菜单在二位号码所在位置插入 \d\d。该模式指出响应值应该是两位号码,但没有指定具体数字。如果号码是一个数字或三个数字,或者如果在每个数字位置上包含非 0-9 的内容,那么测试将失败。您的数据应该看起来类似图 11。
图 11. 用正则表达式的验证点数据

6. Functional Tester 还为您提供了方法,验证您的正则表达式做没做您需要它做的事情。单击工具栏上的Evaluate Regular Expression,如图 12 中例举的。
图 12. Evaluate Regular Expression 按钮

7. 在 Regular Expression Evaluator 中,您可以尝试 Match Against Value 框中的各种模式。变更取值,并按下Evaluate。您将看到您所输入的内容是否匹配正则表达式。
8. 当您的模式完成了您需要它做的事情,您对此感到满意时,单击 Regular Expression Evaluator 上的OK。
9. 在 Verification Point 向导中单击Finish。这将您带回录制模式。
10. 在 ClassicsJava 确认信息窗口中单击OK。
验证静态数据
最后,您需要创建验证点来验证订单是否得到正确的处理。
- 在 ClassicsJava 菜单中,选择 Order > View Existing Order Status。单击OK,再次登录。
- 订单显示出来了,单击并将 Verification Point and Action 向导拖到订单信息上,以便订单外围圈上红框,如图 13 所示。
图 13. 选择要验证的订单

3. 在向导的第一个窗口中单击Next。
4. 在第二个窗口中,选择数据值Table Contents并单击Next。
5. 在最后的窗口中,单击Finish,将表格内容存储为基线数据,将来的测试运行将依据这些数据进行验证。这将您带回录制模式。
停止应用程序并停止录制
1. 在 View Existing Orders 窗口中单击 Close。
2. 单击 ClassicsJava 窗口右上角的红 X。
3. 单击 Recording Toolbar 上的 Stop Recording。
4. Object Map and Help 窗口出现了。此时,关闭这些窗口。