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坚持了这么久还是要卸载,好心痛!!!)

启动快捷方式设定

  1. 桌面右键创建快捷方式>对象位置:C:\Python27\pythonw.exe -c “from robotide import main; main()”>下一步>修改名称>完成
  2. 设置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/

自定义关键字

  1. 在python安装路径下创建库文件的文件夹(C:\Python27\Lib\site-packages\下创建MyLibrary文件夹)
  2. 在MyLibrary内创建两个py文件,一个是写需要创建的自定义方法(如,mytool.py),另一个是__init__.py文件(注意类名要与库文件夹名称一致)

 

自定义详细
# coding=utf-8
class mytool():
    def __init__(self):
        pass
    def test_a_b(self,a,b):
        '''
        比较两个参数的大小
        '''
        if a>b:
             flag = False
             return flag
         else:
             flag = True
             return flag
init文件
# coding=utf-8
from mytoolimport mytool
version = '1.0'
class MyLibrary(mytool):
    ROBOT_LIBRARY_SCOPE = 'GLOBAL'

3. RIDE中导入库,MyLibrary

4. 自定义使用

RIDE CASE
${r}    Test A B    1000    100
log    ${r}

*自定义库加载时的注意事项:https://blog.csdn.net/lihua_tan/article/details/54897448

操作Datebase

  1. 安装database library库
  2. 安装mysql数据库驱动(本宫木有选择Oracle)
  3. robotframe中导入DatabaseLibrary库
  4. 连接数据库(数据库必须处于启用状态,连接可以是断开的)

    Connect

    Connect To Database Using Custom Params | pymysql | host='127.0.0.1',port=3306,user='root',passwd='xxxxx',db='xxxx

  5. 执行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中未打印出相应的结果,继续确认需要!!!!!!!

  6. 执行SQL文件
  7. 添加系统关键字

使用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测试接口

环境准备

  1. pip安装库
    pip install requests
    pip install collections
    pip install robotframework-requests
  2. 将requests和RequestsLibrary库导入到RF中
    RequestLibrary是用来进行接口测试相关操作的,Collections库是操作字典的(因为接口返回的数据是json格式,转换成字典才能进行断言)

基础语法

  • Create Session:创建一个连接到服务器端URL地址的HTTP会话
  • Get Request:发送GET请求
  • Post Request:发送POST请求

GET接口请求

POST接口请求

evaluate:使用此关键字后,就可以直接调用python提供的方法。在RF中直接编写的内容为字符串,所以需要借助python的int()方法转换为整型。

posted @ 2019-04-11 10:45  caohaizhusha  阅读(298)  评论(0)    收藏  举报