环境
pycharm中安装intellibot插件、安装robotframework-ride、wxpython、robotframework-selenium2library、robotframework(3.1.2)版本
RIDE图形界面:
进入到scripts目录:cd C:\Users\Administrator\AppData\Roaming\Python\Python37\Scripts
执行命令:python ride.py
RF框架:
robotframework,基于python开发的,自动化测试框架
支持自动化内容:web自动化,接口自动化,APP自动化
RF项目
RF是基于关键字驱动的测试框架
关键字驱动脚本是较复杂的数据驱动技术的逻辑扩展,封装了各种基本操作,每个操作由相应的函数实现,用一系列关键字指定执行的任务。
RF数据结构:
*** Test Cases ***
second
###### ##### #####
${x}= set variable 123
${y}= set variable 123
${z} evaluate ${x}+${y}
log to console ${z}
数组:有序的元素序列,用于区分数组的各个元素的数字编号
@{list}=create list 1 2
${list[0]}
应用:调用接口传参数的时候,可以用数组
列表:一个数据序列
下标:下标从零开始的位置
*** Test Cases ***
third
##### ##### ##### ##### #####
@{list}= create list 11 22 33 44
log to console ${list[0]}
字典:可以根据键得到值,也可以更新键的值
*** Test Cases ***
four
##### ##### ##### #####
&{map} create dictionary x=1 y=2 z=3
log to console ${map['x']}
关键字设置
four1
${z} testkey 1 2
log to console ${z}
*** Keywords ***
testkey
[Arguments] ${arg1} ${arg2}
##### ##### ##### #####
${z}= evaluate ${arg1}+${arg2}
[Return] ${z}
分支与循环:选择满足条件的去执行
*** Test Cases ***
five
##### ##### ##### ##### #####
${x}= set variable 1
${y}= set variable 2
Run Keyword If ${x}<${y} log to console xiaoyu
... ELSE log to console dayu
线性结构
需要在library中添加collections
在列表中添加元素:Append To List
five1
##### ##### ##### #####
@{list}= Create List 1 2 3
#添加元素到列表Append to List
Append To List ${list} 4 5
log to console ${list}
在列表中删除元素:remove from list(通过下标删除元素)、remove values from list(直接通过值删除元素)。
统计数组中的元素个数:
计算列表中元素的值
five1
##### ##### ##### #####
@{list}= Create List 1 2 3
#添加元素到列表Append to List
Append To List ${list} 4 5
log to console ${list}
${s}= set variable 0
FOR ${i} IN @{list}
${s}= evaluate ${s}+${i}
END
log to console ${s}
键值对结构
添加元素到map中:Set To Dictionary
five2
##### ##### #####
&{map} Create Dictionary a=aa b=bb c=cc
log to console ${map}
Set To Dictionary ${map} d=dd
log to console ${map}
删除元素:Remove From Dictionary(通过键的形式删除值
求字典中所有键对应的值的和:先获取字典中的所有键,通过遍历键获取值,字典的键往往是字符串形式,取的时候需要将其通过单引号的形式引用起来进行获取
five3
Comment Comment ##### ##### ##### ##### #####
&{map} Create Dictionary a=1 b=2 c=3 d=4
#获取字典所有关键字列表
@{keys}= Get Dictionary Keys ${map}
log to console ${keys}
${s} set variable 0
FOR ${i} IN @{keys}
${s}= evaluate ${s}+${map['${i}']}
END
log to console ${s}
字符串拼接:Catenate
five4
${str1} set variable is not
log to console Will ${str1} home
字符串判断:run keyword if
字符串进行比较时,需要将其用引号引起来
five4
${str1} set variable hello
${str2} set variable will
run keyword if '${str1}'=='${str2}' log to console yes
... ELSE log to console no
包含关系:should contain
five4
${str1} set variable hello
${str2} set variable will
run keyword if '${str1}'=='${str2}' log to console yes
... ELSE log to console no
should contain ${str1} ${str2} msg='YES'
log to console good
利用RF做web自动化
web自动化测试:把手工测试网页的操作用脚本或者工具来实现
web自动化关键:能打开浏览器并对网站进行操作
导入库:Selenium2Library
ff参数为火狐浏览器,gc为Google浏览器。需要下载geckodriver.exe、chromedriver.exe放入python中的scripts文件夹下