How to deal with Robot Framework result from XML output
来源:互联网 发布:苹果手机录像机软件 编辑:程序博客网 时间:2024/04/28 08:14
最近在做个邮件通知,邮件正文中需要总结一下RF的结果,本来想直接把rebot命令生成的html页面复制上去,后来发现它是基于js生成的。
既然邮件不识别,只能自己来生成html结果了。
1. Parse output.xml
rebot命令生成报告是基于RF生成的output.xml, 我们也需要从这里下手。
robot.api提供了解析xml的API
从链接中的例子可以看到主要用到了ExecutionResult和ResultVisitor
ExecutionResult负责解析xml,然后通过ResultVisitor来对结果做一些自定义的修改。
2. ExecutionResult API
我们只是要得到statistics的结果,所以只需用ExecutionResult的返回值Result即可。
Result.statistics主要有以下几个elements:
total:
Instance of TotalStatistics.suite:
Instance of SuiteStatistics.tags:
Instance of TagStatistics.
我们需要逐一的去看看对应instance以及其父类的成员变量, 比如我们看文档可以知道TotalStatistics.message可以得到如下结果:
我们就可以通过ExecutionResult(xml_path).statistics.total.message来获取它的值。
关于suite和tags,它们最后是base robot.model.stats.Stat, 其中提供了test case的name,total,passed,elapsed等信息。
3. Handle result code snippet
from pprint import pprintfrom robot.api import ExecutionResultdef handle_robot_results(xml_path): print '='×80 print 'RF Total Result:' test_stats = ExecutionResult(xml_path).statistics pprint(test_stats.total.message) print '='×80 for stats_by_suite in test_stats.suite: print('{:70} {:^5} {:^5}'.format(stats_by_suite.name, stats_by_suite.total, stats_by_suite.passed)) print '='×80 for stats_by_tag in test_stats.tags: print('{:50} {:^5} {:^5}'.format(stats_by_tag.name, stats_by_tag.total, stats_by_tag.passed)) print '='×80
有了以上结果,我们就能轻松生成html格式的邮件了。
- How to deal with Robot Framework result from XML output
- Issue from FindBugs,and how to deal with them
- How to deal with deadlock.
- How to deal with Gecko problem.
- How to deal with javadoc createProcess issue?
- How to deal with generation gap
- How to deal with International trade outsourcing?
- How to deal with difficult Boss
- How to deal with interlaced video
- [cernRoot]how to deal with TPavetext->SetTextAngle()?
- How to deal with telecom fraud?
- How to deal with an SVM with categorical attributes?
- how to deal with "undefined reference to XXX"
- how to sikuli and robot framework
- How to deal with faculty,感觉自己的老师真是~~~~~~
- How to Deal with Messy Codes in Essbase
- How to Deal With Out Of Memory Errors
- How to deal with '/bin/rm:Argument list too long'
- 2012年08月22日
- SQL SERVER传递datetime参数注意事…
- AdMob使用AdMob游戏服务-免费!
- xpath提取多个标签下的text
- vb.net DateTimePicker如何显示某…
- How to deal with Robot Framework result from XML output
- 如何使用vb.net多线程
- Android WebView开发问题及优化汇总
- SQL 截取日期作为条件
- linux查看内存硬件情况
- java 动态代理
- 今天发现好多微软新产品包括输入法
- vb.net多线程同步调用实例
- MS SQL修改sa密码