数据驱动
(1)什么是数据驱动
在测试活动中经常会使用相同的测试脚本使用不同的测试数据来执行,测试数据和测试行为完全分离, 这样的测试脚本设计模式称为数据驱动。
例如:当我们测试某个网站的登录功能时,往往我们会使用不同的用户名和密码来验证登录模块对系统的影响,那么如果我们每一条数据都编写一条测试用例,这无疑是增加了代码量,代码重复冗余很多,这时候我们可以使用不同数据执行相同的用例测试不同的场景。
(2)实施数据驱动测试的步骤:
①创建测试数据:根据之前设计测试用例的思路来
②封装读取数据的方法,保留测试脚本调用的接口/属性(我们需要传递给脚本什么参数)
③编写自动化测试脚本
④脚本中调用封装好的处理数据文件的模块并引入测试数据
⑤执行测试脚本并分析测试结果
(3)安装Python3.0,安装数据驱动模块ddt
#安装方式:cmd下执行命令: pip install ddt -i http://pypi.douban.com/simple/ --trusted-host=pypi.douban.com/simple
(4)如何进行数据驱动:在测试用例case里面修改,把从表格读取的所有数据一次进行测试
''' 数据驱动的思想,根据测试设计好的用例数据写到表格,并保存到Excel表格里面。 需要测试的时候在进行读取,如读取一个表格mms_eg,批量对'药品录入’一组数据进行测试。 ''' import unittest from pages.drugPage import DrugPage import ddt from common.readdata import ReadData @ddt.ddt class TestDrug(unittest.TestCase): ''' @ddt.data()中放入的就是读取回来的数据,并且拆分开,一组一组的给传入 @ddt.unpack 就是将数据打散,分别传给每一个形参 ''' #从Excel表格中读取数据 infos = ReadData.readExcel('mms_eg','Sheet1') #大列表分为小列表 @ddt.data(*infos) #小列表的数据打散,传给每一个形参 @ddt.unpack #测试添加药品 def test_add_drug(self,id,take,drugName,effect): #先进行类的实例化 d = DrugPage() #调用新增的方法,获取返回值 r = d.add_drug(id,take,drugName,effect) #断言:如果返回值r=="保存成功“ self.assertEqual(r,"保存成功")