Robot Framework框架简介

本文介绍了RobotFramework自动化测试框架的使用,包括其与pytest的对比、安装步骤、基本语法和自定义测试库的创建。重点讲述了如何通过Python编写自定义关键字,并利用RobotFramework组织测试用例,生成测试报告。同时,展示了如何从output.xml文件中解析失败项,以及如何设置重试机制。文章最后给出了一个实际的测试用例和执行脚本,供读者参考学习。
摘要由CSDN通过智能技术生成

目录

一、框架介绍

二、安装

三、基本语法

四、从xml文件中获取到失败项


robot framework和pytest的区别:

共同点:

作为测试框架,其作用就是帮助我们管理测试用例、执行测试用例、生成测试报告等,这两款测试框架都可帮我们实现这些功能

区别:

robot framework:

优点:通过关键字驱动,可以自定义测试库,自动提供测试报告;

缺点:不支持复杂的语法,不够灵活

pytest:

优点:支持很多第三方插件,比较灵活

缺点:需要测试人员有一定的python代码能力

 

一、框架介绍

Robot Framework 是一个基于Python的、可扩展的、关键字驱动的测试自动化框架。

为什么选择Robot Framework

  • 可以通过现有关键字创建可复用的 高层关键字
  • 提供了直观的HTML格式的 测试报告 和 日志文件
  • 提供了 测试库API,可以轻易地使用Python或者Java创建自定义的测试库
  • 提供了多种测试库支持,如用于web测试的Selenium,Java GUI测试,启动进程,Telnet,SSH等
  • 提供 标签 来分类和 选择测试用例
  • 提供了 用例级别 和 测试套件级别 的setup和teardown

二、安装

如果你已经安装了 pip ,通过命令 pip install robotframework 就能安装robot framework

三、基本语法

robot framework的语法学起来可能有点别扭,我基本上全是用python来自定义测试库,只利用robot framework框架将测试用例运行起来,自动生成测试报告

  •  robot文件中,每个变量之间的间隔,是4个空格
  • *** Settings *** ,*** Test Cases *** 是固定格式,A.py是我的自定义library
  • Test Setup, Test Teardown 会在每个test case执行前后分别执行;Suite Setup 和 Suite Teardown 会在每个测试套件执行前后分别执行,一般一个Suite(测试套)就是一个robot文件
  • [Documentation] 是test case的描述,可以加中文
  • [Tag] 是test case的标签,用来对case进行分类
  • test_1是A.py文件中,test case的名字,也就是我们自定义library中的关键字
  • 注意:自定义library的文件名,要和class的名字相同

01_test.robot 文件

*** Settings ***
Test Setup     A.setUpClass
Test Teardown  A.tearDownClass
Library        A.py

*** Test Cases ***
test_1
    [Documentation]  XXXX
    [Tags]  tag
    test1

A.py 文件

class A(Base):
    @classmethod
    def setUpClass(self):
        pass

    @classmethod
    def tearDownClass(self):
        pass

    def test_1(self):
        pass

运行

通过执行robot.run()函数,就能执行Testcases/目录下的所有.robot文件

retry是失败后重试的次数,该选项生效需要配置一下环境参数,详细请参见https://www.cnblogs.com/baihuitestsoftware/articles/5923411.html

# -*- coding:utf-8 -*-
import robot
testcases = 'Testcases/'        # 测试用例路径
include_tag = ['']              # 运行的tag
exclude_tag = ['tag1','tag2']   # 不运行的tag
log = 'log.html'                # 生成的测试log文件目录
report = 'report.html'          # 生成的测试报告文件名
output = 'output.xml'           #  生成的xml文件名

robot.run(testcases=testcases,
                  include=include_tag,
                  exclude=exclude_tag,
                  log=log,
                  report=report,
                  output=output,
                  retry=1)

四、从xml文件中获取到失败项

 

import xml.dom.minidom
def getFailcases(output):
    context = ''
    dom = xml.dom.minidom.parse(output)  #打开xml文档
    testList = dom.getElementsByTagName('test') # 获取标签
    num=1
    for element in testList:
        if element.getElementsByTagName('status')[-1].getAttribute('status') == 'FAIL': # 获取标签属性
            suite = element.parentNode.getAttribute('name')[3:]
            test = element.getAttribute('name')
            description = element.getElementsByTagName('status')[-1].firstChild.data
            if u'Parent suite' in description:
                if suite in context:
                    continue
                else:
                    context=context+ suite +'; '+ description+'\n'
            else:
                context = context+  str(num) + '. '
                context= context + suite +'  '+ test+ ':  '+ description+'\n'

            num=num+1
    return context

if __name__=='__main__':
    res=getFailcases('output.xml')
    print(res)

 

 

 

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值