博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
测试用例出错重跑--flaky插件
阅读量:6497 次
发布时间:2019-06-24

本文共 1373 字,大约阅读时间需要 4 分钟。

hot3.png

      自动化测试的时候,经常会遇到这样的问题:大部分时候执行测试用例都能pass,只是偶然出现false,而出现false的时候是因为外部因素引起,比如WiFi不稳定、使用了第三方插件不稳定等,这些情况下往往重新再执行用例就可以pass。可能遇到这种用例false的情况,我们首先想到的会是去剔除失败的用例,但是这样做不是最明智的做法,当用例数量多的时候,很难去判定哪些用例容易由于第三方因素false。最好的办法是----让出错的用例重跑。

     那么如何做到让出错的用例重跑呢?如果你用的是nose或者pytest框架编写用例,就可以使用flaky插件。该插件能够在那些不稳定的case失败之后,重复执行这些case。   

1.flaky插件安装

pip install flaky

 2.测试脚本中的使用

 2.1 将不稳定的case标记为flaky

from flaky import flaky@flakydef test_func(self):    self.assertEqual(1+3,5)

备注:在case方法上方加上,用例执行失败的时候会默认重新执行一次。

from flaky import flaky@flaky(max_runs=3, min_passes=2)def test_func(self):    self.assertEqual(1+3,5)

备注:flaky接收两个参数:max_runs,min_passes。max_runs表示测试失败之后,会重复执行这个测试的次数。min_passes表示执行max_runs这么多次中,成功的次数>=min_passes的话,则认为这个case就pass了。如上用例表示:执行3次用例中,如果pass次数>=2,则pass.

2.2 将不稳定的测试类标为flaky

from flaky import flaky@flakyclass testAdd(unittest.TestCase):           def test_func(self):          self.assertEqual(1+3,5)      @flaky(max_run=3)      def test_double(self):          self.assertEqual(2+6,8)

 备注:以上testAdd类下的所有方法都会应用到flaky。test_func失败之后会默认再执行一次。test_double失败之后会重新再执行3次。

3.命令行中使用flaky

3.1 强制所有的测试使用flaky

py.test --force-flaky

3.2设置重复执行的次数

py.test --force-flaky --max-runs=3 --min-passes=2

3.3不输出flaky执行的测试报告

py.test --no-flaky-report

备注:正常情况下,测试完成后将输出flaky的测试报告,该报告中显示了有哪些测试重复执行了以及重复执行的情况。如果不想在测试完成后输出flaky报告,可以在执行测试的时候加上--no-flaky-report参数。

转载于:https://my.oschina.net/u/873595/blog/794820

你可能感兴趣的文章
TableStore: 海量结构化数据分层存储方案
查看>>
Unity 4.x游戏开发技巧集锦(内部资料)
查看>>
自适应网页设计
查看>>
获取BT节点信息bittorrent-discovery
查看>>
环形动画加载视图AnimatedCircleLoadingView
查看>>
Centos 7使用vsftpd搭建FTP服务器
查看>>
tcpdump抓包文件提取http附加资源
查看>>
linux下SVN不允许空白日志提交
查看>>
第2周第1课
查看>>
docker制作镜像篇(基于容器)
查看>>
山寨c 标准库中的getline 函数
查看>>
shell时间
查看>>
pfSense book之2.4安装指南
查看>>
org.springframework.data.redis 一次连接获取特定key所有k-v(pipeline)
查看>>
[译稿]同步复制提议 2010-09
查看>>
账户密码策略修改
查看>>
outlook2010 打开总是提示“正在加载配置文件”
查看>>
如何写一篇好的技术博客
查看>>
Netty - ByteBuf
查看>>
Netty - ByteBuf索引管理
查看>>