一、环境搭建

二、框架介绍

1.settings

  • 是这个测试套件的全局配置表
  • 说明这个测试套件要使用的测试库、资源文件
  • 测试套件的环境初始化(setup)和清除(teardown)
  • 该套件内的标签等

2.Variables

  定义本测试套件的全局变量

3.Keywords

  定义本测试套件的关键字(支持返回值[Return])

4.Test Cases

  定义本测试套件的测试用例

*** Settings ***
Library Selenium2Library
Resource xxxx
Suite Setup xxxxx
Suite Teardown
Test Setup
Test Teardown
Default Tags
Force Tags
Test Template
*** Variables ***
${v1} 1
@{list} 1,2,3 *** Keywords ***
Open page
open browser www.baidu.com *** Test Cases ***
case1
xxx
case2
xxx

测试用例表语法

  • 测试用例表里面的每个用例大概可以分为:

    • 配置部分
    • 用例部分
  • 用例配置部分
    • [Documentation]该用例的文字说明
    • [Tags]该用例的标签
    • [Setup],[Teardown]该用例的初始化和清除操作
    • [Template]声明该用例是模板关键字驱动的,本用例只包含测试数据
    • [Timeout]设置用例超时时间

三、关键字

1.log打印

  log

  log  to console 打印到控制台

2.定义变量

  1)${variable name}  value  (在***Variables***中定义)

  ${variable name}  Set variable  value  (在***Test Cases***中定义)

  2)定义列表

  @{list name}  value1 value2......  (在***Variables***中定义)

  @{list name}  Create List  value1 value2......  (在***Test Cases***中定义)

3.获取时间

  在 Robot Framework 中也提供操作时间的关键字。get time

*** Test Cases ***
case5
${t} get time
log ${t}
sleep 5 #设置休眠时间

4.if语句  

通过“run keyword if”关键字可以编写 if 分支语句*** Test Cases ***case2

${a} Set variable 59
run keyword if ${a} > 80 log youxiu
... ELSE IF ${a} > 60 log bujige
... ELSE log bujige

注意:分支语句前加“...”

5.for循环  

在 Robot Framework 中编写循环通过“:for”

*** Test Cases ***
case3
:FOR ${i} IN RANGE 0 10 2 #分别为起始值,结束之和步长,当起始值和结束之为空时,二者默认为0和1
\ log ${i}
\ log end
\ Exit For Loop if '${i}' == '' #跳出循环
case4
@{list} Create List a b c
:FOR ${i} IN @{list}
\ log ${i}
\ log end

注意::FOR ,其中的:用于与一般关键字做区分,对于循环结构体内的每一行,使用 \ 作为改行的行首关键字

6.Evaluate 

 通过它可以使用 Python 语言中所提供的方法。

*** Test Cases ***
case6
${d} Evaluate random.randint(0,100) random      #变量  关键字  调用python方法  方法所在库
log ${d} ${path}

7.catenate

8.collection库

*** Settings ***
Library Collections
*** Test Cases ***
case8
${dict} Create Dictionary a 1 b 2 c 3 #创建字典
${items} Get Dictionary Items ${dict} #获取字典中的key和value
log ${items}
${key} Get Dictionary Keys ${dict} #获取字典中的key
log ${key}
${value} Get Dictionary Values ${dict} #获取字典中的value
log ${value}
${v} Get From Dictionary ${dict} b #获取字典中key所对应的value
log ${v} 

9、资源文件

  • 在测试套件文件中定义关键字的问题

    • 只能在本测试套件中有效,无法共享给其他测试套件使用
  • 使用资源文件
  • 资源文件其实就是RF层面的库文件
    • 里面可以包含用来共享的变量和关键字
    • 资源文件的格式基本也和测试套件文件格式类似(只是不含测试用例)
  • 资源文件的引用Resource

Resource 后可以跟绝对路径也可以用相对路径(相对于当前文件所在的目录),但文件名必须要带后缀。
如果同级目录下没有,就会去path路径下寻找。

*** Settings ***
Library SeleniumLibrary
Resource rc.robot

10.导入扩展库

