单元测试pytest--xml文件读取

  • 首先模拟开发编写一个demo
    单元测试pytest--xml文件读取_第1张图片
class NumTest(object):
    def add(self,num1,num2):
        sum = num1+num2
        return sum
    def reduct(self,num1,num2):
        red = num1-num2
        return red
  • 编写一个.xml的文件存储测试数据
    单元测试pytest--xml文件读取_第2张图片
<note>
    <add>
        <add1>1add1>
        <add2>2add2>
        <add3>3add3>
    add>
    <reduct>
        <reduct1>4reduct1>
        <reduct2>2reduct2>
        <reduct3>2reduct3>
    reduct>
note>
  • 读取.xml文件内容
    单元测试pytest--xml文件读取_第3张图片
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
  • 编写测试用例
    单元测试pytest--xml文件读取_第4张图片
import os
import pytest
from pytest03.read_xml.readxml import Readxml
from pytest03.demos.demo import NumTest

readxml = Readxml()
add_xml1 = int(readxml.read_xml("../xmls/xmls1.xml","add","add1"))
add_xml2 = int(readxml.read_xml("../xmls/xmls1.xml","add","add2"))
add_xml3 = int(readxml.read_xml("../xmls/xmls1.xml","add","add3"))

reduce_xml1 = int(readxml.read_xml("../xmls/xmls1.xml","reduct","reduct1"))
reduce_xml2 = int(readxml.read_xml("../xmls/xmls1.xml","reduct","reduct2"))
reduce_xml3 = int(readxml.read_xml("../xmls/xmls1.xml","reduct","reduct3"))
numtest = NumTest()
num1 = numtest.add(add_xml1,add_xml2)
num2 = numtest.reduct(reduce_xml1,reduce_xml2)

class Testxml(object):
    def test01(self):
        assert num1 == add_xml3
    def test02(self):
       assert num2 == reduce_xml3
if __name__ == '__main__':
    pytest.main(['--alluredir', 'report/result', 'test_xml.py']) #生成json类型的测试报告
    split = 'allure ' + 'generate ' + './report/result ' + '-o ' + './report/html ' + '--clean' #将测试报告转为html格式
    os.system(split) # system函数可以将字符串转化成命令在服务器上运行

  • 运行当前文件,查看页面效果
    单元测试pytest--xml文件读取_第5张图片
  • 总结
    在这里插入图片描述
    由上图可以看出我们在点击运行测试用例之后,在测试用例同目录生成了一个report目录,该目录下分别有htmlresult文件夹,html存储的是我们的web端测试报告,而result文件夹内存储的是.json结尾的文件里面包含内容也是我们的测试用例中的一些信息,一般我们只需要查看index.html生成的测试报告即可

你可能感兴趣的:(软件测试)