在上一篇博客《RnP与Coded UI自动化测试》中介绍了如何编写、录制和播放手工测试用例,以及如何由录制的内容生成Coded UI Test(CUIT)自动化测试用例。那里所使用的测试用例比较简单,仅测试了计算器的加法功能。而在实际的测试工作中,在测试步骤系统情况下,往往会有多组测试输入数据,需要判断每组输入的结果是否正确,这也就是所谓的数据驱动的测试(DDT,Data-Driven Test)。
Visual Studio 2010对手工测试用例的编写也支持DDT,每个测试步骤允许定义一个或多个参数(@Parameter),一组参数就构成了一个测试输入组,也被称为Iteration。然后只要录制一输入组的测试,就可以将录制内容应以于其它的输入组。马上就要春节了,辛苦了一年,就要回家过年了,买车票是件大事,下面就以"火车网“的车票查询网站的查询操作测试为例。下图是在MTLM中定义的一个测试用例,一组执行步骤,但有多组输入数据:
1、打开www。huoche.com.cn页面
2、输入 @起始车站
3、输入 @到达车站
4、查询
5、关闭浏览器
上面的测试步骤很简单,唯一值得注意的就是“@起始车站”和“@到达车站”,它们实际上是为两个步骤分别定义的参数,而参数的具体组合最下面的表格所示,表中每一行就是一个测试输入组合。而参数的创建则是通过测试步骤上面的“@ Insert Parameter”按钮完成的。在Test Runner中录制一个Iteration的执行时,当执行到一个带有参数的步骤时,测试步骤会被展开,一个小箭头指到第一个参数上,如下图所示。
此时Test Runner会自动将这个参数对应的内容拷贝到剪贴板中,测试人员只要通过CTRL+V将其粘贴到要输入的位置就可以了。可不要小瞧这一操作,Test Runner在幕后做些重要工作,它要记录这个参数@起始车站和哪个界面控件进行了绑定。这样在录制完一组数据后,自动执行其它组数据时,工具就知道该把数据放到位置了。
下图显示了要测试用的查询页面,我们在“出发站”输入框中按CRTL+V粘贴起始车站“北京”。