1).导入python库-变量

  • 将变量或关键字封装到python文件中
  • RF***settings***中生命变量文件(以下例子,两文件在同一路径下)

    python文件引用时可以使用绝对路径也可以使用相对路径,建议使用相对路径

    使用相对路径的时候,RF搜索规则和资源文件搜索规则一样:先搜索当前目录下该python文件是否存在,没有的话则根据path路径查找

    

    

2).python模块作为测试库

  • 将变量或关键字封装到python文件中(可封装成类或直接封装为方法)
  • RF***settings***中生命变量文件(以下例子,两文件在同一路径下)

    

    

注意:当文件名和类名不一样时,如文件名为a,类名为b,方法为c(同一路径下)

***settings***

library   a.b

***test case***

${a}  a.b.c

11.注释

  使用关键字comment或#

四、selenium2Library中的关键字

*** Test Cases ***
case9
Open Browser https://www.baidu.com/ Firefox #启动浏览器,浏览器为空时,默认启动firefox
  
# go to https://mail.qq.com/ #跳转到某个网页
# go back #返回
# Maximize Browser Window #窗口最大话
${width} ${height} Get Window size #获取窗口大小
log ${width} ${height}
${title} get title #获取窗口title信息
log ${title}
${attribute} get element attribute id=kw name #获取元素属性
log ${attribute} #添加cookie
add cookie mark dhs
${all_cookies} get cookies #获取所有cookies
log ${all_cookies}
${cookie} get cookie BAIDUID #根据key_name获取cookie值
log ${cookie}
${result} should contain ${title} 百度一下,你就知道 #验证是否包含
log ${result}
# delete cookie mark #根据key_name删除cookie值
# delete all cookies
# get text id= #获取元素文本信息
# input text id=kw robotframework #文本输入关键字 定位方式 输入的文本
# input text name=wd robotframework
# input text Xpath = //*[@id='kw'] robotframework
input text css = #kw robotframework
wait until page contains element css = #kw 5 can't find element #关键字 元素 等待时长 错误提示 类似于selenium中的显示等待
# click element id= #点击元素
click button id=su #点击按钮
# select from list by value #下拉框选择
# execute javascript js语句 #执行js语句
# Close Browser #关闭当前浏览器
# Close All Browser #关闭所有浏览器
case10
open browser https://mail.163.com/
sleep 2
select frame xpath= #进入表单
unselect frame #退出表单
  • Should Be Equal
  • Should Be ...
  • Should Be True
    1. 字符串时  should be true'${str}'=='str'
    2. 数字  should be true  ${value}==value
  • convert to interger 转换为整数

  • convert to Number 转换为浮点数

  • ${33} 直接传数字

五、各个级别的set up

  suite setup/teardown:在suit套件中只执行一次

  test setup/teardown:每个case执行前都会执行一次

  [setup/teardown]:属于case级别,每个case执行前都会执行一次,当同时存在test setup/teardown和[setup/teardown]时,执行[setup/teardown];

  

六、关键字驱动示例

*** Settings ***
Library Selenium2Library Test Setup open browser ${url}
Test Teardown close browser *** Variables ***
${url} http://xxxxx
${correct_acc} admin
${correct_pwd} admin *** Keywords ***
login_failed
[Arguments] ${account} ${password}
# open browser ${url}
input text id=id_username ${account}
input text id=id_password ${password}
click button id=login_submit
sleep 2
${result} get text xpath=.//*[@id='content']/div
should contain ${result} Invalid Username or Password, please try again.
*** Test Cases ***
#casename username pwd
case1:pwd_error
[Documentation] passworderror
login_failed ${correct_acc} 123
case2:acc_error
login_failed 123 ${correct_pwd}
case3:pwd_acc_error
login_failed 123 123
case4:pwd_emty
login_failed ${correct_acc} ${empty}
case5:acc_emty
login_failed ${empty} ${correct_pwd}
case6:acc__pwd_emty
login_failed ${empty} ${empty}

