Robot Framework | 03 基于Public API创建你RFS测试
时间:2022-05-07
本文章向大家介绍Robot Framework | 03 基于Public API创建你RFS测试,主要内容包括API、实例目标、实例、运行日志、报告截图、小结、基本概念、基础应用、原理机制和需要注意的事项等,并结合实例形式分析了其使用技巧,希望通过本文能帮助到大家理解应用这部分内容。
概述
本文就上一文基于RobotFramework关键字语法实现的百度搜索实例改为有Public API来实现
让大家看下如何基于代码模式来实现基于RobotFramework进行自动化测试
以便进一步加深大家对RobotFramework的理解。
API
在本实例中,需要用到以下类
- TestSuite
可编程测试套件类,代表一个可执行的测试套件
- ResultWriter
基于TestSuite或ExecutionResult()生成返回的原始记录生成测试报告、测试日志,xml格式的输出和XUnits文件
实例目标
本实例基于SeleniumLibrary提供的关键字来实现以下目标:
- 打开浏览器,并初始化访问http://www.baidu.com,验证百度标题
- 输入搜索词“开源优测”,单击“百度一下”按钮,等待5s
- 验证搜索结果标题
- 关闭浏览器,结束
- 生成报告等相关记录文件
实例
#-*- coding:utf-8 -*-
__author__ = "苦叶子"
from robot.api import TestSuite
from robot.api import ResultWriter
if __name__ == "__main__":
print("Robot Framework基本执行过程演示代码")
# 创建套件
suite = TestSuite("百度搜索测试套件")
# 导入SeleniumLibrary库
suite.resource.imports.library("SeleniumLibrary")
# 创建测试用例:启动浏览器
test_01 = suite.tests.create("启动浏览器")
test_01.keywords.create("Open Browser",
args=["http://www.baidu.com", "Chrome"])
test_01.keywords.create("Title Should Be",
args=["百度一下,你就知道"])
# 创建测试用例:百度搜索测试
test_02 = suite.tests.create("百度搜索测试")
test_02.keywords.create("Input Text",
args=["id=kw", "开源优测"])
test_02.keywords.create("Click Button", args=["id=su"])
test_02.keywords.create("Sleep", args=["5s"])
# 创建测试用例:断言验证搜索结果标题
test_03 = suite.tests.create("断言验证搜索结果标题")
test_03.keywords.create("Title Should Be",
args=["开源优测_百度搜索"])
# 创建测试用例:关闭测试用例
test_04 = suite.tests.create("关闭浏览器")
test_04.keywords.create("Close All Browsers")
# 运行套件
result = suite.run(critical="百度搜索", output="output.xml")
# 生成日志、报告文件
ResultWriter(result).write_results(report="report.html",
log="log.html")
将上述代码保存至search_baidu_demo.py中,执行下述命令运行:
python search_baidu_demo.py
运行日志
执行上述命令,运行记录如下图:
报告截图
运行的报告如下图:
小结
代码中所使用的API请参见:
http://robot-framework.readthedocs.io/en/3.0.2/index.html
至于进一步封装,请自己动手
- JavaScript 教程
- JavaScript 编辑工具
- JavaScript 与HTML
- JavaScript 与Java
- JavaScript 数据结构
- JavaScript 基本数据类型
- JavaScript 特殊数据类型
- JavaScript 运算符
- JavaScript typeof 运算符
- JavaScript 表达式
- JavaScript 类型转换
- JavaScript 基本语法
- JavaScript 注释
- Javascript 基本处理流程
- Javascript 选择结构
- Javascript if 语句
- Javascript if 语句的嵌套
- Javascript switch 语句
- Javascript 循环结构
- Javascript 循环结构实例
- Javascript 跳转语句
- Javascript 控制语句总结
- Javascript 函数介绍
- Javascript 函数的定义
- Javascript 函数调用
- Javascript 几种特殊的函数
- JavaScript 内置函数简介
- Javascript eval() 函数
- Javascript isFinite() 函数
- Javascript isNaN() 函数
- parseInt() 与 parseFloat()
- escape() 与 unescape()
- Javascript 字符串介绍
- Javascript length属性
- javascript 字符串函数
- Javascript 日期对象简介
- Javascript 日期对象用途
- Date 对象属性和方法
- Javascript 数组是什么
- Javascript 创建数组
- Javascript 数组赋值与取值
- Javascript 数组属性和方法
- 七夕如何向心爱的ta表白,看这里
- 七夕面向对象编程,你知道Java有哪些创建对象的方式吗?
- 微信小程序结合腾讯地图获取用户所在城市信息
- 设置事务超时时间的问题及Oracle数据库update和锁
- 超赞,压缩20M文件从30秒到1秒的优化过程
- 超赞,给你推荐20个使用 Java CompletableFuture的例子!
- Java入门编程练习题
- Spark UDF加载外部资源
- Flink SQL FileSystem Connector 分区提交与自定义小文件合并策略
- Facebook面试题: 用递归和迭代手写Array.prototype.flat()
- Kubernetes插件之ip-masq-agent
- 抽丝剥茧Kotlin - 协程
- 使用Java8中的Optional类来消除代码中的null检查
- 通俗讲解从Transformer到BERT模型!
- 「R」使用有限混合模型