一篇打通,pytest自动化测试框架详细,从0到1精通实战(二)


前言

读取文件

1、读取csv文件

import csv   #导入csv模块
class ReadCsv():
    def read_csv(self):
        item =[]    #定义一个空列表
        c = csv.reader(open("../commonDemo/test1.csv","r"))    #得到csv文件对象
        for csv_i in c:
            item.append(csv_i)      #将获取的数据添加到列表中
        return item
            
r = ReadCsv()
print(r.read_csv())

具体步骤:

"""
拿到开发的代码
"""


class CalcClass():
    def xf(self, a, b):
        c = a * b
        return c

    def cf(self, a, b):
        c = a / b
        return c
# cc  =CalcClass()
# ff = cc.xf(1,2)
# print(ff)
# gg = cc.cf(1,2)
# print(gg)
"""
要测试的数据
"""
2,3,6
"""
读取CSV文件
"""
import csv  # 导入csv模块


class ReadCsv():
    def read_csv(self):
        item = []  # 定义一个空列表
        c = csv.reader(open("../dataDemo/a.csv", "r", encoding="utf-8"))  # 得到csv文件对象
        for csv_i in c:
            item.append(csv_i)  # 将获取的数据添加到列表中
        return item

# r = ReadCsv()
# print(r.read_csv())
"""
测试用例+生成测试报告代码
"""
from readDemo.readcsv import ReadCsv
import pytest
from demo.calcDemo import CalcClass
import os
import allure

r = ReadCsv()
rr = r.read_csv()
c = CalcClass()


class TestCsv():
    def testcsv(self):
        for i in rr:
            bl = c.xf(int(i[0]), int(i[1]))
            assert bl == int(i[-1])


if __name__ == '__main__':
    pytest.main(["--html=./Csvreport.html", "test_csv.py"])

生成测试报告

D1

2、读取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

allure测试报告

Allure是一款轻量级并且非常灵活的开源测试报告框架。 它支持绝大多数测试框架, 例如TestNG、Pytest、JUint等。它简单易用,易于集成。

1、配置allure的环境变量

扫描二维码关注公众号,回复: 16335352 查看本文章

D2

2、验证allure是否配置成功

D3

3、安装allure

pip install allure-pytest
# allure-pytest是Pytest的一个插件,通过它我们可以生成Allure所需要的用于生成测试报告的数据

4、Allure常用的几个特性

@allure.feature # 用于描述被测试产品需求
@allure.story # 用于描述feature的用户场景,即测试需求

with allure.step(): # 用于描述测试步骤,将会输出到报告中
allure.attach # 用于向测试报告中输入一些附加的信息,通常是一些测试数据,截图等

D4

5、具体效果

from readDemo.readcsv import ReadCsv
import pytest
from demo.calcDemo import CalcClass
import os
import allure

r = ReadCsv()
rr = r.read_csv()
c = CalcClass()


class TestCsv():
    @allure.feature("两数相乘")  # 用于描述被测试产品需求
    @allure.story("乘除结果")  # 用于描述feature的用户场景,即测试需求
    def testcsv(self):
        with allure.step("查看乘法结果"):    # 用于描述测试步骤,将会输出到报告中
            allure.attach("6", "附加信息")   # 用于向测试报告中输入一些附加的信息,通常是一些测试数据,截图等
        for i in rr:
            bl = c.xf(int(i[0]), int(i[1]))
            assert bl == int(i[-1])


if __name__ == '__main__':
    pytest.main(['--alluredir', 'reportCsv/result', 'test_csv.py'])
    split = 'allure ' + 'generate ' + './reportCsv/result ' + '-o ' + './reportCsv/html ' + '--clean'  # 将测试报告转为html格式
    os.system(split)  # system函数可以将字符串转化成命令在服务器上运行

D6

下面是我整理的2023年最全的软件测试工程师学习知识架构体系图

一、Python编程入门到精通

请添加图片描述

二、接口自动化项目实战

请添加图片描述

三、Web自动化项目实战

请添加图片描述

四、App自动化项目实战

请添加图片描述

五、一线大厂简历

请添加图片描述

六、测试开发DevOps体系

请添加图片描述

七、常用自动化测试工具

请添加图片描述

八、JMeter性能测试

请添加图片描述

九、总结(尾部小惊喜)

风雨不改初心,坚持必有回响。莫等待机会,拼搏方显勇者。每一次的努力,都是自我革新的开始。将梦想化作行动的力量,扬帆远航。

命运并非注定,而是创造。拿起勇气和决心,挥洒汗水与智慧,你将发现无尽可能。不论起点如何,只要奋斗不息,终将登上人生的巅峰,闪耀出属于自己的光芒!

每一次的坚持,都是自己的成长。勇敢追求梦想,不停止前进的脚步。困难只是暂时的阻碍,挑战是成长的机遇。相信自己的力量,勇往直前,终将收获辉煌的人生。

猜你喜欢

转载自blog.csdn.net/csdnchengxi/article/details/132277047
今日推荐