robot是一款自动化测试的工具,能够实现接口自动化测试、UI自动化测试。
它的主要特色就是:
这里有2个重要的概念需要大家先掌握一下:
简单来说:
关键字是,已经实现的功能,可以直接拿来使用。
库是:按功能领域,将关键字分门别类存放。
我们以商场的例子来做说明。请看以下2个图:
在图中,商城提供了5大功能领域(robot中的库)。在每个功能领域当中,都有许多具体的功能(robot中的关键字)。
我们在逛商场(ps:带着你的钱)时,是根据自己的需求去不同的功能库当中,使用不同的功能。
那么,图中的每一个具体的功能(比如H&M),就是已经实现好了的,直接可以使用的功能,即Robot中的关键字。
假设我现在进入此商城,我要做的事如下:
第一步:去护肤品区域(库 ) 买 MAC口红(使用某一功能)
第二步:去餐饮区域(库) 吃 么子烤肉(使用某一功能)
第三步:去休闲区域(库) 电影院 看哪吒之魔童降世(使用某一功能)
我要做的事,可以认为是robot中一个测试用例,此用例分为三个步骤,每一个步骤都是使用某一现有的功能。
总结下来:
商场 == RobotFramework
餐饮/休闲/服务/护肤品/饰品 == 库
费大厨/电影院/adidas/MAC == 关键字
所以,robotframework当中,有非常丰富的库,并且每一个库当中都有对应的关键字集。
robot测试用例 = 按业务需求组合 关键字
1、python环境+robotframework第三方库:
由于robotframework是python实现的,是一个python第三方库,所以需要安装python版本。
robotframework完美支持python2和python3。建议安装python3.7+,编码处理非常友好。
2、安装编写用例的工具
编写robot用例的工具比较多,有ride、notepad++、sublime、eclipse等。。
无论用哪种工具,对于robot脚本而言,语法都是一样的,可以在任意其它工具中打开。
使用ride的朋友们请注意:ride工具现在也支持python2和python3,但兼容性有待考察。
个人更倾向于使用eclipse,关键字展示、高亮、自动提示等体验非常友好。
以web自动化为示例,演示robotframework的用法。使用的用例编写工具:eclipse+RED插件。
要实现的自动化web用例如下:
前置 |
打开google浏览器,访问:http://www.lemfix.com/ |
|
步骤 |
1、点击右上角的登陆链接 |
元素定位://a[text()="登录"] |
2、输入用户名: XXXXX |
元素定位:id=user_login |
|
3、输入密码:123456789 |
元素定位:id=user_password |
|
4、点击登陆按钮 |
元素定位://input[@name="commit"] |
|
断言 |
登陆失败,提示帐号或密码错误。 |
元素定位:id=navbar-user-menu |
答案:关键字!!
在robotframework当中,想做任何事情,首先想到的就是关键字。
找到web网页操作的关键字,然后去使用它。
在robotframework当中,由**SeleniumLibrary(非robot自带,需要安装)**库提供对网页的操作关键字(功能)。
1、创建robot工程:
在eclipse当中,File -> New -> Robot Project(没显示则要去Other选项中找)
2)创建robot测试用例:
3) 在robot工程中中导入SeleniumLibrary(导入了才有可以使用关键字)。
注意:库名不能错,大小写敏感。
*** Settings ***
Library SeleniumLibrary
从上面的简单示例当中,可以看到,使用现成的关键字,未用一行代码,就实现了自动化的用例实现。
robotframework当中,只要掌握了关键字的用法,就是这样轻松的做自动化测试!
当然,如果我们掌握了更多的测试思想和框架设计思想,可以更好的利用此工具完成自动化测试工作。
既然robotframework这样的工具就可以实现自动化测试,那是不是没有必要学习代码 ?
答案是否定的。
工具解决不了的问题,我们需要对它做扩展或另行处理。还好,robot本身支持python/java语言对它做扩展。
工作当中,除了写用例之外,我们还要完成领导的各个小需求。比如自动收集数据?比如定制化的报告?
同时,也需要各种小手段来提高测试效率。
所以,工具要会,代码更要会。