Robotframe随笔

环境配置

win7上用robotframe只能使用python2版本,不可使用python3版。命令行启动robot时,注意代表启动的python版本号(本机有两个python版本时)html

安装完成之后在Python安装目录下的Scripts目录下执行以下命令就能够启动RIDE了python

python2 ride.py

注意:本机共存两个python版本时,若是直接使用命令行ride.py启动的将会是ride.py文件,而不是robotmysql

https://blog.csdn.net/sfw_123817/article/details/70225822git

两个版本并存时,执行ride脚本时容易报错,解决方案,卸载python3。(5555坚持了这么久仍是要卸载,好心痛!!!)github

启动快捷方式设定

  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')web

  • 解决方案: 1.文件地址前必定加上python

                 2.注意盘符方向'python F:/Auto_Projects/study/example100/testexise1.py',windows直接copy后的路径地址须要手动将\改成/,不然找不到文件sql

 

2.Screenshot库使用时,Take Screenshot时会以下报错chrome

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.FiveTestjson

  • 解决方案:如错误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脚本

http://www.javashuo.com/article/p-ugskcezg-cu.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()方法转换为整型。

相关文章
相关标签/搜索