一个测试过程相对比较固定,但是测试数据不同,我们则可以将测试步骤和测试数据分离,这种测试模式被称为数据驱动(Data Driven)。
数据驱动的方法,可以将我们的测试数据与测试脚本分离开来,使得我们可以使用更复杂的测试数据,而不用编写新的测试脚本。
在TestNG、UnitTest及PyTest中,都有相应的数据驱动的实现。
1、数据测试
通过使用数据驱动测试的方法,我们可以在需要验证多组数据的测试场景中,使用外部数据源实现对输入值与期望值的参数化,从而避免在测试中仅使用硬编码的数据。
这种方法对于测试步骤相同而使用不同的“输入值与期望值”的测试场景尤其适用。
下表列举了一个用于验证登录场景的数据组合:
我们只需创建一个测试脚本就可以处理上表的测试数据和条件的各个组合。
使用数据驱动的模式,根据业务逻辑分解测试数据,并且定义变量,使用外部的CSV或表格里的数据使其参数化,从而避免使用原测试脚本中固定的数据。这种方式可以将测试脚本与测试数据分离,使得测试脚本在不同数据集合下高度复用。
数据驱动的模式不仅可以帮助我们增加类似复杂条件场景的测试覆盖,还可以极大地减少我们对测试代码的编写和维护工作量。
接下来的部分,我们将改用Python ddt库,以数据驱动的模式实现自动化测试。
2、使用ddt执行数据驱动测试
ddt的库可以将测试中的变量进行参数化。例如,我们可以通过定义一个数组来实现数据驱动测试。
ddt的库