美文网首页
Python Pytest自动化测试 error与failed的

Python Pytest自动化测试 error与failed的

作者: 白码会说 | 来源:发表于2020-11-27 22:27 被阅读0次

    Time will tell.

    fixture 是 pytest 的核心功能,也是亮点功能。

    fixture 的目的是提供一个固定基线,在该基线上测试可以可靠地和重复地执行。fixture 提供了区别于传统单元测试有显著改进:

    1. 有独立的命名,并通过声明它们从测试函数、模块、类或整个项目中的使用来激活。

    2. 按模块化的方式实现,每个fixture都可以互相调用。

    3. fixture的范围从简单的单元扩展到复杂的功能测试,允许根据配置和组件选项对fixture和测试用例进行参数化,或者跨函数 function 、类 class 、模块 module 或整个测试会话 sessio范围。

    1、fixture作为参数传入

    定义 fixture 跟定义普通函数差不多,唯一区别就是在函数上加个装饰器@pytest.fixture(), fixture 命名不要用test开头,跟用例区分开。用例才是test开头的命名。

    fixture 是可以有返回值的,如果没return默认返回None。用例调用fixture的返回值,直接就是把fixture的函数名称当成变量名称,如下:

    # test_fixture1.py
    
    import pytest
    
    @pytest.fixture()
    def user():
        print("获取用户名")
        a = "yoyo"
        return a
    
    def test_1(user):
        assert user == "yoyo"
    
    if __name__ == "__main__":
        pytest.main(["-s", "test_fixture1.py"])
    
    

    结果:

    ============================= test session starts =============================
    platform win32 -- Python 3.6.0, pytest-3.6.3, py-1.5.4, pluggy-0.6.0
    rootdir: D:\YOYO\fixt, inifile:
    plugins: rerunfailures-4.1, metadata-1.7.0, html-1.19.0, allure-adaptor-1.7.10
    collected 1 item
    
    test_fixture1.py 获取用户名
    .
    
    ========================== 1 passed in 0.20 seconds ===========================
    
    

    2、error和failed区别

    测试结果一般有三种:passedfailederror。(skip的用例除外)

    如果在test_用例里面断言失败,那就是failed

    # test_fixture2.py
    import pytest
    
    @pytest.fixture()
    def user():
        print("获取用户名")
        a = "yoyo"
        return a
    
    def test_1(user):
        assert user == "yoyo111"  # 用例失败就是failed
    
    if __name__ == "__main__":
        pytest.main(["-s", "test_fixture2.py"])
    
    

    如果在 fixture 里面断言失败了,那就是error

    test_fixture3.py
    import pytest
    
    @pytest.fixture()
    def user():
        print("获取用户名")
        a = "yoyo"
        assert a == "yoyo123"  # fixture失败就是error
        return a
    
    def test_1(user):
        assert user == "yoyo"
    
    if __name__ == "__main__":
        pytest.main(["-s", "test_fixture3.py"])
    
    

    还有一种情况也会出现error,那就是自己写的代码有问题,代码本身报错。

    好啦,以上本章节的内容就分享到这里,如果你对更多内容、及Python实例练习题、面试题、自动化软件测试感兴趣的话可以加入我们扣裙一起学习175317069。会有各项学习资源发放,更有行业深潜多年的技术人分析讲解。

    最后祝愿你能成为一名优秀的测试工程师!

    觉得还不错就【点赞】、【评论】、【关注】吧~

    Time will tell.(时间会证明一切)

    相关文章

      网友评论

          本文标题:Python Pytest自动化测试 error与failed的

          本文链接:https://www.haomeiwen.com/subject/zmvfwktx.html