用 Python 写 Robot Framework 测试
Robot Framework 框架是基于 Python 语言开发的,所以,它本质上是 Python 的一个库。
1、你懂 Python 语言。
2、又想使用 Robot Framework 测试框架,因为它提供了很好的测试报告。
百度搜索实例
创建 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)
# 测试用例:启动浏览器
defopen_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=["百度一下,你就知道"])
# 测试用例:百度搜索测试
defsearch_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"])
# 测试用例:断言验证搜索结果标题
defassert_title(self):
test_03 = self.suite.tests.create("断言验证搜索结果标题")
test_03.keywords.create("Title Should Be",
args=["测试教程网_百度搜索"])
# 测试用例:关闭测试用例
defclose_browsers(self):
test_04 = self.suite.tests.create("关闭浏览器")
test_04.keywords.create("Close All Browsers")
# 运行
defrun(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 语言。
用 Python 写 Robot Framework 测试的更多相关文章
- Robot Framework测试框架学习笔记
一.Robot Framework框架简介 Robot Framework是一种基于Python的可扩展关键字驱动自动化测试框架,通常用于端到端的可接收测试和可接收测试驱动的开发.可以 ...
- Robot FrameWork测试案例
Robot FrameWork是一个自动测试框架,可到官网查看详细介绍. 安装 Robot Framework 本文中的Robot framework安装在Win7 (32 bit) 平台上. 接下来 ...
- python+request+robot framework接口自动化测试
python+requests实现接口的请求前篇已经介绍,还有不懂或者疑问的可以访问 python+request接口自动化框架 目前我们需要考虑的是如何实现关键字驱动实现接口自动化输出,通过关键字的 ...
- Robot Framework测试框架用例脚本设计方法
Robot Framework介绍 Robot Framework是一个通用的关键字驱动自动化测试框架.测试用例以HTML,纯文本或TSV(制表符分隔的一系列值)文件存储.通过测试库中实现的关键字驱动 ...
- 搭建jenkins+python+selenium+robot framework环境
1.安装jenkins 具体参考:https://www.cnblogs.com/dydxw/p/10538103.html 2.下载插件 我是为了方便,把有关python.selenium.robo ...
- 利用 Python 写一个颜值测试小工具
我们知道现在有一些利用照片来测试颜值的网站或软件,其实使用 Python 就可以实现这一功能,本文我们使用 Python 来写一个颜值测试小工具. 很多人学习python,不知道从何学起.很多人学习p ...
- robot framework测试驱动无法定位页面元素
robot framework错误提示: [ WARN ] Keyword 'Capture Page Screenshot' could not be run on failure: NoSuchW ...
- Jenkins上配置Robot Framework测试邮件通知模板
邮件效果 测试成功如下所示: jenkins_robot_success 测试失败如下所示: jenkins_robot_failure 通过这个模板,我们能够很直观地看出测试的执行情况,以及相关的统 ...
- python解析robot framework的output.xml,并生成html
一.背景 Jenkins自动构建RF脚本,生成的RF特有HTML报告不能正常打开. 需求:用Python解析测试报告的xml数据,放在普通HTML文件中打开 二.output.xml数据 三.用pyh ...
随机推荐
- versionCode & versionName
[versionCode & versionName] Android的版本可以在androidmainfest.xml中定义,主要有android:versionCode和android:v ...
- tomcat部署war包
部署步骤 1.下载tomcat 直接在网上下载即可,随便把包下到一个地方 下面文中的xxx均代表tomcat的安装目录 2.将java工程导出war包 在intellij idea的执行左侧选中t ...
- python找包的路径(找不到自定义包的问题解决)
问题:工程下自定义的包,python在执行时经常找不到包 python找包的路径:python安装路径下的lib包和PYTHONPATH下的包 可以使用[sys.path]打印出pytho ...
- 【scrapy】其他问题2
今天爬取豆瓣电影的是时候,出现了两个问题: 1.数据无法爬取并输出Retrying <GET https://movie.douban.com/robots.txt> 看起来像是被拦截了. ...
- 抛弃WebService,在.NET4中用 jQuery 调用 WCF
在我们之前的开发中,对于ajax程序,都是通过jQuery调用标记为[System.Web.Script.Services.ScriptService]的WebService,然后在WebServic ...
- 802.1X技术介绍
1.802.1X IEEE802 LAN/WAN委员会为解决无线局域网网络安全问题,提出了802.1X协议.后来,802.1X协议作为局域网端口的一个普通接入控制机制在以太网中被广泛应用,主要解决以太 ...
- 关于viewport我自己的理解
其实即使不在html中添加meta viewport标签,每个移动端浏览器都会有一个默认的viewport,只是这个viewport的宽度是980,然后做1:3或者1:2的自动缩放.所以当不在html ...
- [leetcode]101. Symmetric Tree对称树
Given a binary tree, check whether it is a mirror of itself (ie, symmetric around its center). For e ...
- linux命令学习之:top
top命令是Linux下常用的性能分析工具,能够实时显示系统中各个进程的资源占用状况,类似于Windows的任务管理器. top显示系统当前的进程和其他状况,是一个动态显示过程,即可以通过用户按键来不 ...
- Head First Servlets & JSP 学习笔记 第三章 —— MVC迷你教程
临渊羡鱼,不如退而结网!是时候动手搞事情了! 我们的四大步骤: ①分析用户的视图(也就是浏览器要显示的东西),以及高层体系结构: (这个就是所谓的前端吧?用JSP?JSP可以当成Html来用吧?高层体 ...