技术背景
需要有一定的python基础,代码阅读能力;以及自动化测试思想。
去到任何一家企业,如果少不了自动化,必然会要搭建一套自动化测试框架!
那么问题随之而来,这框架如何选择呢?
如果是代码能力强,可以自行开发与设计,那要是不呢?KPI摆在那,总不能说不行吧!
不行,代表着真的不行,在测试职业领域真的没有什么测试的不行!作者回顾以往工作经历,测试从来没有说过不字。
不会安全测试,但总得会几样安全型测试工具吧,不济也该知道安全测试的目的和原理吧。
不会性能测试,但总得会使用工具吧,理解性能测试指标和知道如何设计性能测试场景吧。
不会单元测试,不会自动化测试?不会渗透测试?所有的不会,那总该会学吧。自强不息。
RF测试框架
· Google翻译一下它的介绍
Robot Framework是一个通用的开源自动化框架。它可用于测试自动化和机器人过程自动化 (RPA)。
Robot Framework 受到积极支持,许多行业领先的公司在其软件开发中使用它。
Robot Framework 是开放和可扩展的,几乎可以与任何其他工具集成,以创建强大而灵活的自动化解决方案。开源也意味着 Robot Framework 可以免费使用,无需支付许可费用。
Robot Framework 具有简单的语法,使用人类可读的关键字。它的功能可以通过用 Python 或 Java 实现的库来扩展。该框架有一个丰富的生态系统,由作为独立项目开发的库和工具组成。
Robot Framework 项目托管在GitHub 上,您可以在其中找到更多文档、源代码和问题跟踪器。下载托管在PyPI。
Robot Framework 独立于操作系统和应用程序。核心框架是使用Python实现的,也可以在Jython (JVM) 和IronPython (.NET) 上运行。
Robot Framework 本身是在Apache License 2.0下发布的开源软件,生态系统中的大部分库和工具也是开源的。该框架最初由诺基亚网络开发,并于 2008 年开源。
· 所以它有名的是关键字框架设计思想
对于还不会coding但又想coding的同学来讲,RF无疑是练手的不二选择,可以一边使用其现成的关键字,一边又可以开发自己的关键字。
RF框架二次开发实战
· 环境搭建:python+robotframework
建议eclipse+robotframework
开发关键字流程
1、进入python环境/Lib/sit-packages目录下
2、新建py模块文件<这只是单个文件,不形成库>
3、使用def关键字定义函数,在RF中就是可使用的关键字
demo示例:
ROBOT_LIBRARY_SCOPE = 'GLOBAL' # 返回两个变量的减法运算 def sub(a,b): return a-b
ROBOT_LIBRARY_SCOPE表示RF库的属性作用域,有三个等级:TestCase、TestSuite、Global;
作用呢见名知意:
TestCase当前测试用例中实例化一次,那么多个测试用例使用,就需要实例多次;
TestSuite指在suite中只实例化一次,包含的所有测试用例都共享第一个关键字;
Global更简单了,就相当于python的全局属性,全测试框架都可以使用,且只初次实例化一次;
· rf测试用例中使用关键字
*** Settings *** Library demo.py的绝对路径
· rf编写测试用例**<tab键缩进>**
*** Settings *** Library demo *** Test Cases *** case:demo模块自定义sub关键字 ${res} sub ${4} ${1} Log ${res} Should Be Equal ${res} ${31}
· rf执行测试用例展示结果
会生成三个结果文件,一个log两个html
总结
当然它不局限于做接口自动化、还支持UI自动化,在python+selenium设计关键字驱动框架时,切莫忘了RF。
因为有现成的关键字驱动框架工具,就不是很建议去重复造轮子,反而会降低输出效率;但是如果为了灵活多变,那还是自己开发的用起来才得心应手!
再多说一句,点题《作为测试人员,RobotFramework框架真的是必须掌握的吗?》
答案是:No,非必须,因为可替代性太强了。
作者:职说测试