Robot Framework-失败用例自动重跑
来源:互联网 发布:商标域名注册 编辑:程序博客网 时间:2024/06/10 21:51
使用自动化脚本进行测试,经常受环境影响等各方面导致本能成功的脚本失败,下面介绍了RFS框架下,失败重跑的方法:
通过改写RobotFramework源代码增加–retry选项,实现test级别的失败用例自动再执行:失败用例会重跑N次,直至成功or 耗尽重试次数,生成的日志和报告文件中只会体现最后一次执行的结果。
修改代码如下:
一、修改文件 C:\Python27\Lib\site-packages\robot\run.py
1)在USAGE变量里添加下面红色内容。
Options ======= -X --retry retry Set the retry times if test failed. -N --name name Set the name of the top level test suite. Underscores in the name are converted to spaces. Default name is created from the name of the executed data source.
2)增加导入模块
reload(sys)sys.setdefaultencoding('UTF-8')from xml.dom import minidom
3)RobotFramework类增加make方法
def make(self,outxml): xmldoc = minidom.parse(outxml) suiteElementList = xmldoc.getElementsByTagName('suite') mySuite = [] for suiteElement in suiteElementList: if suiteElement.childNodes is not None: for element in suiteElement.childNodes: if element.nodeName == 'test': mySuite.append(suiteElement) break for suite in mySuite: testElements = {} for element in suite.childNodes: if element.nodeName == 'test': name = element.getAttribute('name') if testElements.get(name) == None: testElements.update({name:[element]}) else: testElements.get(name).append(element) for n,el in testElements.iteritems(): for i in el[0:-1]: textElement = i.nextSibling suite.removeChild(i) suite.removeChild(textElement) savefile = open(outxml,'w') root = xmldoc.documentElement root.writexml(savefile) savefile.close()
4)RobotFramework类的main方法,加入红色内容 self._make(settings.output)
二、robot/conf/settings.py
修改_cli_opts字典,增加 ‘Retry’:(‘retry’,3)
三、robot/model/itemlist.py
修改visit方法如下
def visit(self, visitor): for item in self: if self.__module__ == 'robot.model.testcase' and hasattr(visitor,"_context"): testStatus = '' for i in range(0,int(visitor._settings._opts['Retry'])): if testStatus != 'PASS': if item.name in visitor._executed_tests: visitor._executed_tests.pop(item.name) item.visit(visitor) testStatus = visitor._context.variables['${PREV_TEST_STATUS}'] else: break else: item.visit(visitor)
四、robotide\contrib\testrunner\usages.py
修改USAGE字符串,增加 -X –retry retry Set the retry times if test failed.
现在完成了所有配置,可以运行一下试试了。次数的配置在settings.py下retry后修改即可。
转载:http://www.cnblogs.com/baihuitestsoftware/articles/5923411.html
阅读全文
0 0
- Robot Framework-失败用例自动重跑
- 扩展Robot Framework,实现失败用例自动再执行(失败重跑)
- 扩展Robot Framework,实现失败用例自动再执行(失败重跑)
- 扩展Robot Framework,实现失败用例自动再执行(失败重跑)
- 解决RobotFramework用例执行失败自动重跑问题
- Python+unittest用例失败时候,自动重跑
- robot framwork 失败用例继续执行
- Robot FrameWork自动测试之入门范例
- robotium 测试用例操作失败自动重跑测试用例方法
- TestNG实现用例运行失败自动截图和重跑
- 如何解决testng执行用例失败自动重跑问题
- 失败用例的重跑,实践
- 用命令执行robot framework 中的测试用例
- 命令行执行robot framework的项目和用例
- Robot Framework
- Robot Framework
- Robot Framework
- Robot Framework
- 热修复——简单原理与简单实现
- 狗屎一样的React(第五节,React组件的生命周期)
- ThinkPHP导出Excel
- CentOS7.2编译安装Mysql
- Wala使用心得
- Robot Framework-失败用例自动重跑
- 分答项目_技能点_require加载模块
- NEUQACM OJ 1015:同因查找
- 判断两条线段是否相交
- RN中的键盘遮挡问题解决
- 原生js写淡入淡出轮播(点击按钮)
- java使用异常
- 升级/降级内核 VirtualBox报错 Kernel driver not installed (rc=-1908) 最新解决办法
- 深入理解JavaScript系列文章