QTP本身有就有很好的DataTable功能,所以我们可以利用以下方式来实现数据驱动:
利用脚本从excel导入Data Table
1 | xls_Sheet_Index = 1 |
这里有一个问题就是QTP11及之前的版本不能支持Excel2007及发后的版本,如果我们用QTP11来做自动化,本身现在大家都是用的Excel2010,或者之后的版本,就会很麻烦。
利用ADO打造Excel数据库
我们会有两种情况的划分:
数据字典的实现
每个用例对应的数据彻底分离出去,输入的数据,甚至于要选择的导航(因为有些导航的文字可能会发生变化)等等。。。这种情形下,每个用例脚本只需要一行数据就可以了,我们可以利用数据字典来实现高效应用:
- 脚本:
1 | Function GetRowDataFromExcel( myXlsFile, mySheet, iRow ) |
- 调用:
1 | '获得从‘1.xlsx’文件中的‘Sheet1’的第3行数据 |
数组的实现
一个用例实现多组数据的应用,例如:登录功能,用户名和密码的各种组合问题。
- 脚本:
1 | Function ReadExcel( myXlsFile, mySheet, my1stCell, myLastCell, blnHeader ) |
- 调用:
1 | '获得从‘1.xlsx’文件中的‘Sheet1’的‘A1:B6’数据 |