用Python写Robot Framework测试

Robot Framework 框架是基于 Python 语言开发的,所以,它本质上是 Python 的一个库。

百度搜索实例



创建 py_robot.py 文件,代码如下:

from robot.api import TestSuite
from robot.api import ResultWriter
from robot.model import Keyword

# 百度搜索测试
class BaiduSearchTest:
    def __init__(self, name, librarys=["SeleniumLibrary"]):
        # 创建测试套件
        self.suite = TestSuite(name)
        # 导入SeleniumLibrary
        for lib in librarys:
            self.suite.resource.imports.library(lib)
    # 定义变量
    def create_variables(self):
        variables = {
            "${baidu}": "https://www.baidu.com",
            "${browser}": "Chrome",
            "${search_input}": "id=kw",
            "${search_btn}": "id=su"

        }
        for k, v in variables.items():
            self.suite.resource.variables.create(k, v)    

    # 测试用例:启动浏览器
    def open_browsers(self):
        test_01 = self.suite.tests.create("启动浏览器")
        test_01.keywords.create("Open Browser",
            args=["${baidu}", "${browser}"])
        test_01.keywords.create("Title Should Be",
            args=["百度一下,你就知道"])   

    # 测试用例:百度搜索测试
    def search_word(self):
        test_02 = self.suite.tests.create("百度搜索测试")
        test_02.keywords.create("Input Text",
            args=["${search_input}", "测试教程网"])
        test_02.keywords.create("Click Button",
            args=["${search_btn}"])
        test_02.keywords.create("Sleep", args=["5s"])    

    # 测试用例:断言验证搜索结果标题
    def assert_title(self):
        test_03 = self.suite.tests.create("断言验证搜索结果标题")
        test_03.keywords.create("Title Should Be",
            args=["测试教程网_百度搜索"])    

    # 测试用例:关闭测试用例
    def close_browsers(self):
        test_04 = self.suite.tests.create("关闭浏览器")
        test_04.keywords.create("Close All Browsers")    

    # 运行
    def run(self):
        self.create_variables()
        self.open_browsers()
        self.search_word()
        self.assert_title()
        self.close_browsers()        

        # 运行套件
        result = self.suite.run(critical="百度搜索",
            output="output.xml")        

        # 生成日志、报告文件
        ResultWriter(result).write_results(
           report="report.html", log="log.html")

if __name__ == "__main__":
    print("用Python写Robot Framework测试")
    suite = BaiduSearchTest("百度搜索测试套件")
    suite.run()

这段代码的运行通过 python 命令来执行。

> python py_robot.py

用Python写Robot Framework测试
==============================================================================
百度搜索测试套件
==============================================================================
启动浏览器
DevTools listening on ws://127.0.0.1:12950/devtools/browser/bcbf14bb-ebc4-425c-882f-44531afd9689
启动浏览器                                                            | PASS |
------------------------------------------------------------------------------
百度搜索测试                                                          | PASS |
------------------------------------------------------------------------------
断言验证搜索结果标题                                                  | PASS |
------------------------------------------------------------------------------
关闭浏览器                                                            | PASS |
------------------------------------------------------------------------------
百度搜索测试套件                                                      | PASS |
0 critical tests, 0 passed, 0 failed
4 tests total, 4 passed, 0 failed
==============================================================================
Output:  D:\rf_test\robotSe\output.xml

Robot Framework 用的好,Python 少不了!所以,我的建议是要想用好 Robot Framework 必须要学习和掌握 Python 语言。

原文地址:https://www.cnblogs.com/jason89/p/8996157.html

时间: 2024-10-20 20:51:08

用Python写Robot Framework测试的相关文章

robot framework 测试实体 红黑树

这周写了红黑树,不得不说红黑树是复杂难写的数据结构.尽管我闭上眼睛,能够还原出如何插入,时间充足的情况下,不给我任何资料我能写出插入部分,但是删除还是做不来.删除部分的心得并不多.因为左旋右旋,左左右右,一会就搞晕了.所以插入部分用了一个晚上就写完了,但是删除部分用了2个晚上,又是看算法导论,又是看linux kernel 内核的实现.最终仿照了wiki给出代码,参考写出了删除部分. 原理部分我就不写了,我觉得左右虽然是对称的,也算的上优美,两份本质一样的代码,对称地存在在C文件中,本质也是一种

