Robotframe随笔
环境配置
win7上用robotframe只能使用python2版本,不可以使用python3版。命令行启动robot时,注意表明启动的python版本号(本机有两个python版本时)
安装完成以后在Python安装目录下的Scripts目录下执行如下命令就可以启动RIDE了
python2 ride.py |
注意:本机共存两个python版本时,如果直接使用命令行ride.py启动的将会是ride.py文件,而不是robot
https://blog.csdn.net/sfw_123817/article/details/70225822
两个版本并存时,执行ride脚本时容易报错,解决方案,卸载python3。(5555坚持了这么久还是要卸载,好心痛!!!)
启动快捷方式设定
- 桌面右键创建快捷方式>对象位置:C:\Python27\pythonw.exe -c “from robotide import main; main()”>下一步>修改名称>完成
- 设置icon:图标右键更改图标>C:\Python27\Lib\site-packages\robotide\widgets里选择图标>完成
那年那些坑
1.Evaluate os.system('python 文件地址') 执行文件时报错(C:\Python27\python.exe: can't find '__main__' module in 'F:\\Auto_Projects\\RobotWorkspace')
- 解决方案: 1.文件地址前一定加上python
2.注意盘符方向'python F:/Auto_Projects/study/example100/testexise1.py',windows直接copy后的路径地址需要手动将\改为/,否则找不到文件
2.Screenshot库使用时,Take Screenshot时会如下报错
error
C:\Python27\lib\site-packages\robot\libraries\Screenshot.py:349: wxPyDeprecationWarning: Call to deprecated item EmptyBitmap. Use :class:`wx.Bitmap` instead
bitmap = wx.EmptyBitmap(width, height, -1)
Ending test: MyFirstTest.TSTest.FiveTest
- 解决方案:如错误log中提示的,将bitmap = wx.EmptyBitmap(width, height, -1)改为bitmap = wx.Bitmap(width, height, -1)截图即可正常保存。
截图默认保存位置:C:\Users\Naver\AppData\Local\Temp\RIDE11v0yo.d
3. selenium2library导入后,使用open browser关键字时报错(WebDriverException: Message: 'geckodriver' executable needs to be in PATH. )
- 解决方案:浏览器驱动问题,firefox,chrome,ie三大浏览器驱动安装。版本必须跟现有浏览器版本匹配,webdriver下载地址:https://github.com/seleniumhq/selenium
- webdriver需要放置在python工作目录下(也可以把webdriver放置在浏览器安装目录下,如chrome的C:\Program Files (x86)\Google\Chrome\Application,并将此添加到环境变量Path中)
继续坑坑:如上firefox浏览器版本和geckodriver更新后,还是会报错(InvalidArgumentException: Message: Missing 'type' parameter), - 可能是版本不兼容问题。pip list查看版本,建议降低selenium版本到3.0.2(使用管理员权限执行如下命令)
- 1)pip uninstall selenium
- 2) pip install selenium==3.0.2
4.已经安装了AutoItLibrary库和pywin32库的情况下,RIDE内导入AutoItLibrary后报红的问题(F5也不会显示AutoItLibrary库)
解决方案:安装Autoit V3(https://www.autoitscript.com/site/)
自定义关键字
- 在python安装路径下创建库文件的文件夹(C:\Python27\Lib\site-packages\下创建MyLibrary文件夹)
- 在MyLibrary内创建两个py文件,一个是写需要创建的自定义方法(如,mytool.py),另一个是__init__.py文件(注意类名要与库文件夹名称一致)
# coding=utf-8class mytool(): def __init__(self): pass def test_a_b(self,a,b): ''' 比较两个参数的大小 ''' if a>b: flag = False return flag else: flag = True return flag |
# coding=utf-8from mytoolimport mytoolversion = '1.0'class MyLibrary(mytool): ROBOT_LIBRARY_SCOPE = 'GLOBAL' |
3. RIDE中导入库,MyLibrary
4. 自定义使用
${r} Test A B 1000 100log ${r} |
*自定义库加载时的注意事项:https://blog.csdn.net/lihua_tan/article/details/54897448
操作Datebase
- 安装database library库
- 安装mysql数据库驱动(本宫木有选择Oracle)
- robotframe中导入DatabaseLibrary库
-
连接数据库(数据库必须处于启用状态,连接可以是断开的)
Connect
Connect To Database Using Custom Params | pymysql | host='127.0.0.1',port=3306,user='root',passwd='xxxxx',db='xxxx
-
执行SQL语句
SQL
Connect To Database Using Custom Params | pymysql | host='127.0.0.1',port=3306,user='root',passwd='xxxx',db='xxxx'
${result} | Execute Sql String| select * from students
log ${result}
Disconnect From Database如上执行后,robotframe中未打印出相应的结果,继续确认需要!!!!!!!
- 执行SQL文件
- 添加系统关键字
使用pycharm编写和运行RF脚本
https://www.cnblogs.com/x_wukong/p/8111865.html
cmd中运行RF脚本常用命令
- ...>rf_test> pybot test.robot 运行当前目录下的指定文件
- ...>rf_test> pybot *.robot 运行当前目录下后缀名为.robot的测试文件
- ...>rf_test> pybot test_a 运行当前test_a目录下的测试文件
- ...>rf_test> pybot ./ 运行当前目录下所有后缀名为.robot的测试文件
RF测试接口
环境准备
- pip安装库
pip install requests
pip install collections
pip install robotframework-requests - 将requests和RequestsLibrary库导入到RF中
RequestLibrary是用来进行接口测试相关操作的,Collections库是操作字典的(因为接口返回的数据是json格式,转换成字典才能进行断言)
基础语法
- Create Session:创建一个连接到服务器端URL地址的HTTP会话
- Get Request:发送GET请求
- Post Request:发送POST请求
GET接口请求
POST接口请求
evaluate:使用此关键字后,就可以直接调用python提供的方法。在RF中直接编写的内容为字符串,所以需要借助python的int()方法转换为整型。


浙公网安备 33010602011771号