PyTest之用例超时强制退出


一、脚本中设置超时退出

由于某些测试用例步骤长,执行时间比较久,为了防止程序长时间处于等待状态,浪费宝贵时间。为此,我们可以设置一个超时时间,当测试在指定的时间长度内没有完成(即使程序并没有“僵死”,只是处理得比较慢),测试会被强行终止。再此,需要安装一个插件pytest-timeout。如下:

pip install pytest-timeout

比如,下例中设计的用例超过2秒时,就不再等待,并停止执行。

#test_timeout.py

import time
import pytest

class TestMyCode:

    @pytest.mark.timeout(4)
    def test_timeout_001(self):
        """正常执行,并通过"""
        time.sleep(3)
        assert 1 == 1

    @pytest.mark.timeout(2)
    def test_timeout_002(self):
        """超时,强制报错"""
        time.sleep(3)
        assert 1 == 1

    def test_timeout_003(self):
        """正常执行,并通过"""
        assert 1 == 1

if __name__ == '__main__':
    pytest.main(["-s", "test_timeout.py"])

结果:

二、jenkins中设置超时退出

另外,在jenkins中也可以设置超时停止任务,如图:


免责声明!

本站转载的文章为个人学习借鉴使用,本站对版权不负任何法律责任。如果侵犯了您的隐私权益,请联系本站邮箱yoyou2525@163.com删除。



 
粤ICP备18138465号  © 2018-2025 CODEPRJ.COM