• 08.25作业练习


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

    xml数据

     demo

    1. class ClacClass():
    2. def jiafa(self,a,b):
    3. return a+b
    4. def jianfa(self,a,b):
    5. return a-b
    6. def chengfa(self,a,b):
    7. return a*b
    8. def chufa(self,a,b):
    9. return a/b

    data

    1. "1.0" encoding="UTF-8" ?>
    2. <root>
    3. <jia>
    4. <num1>1num1>
    5. <num2>2num2>
    6. <num3>3num3>
    7. jia>
    8. <jian>
    9. <num1>6num1>
    10. <num2>1num2>
    11. <num3>5num3>
    12. jian>
    13. <cheng>
    14. <num1>2num1>
    15. <num2>3num2>
    16. <num3>6num3>
    17. cheng>
    18. <chu1>
    19. <num1>9num1>
    20. <num2>3num2>
    21. <num3>3num3>
    22. chu1>
    23. <chu2>
    24. <num1>9num1>
    25. <num2>6num2>
    26. <num3>6num3>
    27. chu2>
    28. root>

    readdata

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

    test

    1. import pytest,allure,os
    2. from zuoye.demo.yunsuan import ClacClass
    3. from zuoye.readdata.readxml import ReadXml
    4. c=ClacClass()
    5. r=ReadXml()
    6. add1=int(r.read_xml("jia","num1"))
    7. add2=int(r.read_xml("jia","num2"))
    8. add3=int(r.read_xml("jia","num3"))
    9. cheng1=int(r.read_xml("cheng","num1"))
    10. cheng2=int(r.read_xml("cheng","num2"))
    11. cheng3=int(r.read_xml("cheng","num3"))
    12. jian1=int(r.read_xml("jian","num1"))
    13. jian2=int(r.read_xml("jian","num2"))
    14. jian3=int(r.read_xml("jian","num3"))
    15. chu1=int(r.read_xml("chu1","num1"))
    16. chu2=int(r.read_xml("chu1","num2"))
    17. chu3=int(r.read_xml("chu1","num3"))
    18. chu11=int(r.read_xml("chu2","num1"))
    19. chu22=int(r.read_xml("chu2","num2"))
    20. chu33=int(r.read_xml("chu2","num3"))
    21. class TestXml():
    22. @allure.feature("加法运算功能")
    23. @allure.story("运算正确")
    24. def test001(self):
    25. assert c.jiafa(add1,add2)==add3
    26. @allure.feature("乘法运算功能")
    27. @allure.story("运算正确")
    28. def test002(self):
    29. assert c.chengfa(cheng1,cheng2)==cheng3
    30. @allure.feature("减法运算功能")
    31. @allure.story("运算正确")
    32. def test003(self):
    33. assert c.jianfa(jian1,jian2)==jian3
    34. @allure.feature("除法运算功能")
    35. @allure.story("运算正确")
    36. def test004(self):
    37. assert c.chufa(chu1,chu2)==chu3
    38. @allure.feature("除法运算功能")
    39. @allure.story("运算错误")
    40. def test005(self):
    41. assert c.chufa(chu11,chu22)==chu33
    42. if __name__ == '__main__':
    43. pytest.main(["test_xml.py"])
    44. pytest.main(['--alluredir', 'report/result', 'test_xml.py'])
    45. split = 'allure ' + 'generate ' + './report/result ' + '-o ' + './report/html ' + '--clean'
    46. os.system(split)

    report

     

     demo

    1. class ClacClass():
    2. def jiafa(self,a,b):
    3. return a+b
    4. def jianfa(self,a,b):
    5. return a-b
    6. def chengfa(self,a,b):
    7. return a*b
    8. def chufa(self,a,b):
    9. return a/b

    data

    1. 1,2,3
    2. 6,1,5
    3. 2,3,6
    4. 9,3,3
    5. 9,6,6

    readdata

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

    test

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

    report

     

  • 相关阅读:
    【深度学习】基于tensorflow的服装图像分类训练(数据集:Fashion-MNIST)
    内存、指针与数组
    Java流的体系结构(二)
    想跳槽却简历石沉大海?一起来围观月薪 20k 的软件测试工程师真实简历
    【hcie-cloud】【1】华为云Stack解决方案介绍、华为文档获取方式 【上】
    基于Keil a51汇编 —— 标准宏定义
    同步锁的分类
    电脑游戏录屏哪个好用免费?这2款录屏软件,用过都说好!
    轻松解决Canvas绘制图片模糊的问题
    Arduino安装全流程(包括ESP32离线包安装)
  • 原文地址:https://blog.csdn.net/qq_57411925/article/details/126528510