数据驱动之Unittest+ DDT +XML

        前一个章节我们将测试数据存储在了MySQL里,实现了测试数据和测试代码的分离,并将操作数据库的方法封装,使其与SQL语句和测试代码分离,实现松耦合,大大提高了代码的可读性和可维护性。本小节我们将换另一个介质,将测试数据存储在XML文件中

一、创建存储测试数据的XML

在工程中创建一个TestData.xml文件,并写入如下代码

数据驱动之Unittest+ DDT +XML_第1张图片

二、封装解析XML文件模块

数据驱动之Unittest+ DDT +XML_第2张图片

代码解析:

定义了ParseXML类,该类所接受的参数是XML文件;封装了getRoot方法,用于获取XML文件的根节点对象,并返回给调用者;封装了findNodeByName方法,用于根据节点名称获取节点对象;封装了getNodeofChildText方法,用于获取节点下的所有子节点内容并组成字典;封装了getDataFromXml方法用于获取测试数据。


三、测试代码

如下代码为测试代码,其中借由DDT将XML作为测试数据的数据源、解包、再应用于测试方法中,因为我们在XML里准备了3组测试数据,借助DDT,那么如下测试代码会执行3次,在工程中创建DataDrivenByXML.py,并写入如下代码:

数据驱动之Unittest+ DDT +XML_第3张图片


数据驱动之Unittest+ DDT +XML_第4张图片

代码解析:

代码头部导入ddt模块(import ddt),实例化了我们前面封装好的ParseXML类,并调用了他的getDataFromXml方法获取XML中的测试数据,然后测试类DataDrivenTestByXML前声明使用ddt(@ddt.ddt,测试方法test_dataDrivenByXML前使用@ddt.data()来获取数据并传给测试方法。

你可能感兴趣的:(数据驱动之Unittest+ DDT +XML)