使用datatable 将测试数据与业务分离
当基本一致的业务流程, 需要测试繁杂的测试数据时,就可以将测试数据参数化了,同时使用datatable来实现测试数据与业务分离,这个方法在我现在的项目中应用在很多地方,感觉超级方便,现对工作中的应用做下总结:
1、在本地建个EXCEL , 用于存储测试数据的参数名及参数值。
2、在QTP中设置EXCEL路径
打开QTP->File->setting->environment->Variable(选择User-defined)-> 点击...设置如下图:
通过设置localpath,使测试数据表不需要设放置在统一的路径下,增加Excel路径灵活度。实现无论在谁的电脑上跑脚本都可以通过QTP设置的localpath调到本地提前放好的Excel测试数据表。
类似代码如下:
localpath = Environment.value("localpath")
DataTable.AddSheet("login")
DataTable.ImportSheet localpath&"login.xls","login","login"
rowCount1 = DataTable.GetSheet("Login").GetRowCount
SystemUtil.Run "C:\Program Files\Internet Explorer\IEXPLORE.EXE","http://deliver.sinosure.com.cn"
For i = 1 to rowCount1
datatable.SetCurrentRow(i)
user = DataTable.Value("user","Login")
pwd = DataTable.Value("pwd","Login")
Browser("中国出口信用保险公司.*").Page("中国出口信用保险公司.*").WebEdit("username").Set user
Browser("中国出口信用保险公司.*").Page("中国出口信用保险公司.*").WebEdit("password").Set pwd
Browser("中国出口信用保险公司.*").Page("中国出口信用保险公司.*").WebButton("登录").Click
Browser("中国出口信用保险公司.*").Page("中国出口信用保险公司.*").WebButton("注销").Click
Next
测试数据表如下:
PS:QTP支持xls后缀的excel文档,不支持xlsx后缀的