用例重运行/并发运行

1.用例重运行

在web自动化测试用例运行中,经常会因为网络或页面不稳定导致用例运行失败,所以我们需要把这些运行失败的用例重新运行,用例运行成功的用例就不需要重新运行了

重运行功能只有pytest框架有,unittest框架中是没有此功能的,在使用此功能前需要先进行安装,因为是python的第三方库,pip install pytest-rerunfailures

具体用法如下:

测试用例代码如下:

def test_1():
    assert 1 == 1


def test_2():
    assert 1 == 2

运行pytest --reruns 2 命令:2的意思是失败的用例重新运行2次,总共就是2条测试用例共运行4=1+1+2次,因为失败的用例会运行2次

 重运行可以和用例筛选一块使用,只把运行失败的用例筛选出来进行重运行

import pytest


def test_1():
    assert 1 == 1


@pytest.mark.failed
def test_2():
    assert 1 == 2

方法一:命令行运行

方法二:代码运行,运行run.py

import pytest

pytest.main(['-m', 'failed', '--alluredir=output', '--reruns', '2'])

2.并发运行

这时所谓的并发不是性能测试,主要是解决web自动化测试用例执行速度慢,并发执行的意思是我同时可以执行多条用例

这时用到的就是pytest框架中的pytest-xdist,同样使用前需要先安装,也是第三方库

执行安装命令:pip install pytest-xdist

并发运行命令:pytest -n 4 (4(worker)的意思就是同时执行4条用例)

注意:使用并发执行时,用例和用例之间不能有依赖关系

因为有依赖关系的话,容易出问题,当依赖的用例1还没执行完,用例2已经执行了,没有拿到用例1提供的数据就会出错 

如下:

第一次我没有执行并发运行,运行了6条用例,时间用时:59.51s

第二次我执行并发运行,开了2个worker,运行了6条用例,时间用时:40.22s

第二次我执行并发运行,开了4个worker,运行了6条用例,时间用时:45.10s

 开多少个worker合适:

  • worker数量不是越多越好
  • 通常就是电脑的核数是几,就开多少个worker

总结:从上面的例子可以看出,使用并发运行的速度还是比不使用并发运行要快,但也没有想象中的快很多,影响的原因有很多,网络、电脑配置都有关系,所以具体开多少个worker要根据综合情况来确定 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值