1 pytest flaky库,是失败后重新执行的功能,对于自动化UI测试非常重要,因为web ui定位不是很稳定,连跑成功率一般不高
2 现在比较流行的web ui定位,都是js的异步库,草根python移植过来,必须使用python的异步库执行,比如pyppeteer
3 执行时发现pytest的asyncio库,与flaky库不能共存,当用例标注为asyncio时,后面的重跑会直接略过。
google发现flaky库之前有人提交了修改的代码,但是没用合并。手动修改后可用。在此记录。修改处如下
import asyncio
def call_and_report(self, item, when, log=True, **kwds):
self._reset_test_event_loop(item)
@staticmethod
def _reset_test_event_loop(item):
if 'asyncio' in item.keywords and 'event_loop' in item.funcargs:
# always use new loops for every run
item.funcargs['event_loop'] = asyncio.new_event_loop()
修改链接
Fix flaky tests with asyncio by wjsi · Pull Request #179 · box/flaky
网友评论