本文,仅适用于完全没接触过rf的小白,也是作为自己学习的一个记录
1.需要python环境,去官网下载python解释器,配置环境变量
2.安装robotframework :pip install robotframework
3.安装ride:pip install robotframework-ride (安装后dos输入ride.py启动,如果启动不了,可以python安装路径\scripts\ride.py 手动双击启动)
4.安装AppiumLibrary : pip install robotframework-appiumlibrary
5.安装RequestsLibrary :pip install robotframework-requests
6.安装selenium2library:pip install robotframework-selenium2library
7.安装wxPython:pip install wxPython
以上安装都可以选择使用豆瓣源(方法如下):
“-i http://pypi.douban.com/simple/”
启动ride后,新建一个项目,点击左上角file,选择new project,弹出窗口
name处写上你的项目名称,我这里起名firstRF。
在新建的项目上,右键点击,选择new suite,填上name,这里正式的项目是要在多建一层文件夹的,这里为了方便,直接键文件了。
右键刚建好的测试套件,选择New Test Case ,创建一个测试用例
name这里我输入测试用例,点击确定,下面我们就可以编辑用例了!
在右侧edit页面,第一个空格处输入log关键字,第二个空格处输入hello world
切换tab,选择run,点击start,下面可以看到hello world已经打印出来了
以上,一个简单的hello world就完成了,怎么样,很简单把?下面说一下ride常用的两个功能:
使用ctrl+shift+空格(不生效的话可能是与你的输入法有冲突,取消输入法的Ctrl+空格热键)
定义变量:${a}
#赋值:Set Variable
eg: ${a} set variable 100
#打印日志:log
eg: log ${a}
#注释:comment或者像python使用#
eg:comment xxx #这是注释
#创建列表: create list
eg: ${list} create list 开发 测试 产品
#睡眠:sleep
eg: sleep 3
#获取系统时间: get time
eg: ${time} get time
#拼接字符串:catenate (拼接中间会有空格,需要去掉空格可在catenate后加SEPARATOR=)
eg: ${str} catenate hello world
eg: $s{str} catenate SEPARATOR= hello world
返回:[return] 注:中括号不可以省略
eg: [return] xxx
#创建一个字典:
${age} Evaluate int(18)
${dict} Create Dictionary name=liu age=${age}
log ${dict}
# 获取字典所有的key:需要导入collections包
${keys} Get Dictionary Keys ${dict}
log ${keys}
# 同理,获取字典所有的values
${values} Get Dictionary Values ${dict}
log ${values}
# 根据字典中的key获取values的值
${s} Get From Dictionary ${dict} name
log ${s}
# if条件判断(关键字必须大写,涉及到换行要用"...")
Run Keyword If 1==1 log 1
... ELSE IF log 2
... ELSE log 3
好了,掌握了上面这些关键字,想必你已经跃跃欲试了,那下面我们就进入正题,可以开始写rf程序了。
首先,你点击测试套件,选择右侧的edit栏目,然后点击library,在这里引入最开始第一章我们通过pip安装的包,web自动化的话,我们选择Selenium2Library
这里注意,区分大小写,点击ok确定导入,导入后字体是黑色的(如下图),就表示成功拉!!!红色就是有错误,这时候你需要检查下你的拼写。
在测试套件下,我们在新建一个测试用例,就叫web自动化把。然后就可以进入编码环节了。
web自动化,首先第一步,就是打开浏览器了。这里我们选择谷歌浏览器打开百度页面。
#打开浏览器 Open Browser关键字
Open Browser http://www.baidu.com chrome
这里注意,Open Browser变成了蓝色,就表示该关键字可用。勾选web自动化,点击2步的运行,就可以看到谷歌浏览器,打开了百度首页(此处需要配置谷歌浏览器的驱动,具体可以参考下之前的selenium文章:https://blog.csdn.net/u010799534/article/details/121422335)
这里需要一点,元素定位的知识。打开百度页面,F12查看开发者工具elements的栏目.点击1箭头,然后点一下2箭头,就能看到3所示的位置了
3所处于的位置,就是百度搜索栏目,我们想要通过自动化在里面输入“robotframework”,后点击搜索按钮,属性之中有id。这是我们首选的定位方式(在没有id的情况,我们大多会使用xpath,不了解的可以看下https://blog.csdn.net/u010799534/article/details/122081415)。
在使用同样的方式,找到百度一下的按钮。id是su。
我们开始编写我们的第二行rf代码:这里涉及到我们第二个关键字 :
Get WebElement表示获取元素的位置信息
${search} Get WebElement id=kw
这里我们用search变量接受,get webelement的返回值,然后,输入“robotframework”,这里第三个关键字:Input Text表示输入文本
# 文本框输入robotframework
Input Text ${search} robotframework
下面是我们的第四个关键字 Click Element,顾名思义,点击元素的意思。
# 点击百度一下
Click Element id=su
这里,就其实看到,我们程序的完整过程了。下面是完整代码:
web自动化
Open Browser http://www.baidu.com chrome
${search} Get WebElement id=kw
Input Text ${search} robotframework
Click Element id=su
sleep 5
Close Browser
与web自动化一样,开始之前需要导入一个lib包,app自动化,需要的是AppiumLibrary,在第一章我们已经安装过了。
此内容不是本章内容重点,该链接有大概介绍:https://blog.csdn.net/u010799534/article/details/121541972,或选择其他博客学习。
如果你有用python编写过基于appium的自动化的话,这块对你来说,应该是so easy的。
初始化需要的属性与python编写如出一辙,与web ui自动化一样,所有的操作,也都是要依靠关键字的!!!
第一个关键字:Open Application,鼠标放在关键字上按住ctrl键,就可以看到该关键字的入参,如下:
按照Examples输入需要的字段,例如:
Open Application http://127.0.0.1:4723/wd/hub platformName=Android platformVersion=${Android_platformVersion} udid=${udid} appPackage=${Android_appPackage} appActivity=${Android_appActivity} noreset=false newCommandTimeout=${timetou}
就可以了。别忘了启动你的appium服务,我这边是使用的appium server gui
此处端口应与你open application后面的一致!点击运行,就可以打开你的app了。剩下的操作,与web自动化就很像了。也是依靠关键字,进行一些点击,等待的操作。
id=xxx表示元素定位,非固定写法,八大元素定位方式均可
Wait Until Page Contains Element id=xxxx
Wait Until Element Is Visible id=xxx
Click Element id=xxxx
Press Keys 要点击的元素 enter
input text id=xxx 123
Input Password id=xxx 123
Capture Page Screenshot D:/xxx.png
Get WebElement id=xxx
${正则后的值} Should Match Regexp ${正则前的值} 正则表达式
eg:${url} Should Match Regexp ${str} [(](.*?)[)]
Get Element Size id=xxx