08.25作业练习

单元测试:通过读取 csv/xml 数据并且结合使用 allure 展示测试报告,验证开发中的加减乘除
创建包

xml数据

 demo

class ClacClass():
    def jiafa(self,a,b):
        return a+b
    def jianfa(self,a,b):
        return a-b
    def chengfa(self,a,b):
        return a*b
    def chufa(self,a,b):
        return a/b

data

<?xml version="1.0" encoding="UTF-8" ?>
<root>
    <jia>
        <num1>1</num1>
        <num2>2</num2>
        <num3>3</num3>
    </jia>
    <jian>
        <num1>6</num1>
        <num2>1</num2>
        <num3>5</num3>
    </jian>
    <cheng>
        <num1>2</num1>
        <num2>3</num2>
        <num3>6</num3>
    </cheng>
    <chu1>
        <num1>9</num1>
        <num2>3</num2>
        <num3>3</num3>
    </chu1>
    <chu2>
        <num1>9</num1>
        <num2>6</num2>
        <num3>6</num3>
    </chu2>
</root>

readdata

from xml.dom import minidom
class ReadXml():
    def read_xml(self,first,second):
        file=minidom.parse("../data/shujuxml.xml")
        firstnode=file.getElementsByTagName(first)[0]
        secondnode=firstnode.getElementsByTagName(second)[0].firstChild.data
        return secondnode

test

import pytest,allure,os
from zuoye.demo.yunsuan import ClacClass
from zuoye.readdata.readxml import ReadXml
c=ClacClass()
r=ReadXml()
add1=int(r.read_xml("jia","num1"))
add2=int(r.read_xml("jia","num2"))
add3=int(r.read_xml("jia","num3"))
cheng1=int(r.read_xml("cheng","num1"))
cheng2=int(r.read_xml("cheng","num2"))
cheng3=int(r.read_xml("cheng","num3"))
jian1=int(r.read_xml("jian","num1"))
jian2=int(r.read_xml("jian","num2"))
jian3=int(r.read_xml("jian","num3"))
chu1=int(r.read_xml("chu1","num1"))
chu2=int(r.read_xml("chu1","num2"))
chu3=int(r.read_xml("chu1","num3"))
chu11=int(r.read_xml("chu2","num1"))
chu22=int(r.read_xml("chu2","num2"))
chu33=int(r.read_xml("chu2","num3"))
class TestXml():
    @allure.feature("加法运算功能")
    @allure.story("运算正确")
    def test001(self):
        assert c.jiafa(add1,add2)==add3
    @allure.feature("乘法运算功能")
    @allure.story("运算正确")
    def test002(self):
        assert c.chengfa(cheng1,cheng2)==cheng3
    @allure.feature("减法运算功能")
    @allure.story("运算正确")
    def test003(self):
        assert c.jianfa(jian1,jian2)==jian3
    @allure.feature("除法运算功能")
    @allure.story("运算正确")
    def test004(self):
        assert c.chufa(chu1,chu2)==chu3
    @allure.feature("除法运算功能")
    @allure.story("运算错误")
    def test005(self):
        assert c.chufa(chu11,chu22)==chu33
if __name__ == '__main__':
    pytest.main(["test_xml.py"])
    pytest.main(['--alluredir', 'report/result', 'test_xml.py'])
    split = 'allure ' + 'generate ' + './report/result ' + '-o ' + './report/html ' + '--clean'
    os.system(split)

report

 

 demo

class ClacClass():
    def jiafa(self,a,b):
        return a+b
    def jianfa(self,a,b):
        return a-b
    def chengfa(self,a,b):
        return a*b
    def chufa(self,a,b):
        return a/b

data

1,2,3
6,1,5
2,3,6
9,3,3
9,6,6

readdata

import csv   #导入csv模块
class ReadCsv():
    def read_csv(self):
        file=csv.reader(open("../data/shujucsv.csv","r"))#得到csv的文件
        item=[] #定义一个空列表
        for i in file:
            item.append(i)
        return item

test

import pytest,allure,os
from zuoye.demo.yunsuan import ClacClass   #导入测试的代码
from zuoye.readdata.readcsv import ReadCsv #导入读取的数据
c=ClacClass()
r=ReadCsv()
aa=r.read_csv()
class TestSuanShuClass():
    @allure.feature("加法运算功能")
    @allure.story("运算正确")
    def test001_success(self):
        assert c.jiafa(int(aa[0][0]),int(aa[0][1]))==int(aa[0][2])
    @allure.feature("减法运算功能")
    @allure.story("运算正确")
    def test002_success(self):
        assert c.jianfa(int(aa[1][0]),int(aa[1][1]))==int(aa[1][2])
    @allure.feature("乘法运算功能")
    @allure.story("运算正确")
    def test003_success(self):
        assert c.chengfa(int(aa[2][0]),int(aa[2][1]))==int(aa[2][2])
    @allure.feature("除法运算功能")
    @allure.story("运算正确")
    def test004_success(self):
        assert c.chufa(int(aa[3][0]),int(aa[3][1]))==int(aa[3][2])
    @allure.feature("除法运算功能")
    @allure.story("运算错误")
    def test005_fail(self):
        assert c.chufa(int(aa[4][0]), int(aa[4][1])) == int(aa[4][2])
if __name__ == '__main__':
    pytest.main(['--alluredir', 'report/result', 'testcsv.py'])  # 生成json类型的测试报告
    split = 'allure ' + 'generate ' + './report/result ' + '-o ' + './report/html ' + '--clean'  # 将测试报告转为html格式
    os.system(split)  # system函数可以将字符串转化成命令在服务器上运行

report

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值