天天看点

[QTP] 数据驱动测试

1. 数据驱动测试方法

数据驱动测试方法要解决的核心问题是把数据从测试脚本中分离出来,从而实现测试脚本的参数化。数据驱动测试通常按以下步骤进行:

1) 参数化测试步骤的数据,绑定到数据表格中的字段。

2) 编辑数据表格,在表格中编辑多行测试数据。

3) 设置迭代次数,选择数据行。

在qtp中,可以使用多种方式来对测试脚本进行参数化,数据表参数化是其中一种重要的方式,此外还有环境变量参数化、随机数参数化等。

首先,把测试步骤中的输入数据进行参数化,例如搜索关键词。选择输入关键词所在的步骤行,单击"value"列所在的单元格,单击单元格旁边的"<#>"按钮,如下所示:

[QTP] 数据驱动测试

选择"parameter"选项,单击"ok"按钮,在关键字视图中可以看到"value"值已经被参数化,替换成了"datatable("p_item", dtglobalsheet)",如下所示:

[QTP] 数据驱动测试

选择菜单"view > data table",可以看到在"p_text"列中有一个默认数据"软件测试",这是参数化之前录制的脚本中的常量,可以在"p_text"列中继续添加更多的测试数据,如下所示:

[QTP] 数据驱动测试

测试脚本中的下一个步骤是检查输入框,同样需要进行适当的参数化,单击检查点所在测试步骤的"value"列中的单元格,单击旁边的"√"按钮,所下所示:

[QTP] 数据驱动测试

选择"value"属性,再选择"parameter"选项,单击旁边的编辑按钮将"name"改为"p_text",单击"ok"按钮,即可完成检查点的参数化设置,如下所示:

[QTP] 数据驱动测试

在运行测试脚本之前,还要做一些设置,选择菜单"file > settings",切换到"run"页面,在"data table iterations"中,可以设置数据表格的迭代方式,如下所示:

[QTP] 数据驱动测试

2. action测试输入参数化

对于重复使用的测试用例,可以转换成公共用例,适当参数化后,可被其他测试用例调用。在qtp中,可以把action的输入适当参数化,转换成可重用的测试步骤。

选择action所在的行,单击鼠标右键,选择菜单"action properties",切换到"parameters"页,单击"+"按钮,添加调用action需要输入的参数名和类型,如下所示:

[QTP] 数据驱动测试

添加完参数后,回到关键字视图,单击需要参数化步骤的"value"列的单元格旁边的"<#>"按钮,在"parameter"中,选择"test/action parameter",然后选择刚编辑好的参数,单击"ok"按钮,如下所示:

[QTP] 数据驱动测试

完成action的参数化后,就可以在其他action中调用这个action,方法是在action的测试步骤中,选择菜单"insert >  call to existing action"插入现有的action,单击"ok"按钮,即可插入对其他action的引用,如下所示:

[QTP] 数据驱动测试

选中插入的action所在的行,单击鼠标右键,选择菜单"action call properties",在"parameter value"页中,为每一个参数设置输入的参数值,也可以单击"value"列旁的"<#>"按钮,为输入绑定到data table中的数据,如下所示:

[QTP] 数据驱动测试

3. 使用环境变量的参数化

在qtp中,除了上述的几种参数化测试方式外,还可以使用环境变量来进行测试的参数化。在使用环境变量前,需要定义好环境变量,选择菜单"file > settings",切换到"environment"页,如下所示:

[QTP] 数据驱动测试

在"variable type"中选择"user-defined",单击旁边的"+"按钮,定义环境变量名和输入的值,如下所示:

[QTP] 数据驱动测试

定义好环境变量并设置好其值后,就可以在测试步骤中使用该环境变量,单击测试步骤"value"字段旁边的"<#>"按钮,在"parameter"中选择"environment",然后选择对应的环境变量,单击"ok"按钮,如下所示:

[QTP] 数据驱动测试

这样,qtp在运行测试脚本时,就会读取测试步骤所绑定的环境变量值,来执行相应的数据输入。选择菜单"file > setting",在界面中单击"export"按钮,可以把当前定义的环境变量导出到xml文件中,如下所示:

[QTP] 数据驱动测试

对于导出的xml文件,可以再次导入,选中"load variables and values from external file",选择导出的xml文件即可,如下所示:

[QTP] 数据驱动测试