robotFramework基本使用

1常用关键字

1.1 定义变量

Set variable

1.2打印

log:打印,相当于print

1.3连接对象

Catenate
robotFramework基本使用_第1张图片
这里写图片描述
SEPARATOR=:可以对多个连接的信息进行分割
robotFramework基本使用_第2张图片
这里写图片描述

1.4定义列表

Create List:定义列表

1.5获取当前时间

get time:获取当前时间

1.6if语句

通过“run keyword if”关键字可以编写 if 分支语句。
robotFramework基本使用_第3张图片
这里写图片描述

1.7for循环

这里写图片描述
robotFramework基本使用_第4张图片
遍历列表
robotFramework基本使用_第5张图片
这里写图片描述
循环中的判断
robotFramework基本使用_第6张图片
这里写图片描述

1.8强大的Evaluate

通过Evaluate可以使用python语言中所提供的方法。
![这里写图片描述](https://img-blog.csdn.net/20180409185041727?watermark/2/text/aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L2ppYW5nbGlhbnllMjE=/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70)

这里写图片描述
执行本地程序
robotFramework基本使用_第7张图片
这里写图片描述

1.9导入库

Robot Framework可通过“Import Library”关键字导入库
1、调用框架

Import Library unittest

我们导入了 Python 标准的单元测试框架 unittest。当然,在 Robot Framework 中并不能使用 unittest
单元测试框架。这只里只演示“Import Library”等同于 Python 语言中的 import。

2、调用python文件

#coding=utf-8
def add(a,b):
    return(a+b)

if __name__=='__main__':
    a=add(4,5)
    print(a)

这里写图片描述
这里写图片描述
执行结果与我们预期的不一样,预期应该为9,但是执行结果为45.。这是因为 Robot Framework 把 4
和 5 当前两个字符串。所以 4 和 5 拼接起来是 45。我们可以将 4 和 5 转化成 int 类型,再调用 add。
robotFramework基本使用_第8张图片
这里写图片描述

1.10 注释

“Comment”关键字用于设置脚本中的注释。
这里写图片描述

2 Screeshot库

Scrennshot 同样为 Robot Framework 标准类库,其中一个关键字“Take Screenshot”,它用于截取到当前窗口。
虽然 Scrennshot 也为 Robot Framework 标准类库,但它默认不会加载,需要手动加载这个库。
robotFramework基本使用_第9张图片

2.1 屏幕截图

robotFramework基本使用_第10张图片

Collections库

Collections 库同样为 Robot Framework 标准类库,它所提供的关键字主要用于列表、索引、字典的处理。
robotFramework基本使用_第11张图片

3.1 创建字典

字典也是一种常见的存放数据的形式,Create Dictionary 关键字用于创建关键字。
robotFramework基本使用_第12张图片

3.2 操作字典

Get Dictionary Items 关键字用于读取字典的 key 和 value
robotFramework基本使用_第13张图片

  • Get Dictionary Items 关键字获取字典中的 key 和 value。
  • Get Dictionary Keys 关键字获取字典中的 key。
  • Get Dictionary Values 关键字获取字典中的 value。
  • Get From Dictionary 关键字获取字典中的 key 对应的 value

虽然 Scrennshot 也为 Robot Framework 标准类库,但它默认不会加载,需要手动加载这个库。

4 用户关键字

在 Robot Framework 中关键字的创建分两种:系统关键字和用户关键字。系统关键字需要通过脚本开发相应的类和方法。用户关键字的创建就要简单得多,它主要利用现有的系统关键字,根据不同的业务,把多个重复的步骤集合在一起组成用户关键字。
robotFramework基本使用_第14张图片

4.1 创建用户关键字

robotFramework基本使用_第15张图片
在弹出的菜单中输入用户关键字的名称。

注意这个时候用户关键字和测试用例平级,所以在测试用例中可以直接使用
robotFramework基本使用_第16张图片

robotFramework基本使用_第17张图片

robotFramework基本使用_第18张图片

robotFramework基本使用_第19张图片

robotFramework基本使用_第20张图片

robotFramework基本使用_第21张图片

robotFramework基本使用_第22张图片

robotFramework基本使用_第23张图片

robotFramework基本使用_第24张图片

4.2 创建资源

在实际的项目测试过程中,我们往往需要创建许多这样的具有通用性的用户关键字。不希望这些关键
字依附于某个测试套件,甚至是某个项目。那么我们可以创建资源文件用于存放这些关键字。

1、创建资源
选择某个项目,右键选择“New Resource”创建资源
robotFramework基本使用_第25张图片

输入资源名称:
robotFramework基本使用_第26张图片
2、创建关键字
右键“业务关键字资源”选择“New User Keyword” 来创建用户关键字。
robotFramework基本使用_第27张图片

3、导入资源
因为“业务关键字资源.txt”和“suite1”属于并列关系。测试套件要想使用业务关键字下的“资源1”关键字,需要导入资源。与前面导入关键字方法一样

5 Selenium

5.1 Selenium介绍

对 Robot Framework 框 架 的 Selenium 库 有 两 个 : SeleniumLibrary 和 Selenium2Library 。
SeleniumLibrary 是基于 Selenium1.0 开发的,Selenium2Library 是基于 Selenium2.0 开发的。如果没有
历史遗留问题,我们直接使用 Selenium2Library。

5.2 安装 Selenium2Library

终端中输入:
pip install robotframework-selenium2library

将Selenium2Library库添加到相应的测试套件中
robotFramework基本使用_第28张图片

添加完成,黑色示添加的库正常,红色表示库不存。如果为红色,请检查
python2.7安装目录\Lib\site-packages 目录下是否有Selenium2Library 目录

5.3 第一个例子

通过按 F5 快捷键来查询库所提供的关键字。
robotFramework基本使用_第29张图片

下面进行打开浏览器的操作:
robotFramework基本使用_第30张图片
“Open Browser”变蓝了,说明它是一个合法的关键字,后面有一个方框是红色的,表示这个参数
不能缺省的。通过说明信息中,我发现它需要一个 url 地址是必填的,当然还需要指定 browser (默
认不填为 friefox)
robotFramework基本使用_第31张图片

robotFramework基本使用_第32张图片

5.4 元素定位

对于 Web 自动化测试来说,就是操作页面上的各种元素,在操作元素之间需要先找到元素,换句话说
就是定位元素。

Selenium2Library 提供了非常丰富的定位器:
robotFramework基本使用_第33张图片

下面介绍 4 种定位方式,id、
name、xpath 和 css。介绍 id 和 name,是因为这两种定位方式非常简单且实用,介绍 xpath 和 css,是因为
这两种定位方式足够强大,可以满足几乎所有定位需求。

5.5 Selenium2Library 关键字

关于 Selenium2Library 的关键字,我们可以参考:http://rtomac.github.io/robotframework-selenium2library/doc/Selenium2Library.html#Unselect%20Checkbox
或者通过 F5查找 Selenium2Library 关键字库:
robotFramework基本使用_第34张图片

5.5.1 浏览器驱动

通过不同的浏览器执行脚本:

Open Browser Htpp://www.xxx.com chrome

浏览器对应的关键字:

浏览器名称 关键字
firefox FireFox
ff FireFox
internetexplorer Internet Explorer
ie Internet Explorer
googlechrome Google Chrome
gc Google Chrome
chrome Google Chrome
opera Opera
phantomjs PhantomJs
htmlunit HTMLUnit
htmlunitwithjs HTMLUnit with Javascipt support
android Android
iphone Iphone
safari Safari

open browser 同样也可以打开本地 html 页面,如:

Open Browser file:///E:/OTCNEWSETT/OTC_qs/js.html googlechrome

备注:
要想通过不同的浏览打开 URL 地址,一定要安装浏览器相对应的驱动。
chrome 的驱动为:chromedriver.exe 。
IE 的驱动为:IEDriverServer.exe.
浏览器默认为空时启动 FireFox。

5.5.2 浏览器最大化

Maximize Browser Window

Maximize Browser Window 关键字使当前打开的浏览器全屏。

5.5.3 设置浏览器窗口宽、高

Get Window Size 800 600

Get Window Size 800 600
get windows size 关键字用于打设置打开浏览器的宽度和高度。以像素为单位,第一个参数 800 表示宽
度,第二个参数 600 表示高度。
robotFramework基本使用_第35张图片

robotFramework基本使用_第36张图片

5.5.4 文本输入

Input Text xpath=//* [@] 输入信息

input text 关键字用于向文本框内输入内容。
xpath=//* [@] :表示元素定位,定位文本输入框。

5.5.5 点击元素

Click Element xpath=//* [@]

Click Element 关键字用于点击页面上的元素,单击任何可以点击按钮、文字/图片连接、复选框、单选
框、甚至是下拉框等。
xpath=//* [@] :表示元素定位,定位点击的元素。

5.5.6 点击按钮

Click Button xpath=//* [@]

Click Element 关键字用于点击页面上的按钮。
Xpath=//* [@] :表示元素定位,定位点击的按钮。

5.5.7 等待元素出现

|Wait Until Page Contains Element |xpath=//* [@] |42|error|
| ————- |:————-:| —–:| —–:|
Wait Until Page Contains Element 关键字用于等待页面上的元素显示出来。
Xpath=//* [@] :表示元素定位,这里定位出现的元素
42 : 表示最长等待时间。
Error : 表示错误提示,自定义错误提示,如:“元素不能正常显示”

5.5.8 获取title

|Get Title |||
| ————- |:————-:| —–:|
get title 关键字用于获得当前浏览器窗口的 title 信息。
这里只获取 title 是没有意义的,我们通常会将获取的 title 传递给一个变量,然后与预期结果进行比较。
从而判断当前脚本执行成功。

5.5.9 获取text

Get Text xpath=//* [@]

get text 关键字用于获取元素的文本信息。
xpath=//* [@] : 定位文本信息的元素。

5.5.10 获取元素属性值

Get Element Attribute id=kw@name

id=kw@name:id=kw 表示定位的元素。@nam 获取这个元素的 name 属性值。

5.5.11 cookie处理

get cookies
get cookie value Key_name
add cookie Key_name Value_name
delete cookie Key_name
delete all cookies

get cookies 获得当前浏览器的所有 cookie 。
get cookie value 获得 cookie 值。key_name 表示一对 cookie 中 key 的 name。
add cookie 添加 cookie。添加一对 cooke (key:value)
delete cookie 删除 cookie。删除 key 为 name 的 cookie 信息。
delete all cookies 删除当前浏览器的所有 cookies。

5.5.12 验证

获得浏览器 title 进行比较。

open browser http://www.baidu.com chrome
${title} Get Title
should contain ${title} 百度一下,你就知道

Open Browser 通过 chrome 打开百度首页。
Get Title 获得浏览器窗口的 titile ,并赋值给变量 “ titleShouldContain t i t l e ” “ S h o u l d C o n t a i n ” 比 较 ” {title}”是否等于“百度一下,你就知道”。

获得文本信息进行比较

${text} Get Text
should contain ${text} 百度一下,你就知道

5.5.13 表单嵌套

有时候和页面中会出现表单嵌套,这个时候需要进入到表单才能操作相关元素。

Select Frame Xpath=//* [@]
Unselect Frame

Select Frame 进入表单,Xpath=//* [@] 表示定位要进入的表单。
Unselect Frame 退出表单。

5.5.14 下拉框选择

Unselect From List By Value Xpath=//* [@] value

Unselect From List By Value 关键字用天选择下拉框。
Xpath=//* [@] 定位下拉框;
Vlaue 选择下拉框里的属性值。

5.5.15 执行 JavaScript

在一些特殊的情况下需要调用 JavaScript 代码。

Execute Javascript $(“#tooltip”).fadeOut();

Execute Javascript 关键字用于使用 JavaScript 代码

你可能感兴趣的:(robotFramework)