【robotframework】pycharm+robotframe的更多相关文章

  1. 【robotframework】pycharm+robotframe(转)

    [robotframework]pycharm+robotframe   一.环境搭建 二.框架介绍 1.settings 是这个测试套件的全局配置表 说明这个测试套件要使用的测试库.资源文件 测试套 ...

  2. 【转载】pycharm常用快捷键

    来源: (https://blog.csdn.net/weixin_41059146/article/details/78826163) 1.编辑(Editing) Ctrl + Space    基 ...

  3. 【转】pycharm使用中的一些快捷键

    正在使用pycharm,发现多行注释以及大块代码格式化的时候却急于没有快捷方式,于是百度了一下,恰好看到这位博主的总结,大部分我使用的不多,不过还是全部粘了过来,以备将来不时之需. [转载]博主地址链 ...

  4. 【RobotFramework】Selenium2Library类库关键字使用说明

    Add CookieArguments:[ name | value | path=None | domain=None | secure=None | expiry=None ]Adds a coo ...

  5. 【转】Pycharm创建py文件时自定义头部模板

    File->settings->Editor->File and Code Templates->Python Script #!/usr/bin/env python # - ...

  6. 【转】Pycharm的激活

    如果要基于Python进行开发的话,那么pycharm是个不错的选择,试用一个月以后需要激活,原文如下: 原文链接:http://blog.csdn.net/lanchunhui/article/de ...

  7. 【转】pycharm快捷键、常用设置、包管理

    转自:pycharm快捷键.常用设置.包管理 在PyCharm安装目录 /opt/pycharm-3.4.1/help目录下可以找到ReferenceCard.pdf快捷键英文版说明 or 打开pyc ...

  8. 【Tools】Pycharm 2018专业版 linux安装教程 附2018专业版密钥

    Linux安装pycharm2018专业版 1. 下载安装包 Pycharm下载地址:http://www.jetbrains.com/pycharm/download/ 2.终端打开你的安装包所在路 ...

  9. 【转载】pycharm破解,可使用到2099年.pycharm版本 pycharm-professional-2016.3.1

    1. Pycharm的安装方法,论坛很多,这里就不赘述了.参照:http://blog.csdn.net/qq_29883591/article/details/52664478 2. 下载Pycha ...

随机推荐

  1. QT5.12 qtcreate 在Ubuntu14.04

    Ubuntu14.04 下出现了 symbol dbus_message_get_allow_interactive_authorization, version LIBDBUS_1_3 not de ...

  2. js代码突然在花括号回车自动多加了一个大括号

    js代码突然在花括号回车自动多加了一个大括号. 检查发现,前面有一个行带有左括号的注释行.

  3. 爬虫相关-scrapy框架介绍

    性能相关-进程.线程.协程 在编写爬虫时,性能的消耗主要在IO请求中,当单进程单线程模式下请求URL时必然会引起等待,从而使得请求整体变慢. 串行执行 import requests def fetc ...

  4. 大数据 -- zookeeper和kafka集群环境搭建

    一 运行环境 从阿里云申请三台云服务器,这里我使用了两个不同的阿里云账号去申请云服务器.我们配置三台主机名分别为zy1,zy2,zy3. 我们通过阿里云可以获取主机的公网ip地址,如下: 通过secu ...

  5. 超级简单,把PuppyLinux安装到U盘

    先说说使用感受:上网全是乱码!不支持中文 下载最新版puppylinux,从官网下载 现在U盘引导程序制作工具Unetbootin 打开下载的UNetbootin,进行下面的操作: 制作完毕后,修改U ...

  6. Angular2 输入完成后触发函数

    (blur)="keySearch($event)" ,鼠标点击其他地方触发 keySearch(e): void { var dom = $(e.target); var key ...

  7. IDEA 2018.3.5,修改js文件,html页面不及时更新

    问题描述 使用IDEA 开发时,修改js文件,前端页面不能及时更新. 解决方法: 1. IDEA settings--> Compiler --> Build project automa ...

  8. (CSDN 迁移) jFinal找不到或无法加载主类

    错误: 找不到或无法加载主类 com.demo.common.DemoConfig 项目上右键 -> Build Path -> Order and Export 修改顺序: 从上到下依次 ...

  9. Linux安装zookeeper3.5.6

    依赖JRE[我这边是JRE8] 一,先在https://mirrors.tuna.tsinghua.edu.cn/apache/zookeeper/stable/下载apache-zookeeper- ...

  10. Idea 目录结构下有红色波浪线

    问题截图: 解决方案: Build -> Rebuild Project