概述
一、环境搭建
二、框架介绍
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
- 字符串时 should be true'${str}'=='str'
- 数字 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所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
发表评论 取消回复