我是靠谱客的博主 多情柜子,最近开发中收集的这篇文章主要介绍【robotframework】pycharm+robotframe,觉得挺不错的,现在分享给大家,希望可以做个参考。

概述

一、环境搭建

二、框架介绍

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}' == '4' #跳出循环
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}

 

转载于:https://www.cnblogs.com/dhs94/p/10913485.html

最后

以上就是多情柜子为你收集整理的【robotframework】pycharm+robotframe的全部内容,希望文章能够帮你解决【robotframework】pycharm+robotframe所遇到的程序开发问题。

如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(46)

评论列表共有 0 条评论

立即
投稿
返回
顶部