python单元测试的unittest读取xml文件
前言:
读取xml主要是就是有四部分内容。
1.一个用来存放数据
2.一个用来读取存放的xml数据
3.一个用来执行测试脚本
4.一个用来生成html文件
注意点:
脚本里的内容需要都要测试通过才能成功…
比如要执行三个脚本,有一个脚本不成功,就会测试失败.
1.存放数据
// 创建一个xml文件输入数据
<note>
<add>
<add1>1</add1>
<add2>2</add2>
<add3>3</add3>
</add>
<reduct>
<reduct1>1</reduct1>
<reduct2>2</reduct2>
<reduct3>3</reduct3>
</reduct>
</note>
2.读取存放的xml数据
// 创建一个py文件,编写读取xml的脚本
from xml.dom import minidom
class Readxml():
def read_xml(self, filename, onename, twoname):
root = minidom.parse(filename)
firstnode = root.getElementsByTagName(onename)[0]
secondnode = firstnode.
getElementsByTagName(twoname)[0].firstChild.data
return secondnode
# 可以获取到值
readxml=Readxml()
()中的内容包括xml的地址,内层的add以及更内层的add1
print(readxml.read_xml("../datademo/testxml.xml","add","add1"))
3.执行测试脚本
// 创建一个py文件,执行脚本
import unittest
from demo.kaifa import KaiFa
from readdemo.readxml import Readxml
readxml = Readxml()
# 获取到testxml中的三个值
a = int(readxml.read_xml("../datademo/testxml.xml", "add", "add1"))
b = int(readxml.read_xml("../datademo/testxml.xml", "add", "add2"))
c = int(readxml.read_xml("../datademo/testxml.xml", "add", "add3"))
# 实例化类
kaifa = KaiFa()
# 调用类中的方法
sum = kaifa.add(a, b)
print("su", type(sum))
class TestXml(unittest.TestCase):
def test_xml(self):
# 比较值
self.assertEqual(sum, c)
if __name__ == '__main__':
# 测试
unittest.main()
4.生成html文件
// 运行生成html的脚本
import unittest
from datademo.HTMLTestRunner import HTMLTestRunner
from test.testxml import TestXml
class HtmlClass():
def shengchenghtml(self):
suite = unittest.TestSuite()
caselist = ["test_xml"]
for case in caselist:
suite.addTest(TestXml(case))
with open("../xmltest.html", "wb") as f:
HTMLTestRunner(
stream=f,
title="单元测试",
description="测试xml",
verbosity=2
).run(suite)
if __name__ == '__main__':
test = HtmlClass()
test.shengchenghtml()
结果显示:
下方是生成的html文件