Robot Framework测试框架学习笔记

一.Robot Framework框架简介 Robot Framework是一种基于Python的可扩展关键字驱动自动化测试框架,通常用于端到端的可接收测试和可接收测试驱动的开发.可以用于测试声明涉及到多种技术和接口的分布式的,异构的应用系统. 测试用例位于HTML或者TSV(以tab分隔值)文件,使用在测试库中实现的关键词来在测试中运行程序.因为Robot Framework 是灵活和可扩展的,所以它很合适用于测试具有多种接口的复杂软件:用户接口,命令行,web service,编程接口等.

Robot FrameWork测试案例

Robot FrameWork是一个自动测试框架,可到官网查看详细介绍. 安装 Robot Framework 本文中的Robot framework安装在Win7 (32 bit) 平台上. 接下来按顺序安装以下的软件/包. Software Version Post-steps Note Python python-2.7.6 Set ENV Var to PATH: C:\Python27 C:\Python27\Scripts   Robot Framework robotframewo

Robot Framework测试框架用例脚本设计方法

Robot Framework介绍 Robot Framework是一个通用的关键字驱动自动化测试框架.测试用例以HTML,纯文本或TSV(制表符分隔的一系列值)文件存储.通过测试库中实现的关键字驱动被测软件.    Robot Framework灵活且易于扩展.它非常适合测试有不同接口的复杂软件:用户接口.命令行,Web服务,专有的编程接口等. Robot Framework是开源软件,通用的测试库源码安装包和文档等可通过http://robotframework.org获取.Robot Fr

robot framework测试驱动无法定位页面元素

robot framework错误提示: [ WARN ] Keyword 'Capture Page Screenshot' could not be run on failure: NoSuchWindowException: Message: u'Unable to get browser' 环境信息: IE版本是IE 11,windows 7 64位 解决方案(修改注册表): 1.需要设置注册表项(运行regedit). 2.对于32位操作系统:进入HKEY_LOCAL_MACHINE\

Python3 Robot Framework测试框架

一 环境搭建 前提:Python3 环境已经搭建好 1.安装 Robot Framework 框架 管理员运行 cmd 后输入 pip install robotframework 2.安装Requests库 pip install requests 3.安装 robotframework-requests库 pip install -U robotframework-requests 二 sublime安装 这里不使用RIDE编写和运行robot framework (因为它暂时不支持Pyth

robot framework测试https接口实例

关于怎么创建testcase就不写了,网上很多这样的例子. 我测试的这个接口是https的post请求,并且接口传参类型是json格式. 导入测试库: 这里主要用到了这两种 在测试这个接口的时候,遇到了不少坑,主要是在第四步,这个header的传值上.根据F5查询到的RequstsLibrary库的post request方法,传参是要先把uri,data先传,header后传的. 根据这个方法,写出来请求: 结果却是执行失败的.并且参数没传进入 试过多种方法,查了N多资料.都没有对这方面有很多

用Python写RF测试

from robot.api import TestSuite from robot.api import ResultWriter from robot.model import Keyword # 百度搜索测试 class BaiduSearchTest: def __init__(self, name, librarys=["SeleniumLibrary"]): # 创建测试套件 self.suite = TestSuite(name) # 导入SeleniumLibrary

最新 robot framework安装

相信大家对robot framework并不陌生,它是一个基于Python语言,用于验收测试和验收测试驱动开发(ATDD)的通用测试自动化框架=,提供了一套特定的语法,并且有非常丰富的测试库. Python 现在可以使用Python3.x了,因为距离Python2.x停止维护也只剩一年时间了. Robot framework 基于Python的robot framework测试框架,robot framework使用了一套特定语法,学习起来需要一定的门槛. pip安装: pip install