※技术背景
需要有一定的python基础,代码阅读能力;以及自动化测试思想。
- 去到任何一家企业,如果少不了自动化,必然会要搭建一套自动化测试框架!
那么问题随之而来,这框架如何选择呢?
如果是代码能力强,可以自行开发与设计,那要是不呢?KPI摆在那,总不能说不行吧!
不行,代表着真的不行,在测试职业领域真的没有什么测试的不行!作者回顾以往工作经历,测试从来没有说过不字。
不会安全测试,但总得会几样安全型测试工具吧,不济也该知道安全测试的目的和原理吧。
不会性能测试,但总得会使用工具吧,理解性能测试指标和知道如何设计性能测试场景吧。
不会单元测试,不会自动化测试?不会渗透测试?所有的不会,那总该会学吧。自强不息。
- 本章将引荐基于python语言开发的自动化测试框架:RobotFramework
学习RF尽在官网https://robotframework.org/,可以学习查看各种文档去更好的熟练使用它。
※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编写测试用例****
*** 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,非必须,因为可替代性太强了。
关于RF关键字驱动,做接口自动化真的有点看不惯!<仁者见仁智者见智,表打我!>