pytest自动化

主流pytest工具。  Python语言下:unittest框架,pytest工具。  Java语言下:Junit框架,testng工具

pytest

命名规则:

测试用例: 

复制代码
class TestPytest():
    """测试Pytest类"""

    def test_001(self):
        """test_001"""
        print("test_001")
        assert 1 == 1

    def test_002(self):
        """test_002"""
        print("test_002")
        assert 1 < 2
复制代码

 

 

执行参数:

-v 显示详细的测试信息:pytest.main(['-v']),详细展示每条用例方法名称、结果、进度等信息

 -s 显示用例中打印信息:pytest.main(['-s'])

-q 安静的输出,只显示运行的结果信息:pytest.main(['-q', '../Testcase/test_pytest_demo.py'])

 - -n 多线程执行测试用例:pytest.main(['-vs', '../Testcase/test_pytest_demo.py','-n2']),n后面的数字为线程数,使用前需要安装pytest-xdist插件

 -m 执行指定标记的用例:pytest.main(['-m markName']),自定义的标记名称可在pytest.ini文件中进行注册才可以使用

 –lf 重跑上次失败的用例:pytest.main(['-v', '../Testcase/test_pytest_demo.py', '--lf']),如果上次没有失败用例,则执行全部

–reruns=N 自动重跑失败用例N次:pytest.main(['-q', '--reruns=1', '../Testcase/test_pytest_demo.py'])

 

断言:

  • assert a in b:断言a包含b
  • assert a == b:断言a等于b
  • assert 1 < 2:断言1小于2

 

 

 

原文链接https://blog.csdn.net/Wenhua_1/article/details/127191189

--··--··--··--··--··--··--··--··--··--··--··--··--··--··--··--··--··--··--··--··--··--··--··--··--··

 unittest稍微了解一下吧~

  1. 重要插件:测试用例类 testcases,测试套件 testsuits,测试夹具 testfixtures,测试类加载器 testLoader,测试运行器 testrunner

  2. 规则:

    测试文件先导入unittest包 import unittest

    测试类继承unittest.TestCase

    测试方法以test开头,test01,test11,命名规则0开头

   3. 断言:

assertTure(a) 判断a是否为真
assertEqual(a,b) 判断a和b是否一致
assertln(a,b) 判断a是否在b里面
assertNotEqual(a,b) 判断a!= b
assertNotIn(a,b) 判断a是否在b里面
assertFalse(a) 判断a是否为假

  4. 测试报告:htmlesrunner 导包,下载py3支持包,导入即可使用。没有失败重跑

  5. 数据驱动:@ddt

  6. 用例分类执行:默认执行所有,可通过testsuite执行部分用例,或者用-k参数执行

 

用例实战:需求规格说明书:随机输入三个正整数,判断是否构成三角形,以及构成的什么边的三角形。(暂且不考虑正整数的范围)

测试需求:如果不能构成三角行,输出“不能构成三角形”;如果输入非法,提示“非法输入”;普通三角形用1表示,等腰三角形用2表示,等边三角形用3表示。

复制代码
# 测试模块,负责三角模块的测试
# 导入unittest测试单元
import xlrd
from xlutils import copy # 在写入excel表的时候,需要先拷贝再写入
import unittest
# 导入数据驱动
from ddt import ddt, data, unpack
# 导入待测试的测试用例数据的模块
from day9.data import TriangleData
# 导入需要测试的模块
from day9.function import triangle
@ddt # 声明使用ddt框架
class TestTriangle(unittest.TestCase):
    # 获取TriangleData模块下的TriangleData类,并通过TriangleData获取测试用例数据
    triangleData = TriangleData.TriangleData().triangleData
    # print(triangleData)
    @data(*triangleData) # 传入数据 *表示解析数据格式,解析成列表的格式
    @unpack # 解包的数据类型为:列表、元组、字典
    def test01_isTriangle(self, row, a, b, c, except_res):
        t = triangle.Triangle()
        # 执行测试用例,真实结果
        real_res = t.isTriangle(a, b, c)
        # 将执行的结果写入工作簿
        write_isTriangle_result(row, real_res, except_res)
        # 断言进行预期结果与真实结果的判断
        self.assertEqual(except_res, real_res) # 注意,先传入预期结果,在传入实际结果
    def write_isTriangle_result(row, real_res, except_res):
        # 将实际结果和预期结果
        is_pass = ''
        if except_res == real_res:
        is_pass = ''
        # 将处理的结果写入cal_test表中
        # 打开源文件,并保留源文件的数据格式
        wb = xlrd.open_workbook(filename=r'D:\pyhton-product\day9\testCases\TriangleTestCase.xlsx',
        encoding_override='utf-8')
        # 复制原始的工作簿
        c_wb = copy.copy(wb)
        # 获取工作表
        c_sheet = c_wb.get_sheet(0)
        # 写入数据
        c_sheet.write(row, 5, real_res)
        c_sheet.write(row, 6, is_pass)
        # 保存复制下来的表格
        c_wb.save(r'D:\pyhton-product\day9\testCases\TriangleTestCase.xlsx')

# 这一部分用于执行测试用例和生成测试报告
# if __name__ == '__main__':
# unittest.main()
复制代码
原文链接:https://blog.csdn.net/apex_eixl/article/details/138634450

 

 

 等自动化熟悉起来,看Java框架

 一手可乐,一手学习

posted @   云云淡淡  阅读(22)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· TypeScript + Deepseek 打造卜卦网站:技术与玄学的结合
· 阿里巴巴 QwQ-32B真的超越了 DeepSeek R-1吗?
· 【译】Visual Studio 中新的强大生产力特性
· 【设计模式】告别冗长if-else语句:使用策略模式优化代码结构
· AI与.NET技术实操系列(六):基于图像分类模型对图像进行分类
点击右上角即可分享
微信分享提示