使用python3.6 编写解析robotframework 项目case的方法
时间: 2024-05-12 18:13:47 浏览: 10
可以使用Python中的Robot Framework库来解析Robot Framework项目case。
首先需要安装Robot Framework库:
```python
pip install robotframework
```
然后可以使用下面的代码来解析Robot Framework项目case:
```python
from robot.api import TestData
# 定义Robot Framework项目路径
PROJECT_PATH = "path/to/project"
# 解析测试数据文件
test_data = TestData(source=PROJECT_PATH)
# 遍历测试套件
for suite in test_data:
print("suite name:", suite.name)
# 遍历测试用例
for test_case in suite.testcase_table:
print("test case name:", test_case.name)
# 遍历测试步骤
for step in test_case.steps:
print("step name:", step.name)
```
这样就可以解析Robot Framework项目中的测试用例和测试步骤了。可以根据实际需求来扩展代码功能,比如获取测试用例的输入数据和期望结果等。
相关问题
使用python3.6 编写解析robotframework log的方法
可以使用Python中的re(正则表达式)模块来解析Robot Framework的日志文件。下面是一个简单的示例代码,可以提取出日志中的关键信息:
```python
import re
def parse_robot_log(log_file):
with open(log_file, 'r') as f:
log = f.read()
# 提取测试用例总数、通过数、失败数和耗时
total_cases = re.search(r'Total\s*:\s*(\d+)', log).group(1)
passed_cases = re.search(r'Passed\s*:\s*(\d+)', log).group(1)
failed_cases = re.search(r'Failed\s*:\s*(\d+)', log).group(1)
elapsed_time = re.search(r'Elapsed time:\s*(.*)', log).group(1)
# 提取失败用例的详细信息,包括用例名称、失败原因和堆栈信息
failed_case_pattern = r'(\d+)\)\s*(.*)\s+\.\.\.\s+(FAIL|ERROR):\s+(.*)\n(.*)(?=\d+\))'
failed_cases_info = re.findall(failed_case_pattern, log, re.DOTALL)
# 将结果返回
return {
'total_cases': total_cases,
'passed_cases': passed_cases,
'failed_cases': failed_cases,
'elapsed_time': elapsed_time,
'failed_cases_info': failed_cases_info
}
```
该函数接受一个Robot Framework的日志文件名作为参数,并返回一个字典,包含测试用例总数、通过数、失败数、耗时和失败用例的详细信息。你可以根据需要来扩展该函数,以提取出其他你感兴趣的信息。
使用python 3.6识别Robot Framework项目下的所以有关键字
可以使用Python内置的ast模块来解析Robot Framework项目下的所有关键字。具体实现可以参考以下代码:
```python
import ast
# 定义关键字解析器类
class KeywordVisitor(ast.NodeVisitor):
def __init__(self):
self.keywords = []
# 解析每个节点,如果节点是函数定义,将函数名加入关键字列表
def visit_FunctionDef(self, node):
self.keywords.append(node.name)
self.generic_visit(node)
# 解析Robot Framework项目下的所有Python文件
def parse_keywords(path):
keywords = set()
import os
for file in os.listdir(path):
filename = os.path.join(path, file)
if filename.endswith(".py"):
with open(filename, "r") as f:
content = f.read()
try:
# 解析Python文件中的语法树
tree = ast.parse(content)
# 使用关键字解析器解析语法树
visitor = KeywordVisitor()
visitor.visit(tree)
keywords.update(visitor.keywords)
except:
pass
return keywords
# 示例用法
keywords = parse_keywords("path/to/Robot Framework/project")
print(keywords)
```
以上代码通过解析Robot Framework项目下的所有Python文件,遍历函数定义节点并将函数名加入关键字列表,最终返回关键字的集合。