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()方法轉換爲整型。

相關文章
相關標籤/搜索