目录
准备:python3.6版本【python-3.6.3-amd64.exe】
下载:https://www.python.org/downloads/windows/
1.安装RIDE
下载安装好python后,WIN+R打开命令窗口,执行下列语句:
pip install robotframework
pip install robotframework-ride
执行完之后打开 python 目录下的 Scripts 文件夹,确认是否有一个ride.py文件,这是自动生成的。
2.打开RIDE
如图:
输入 python ride.py 回车之后,ride的界面就出现了:【命令窗口不能关,如果关了,ride的窗口也会关闭】
3.新建文件
先新建项目【File-New Project】,再在项目下新建测试套件【New Suite】,最后在测试套件下新建测试案例【New Test Case】。
一个项目下可以新建多个测试套件,一个测试套件下可以新建多个测试案例。
4.导包
如图,点击library按钮,在弹出框中填写三个包的包名,分别是:Collections、String、RequestsLibrary. [若导入之后字体呈现黑色,则说明导入成功;若导入之后字体呈现红色,则说明导入失败]
可以点击测试套件,在测试套件中导入;也可以点击项目名,在项目中导入。【如果是在测试套件中导入包,则这些包只对该测试套件下的测试案例起作用】
5.注释与取消注释
CTRL+# 注释的快捷键
CTRL+$ 取消注释的快捷键
以 comment 开头的行,说明这行已经被注释,如下图所示:
若要单独注释某格中的数据,在数据前加 # 即可,如下图所示:
6.基本运用
①声明变量的语法:
${
变量名} set variable 变量值
②查看变量的数据类型或转换变量的数据类型的语法:
${
变量名} evaluate type($变量名) #查看变量的数据类型
${
变量名} evaluate int($变量名) #令变量的数据类型为int
③创建列表的语法:
${
变量名} create list 列表值1 列表值2 列表值3 ...
④创建字典的语法:
${
变量名} create dictionary 属性1=属性值1 属性2=属性值2 属性3=属性值3 ...
⑤输出的语法:
log 需要输出的值
⑥访问网址的语法:【创建会话的语法】
create session 会话名 网址
${
变量名} get request 会话名 域名+参数
log ${
变量名} #这两个地方的变量都是指发出请求之后得到的响应值
两个地方的变量名必须得保持相同,参数可有可没有。
⑦运行:
勾选要运行的测试案例,然后点击运行按钮即可。
⑧固定语法解释:
Ⅰ:run keyword if 指如果满足条件则运行关键字,如果条件有很多个则语法如下:
${
变量名} run keyword if 条件表达式 set variable 结果值说明
else if 条件表达式 set variable 结果值说明
else 条件表达式 set variable 结果值说明
Ⅱ:for循环
//循环一组数据
FOR ${
变量名} IN 值1 值2 值3 ...
log ${
变量名}
END
//循环一个范围内的数据
FOR ${
变量名} IN RANGE 值1 值2
log ${
变量名}
END
# 指值1和值2之间的范围,如果值1为1,值2为10,则就是1-10的范围,不包括10
Ⅲ:如何在满足条件的时候终止for循环呢?
// 语法
${
变量名1} create list 值1 值2 值3 值4...
FOR ${
变量名2} IN ${
变量名1}
run keyword if 有关变量名2的条件表达式 exit for loop
log ${
变量名2}
END
解释一下上面这张截图:定义一个2,5,7,8的数组,数组变量名为@{group},接下来是循环这个数组,当循环到的数值等于7时,则退出循环,没有等于7时则继续循环。【这里变量如果不使用@,运行时可能会报错,可以分别输出@{变量名}和另外一个看看区别】
Ⅳ:如何在满足条件的时候才能进行for循环呢?
// 语法
FOR ${
变量名} IN RANGE 值
run keyword if 条件表达式 continue for loop
log ${
变量名}
END
#若只有一个值,则代表初始值省略,默认初始值为0
Ⅴ:不支持while,不支持多重for循环。如果需要多重循环怎么办呢?只能重新定义关键字:
右击测试套件名,选择“New User keyword”:
forJ指代第二次循环,这里需要在Argument中输入一个传过来的参数,这个传过来的参数来源于第一次循环:
7.如何使用get方法访问网址?get request,网址后面可以直接携带参数访问,也可以创建字典,利用“params=”传参
8.如何使用post方法访问网址?post request,网址后面不可以直接携带参数访问,需创建字典,利用"data="传参
9.访问网址获得响应时如何使用断言?
${
变量名1} should be equal ${
变量名2} 值 断言结果说明
#意思就是,将${
变量名2}与值做比较,如果相等则输出‘断言结果说明’
第4行是将响应结果用json的格式输出,即 ${res.text} 经过 to json,得到了json格式的响应结果 ${json};
第5行第6行是从json格式的响应结果中得到名为status 、desc 的字典,将这两者分别命名为变量 ${status} 、${desc};
第7行,将${status} 的值类型转换为string
10.正则表达式参数的使用
get regexp matches,匹配正则表达式