1. 程式人生 > >RF練習---開發庫@匯入py檔案

RF練習---開發庫@匯入py檔案

RobotFramework 作業 4
**按照如下說明 安裝、執行 教學管理web系統的安裝包
1.確保本機已經安裝了python3.6,並且pip命令的目錄已經新增到path環境變數中。

2.點選這裡
https://github.com/jcyrss/songqin-testdev/raw/master/webapi/code/restapi-teach5.zip
下載zip包
解壓zip包到一個目錄中(請確保該目錄的路徑裡面沒有中文字元)
3.進入目錄,雙擊執行install.bat,安裝必要的庫
4. 最後雙擊run.bat即可執行該web系統。 注意:run.bat 裡面執行著產品服務,不要關閉該命令列視窗。
如果執行run.bat 出現 80 port not free 這樣的問題,解決方案參考

https://github.com/jcyrss/songqin-testdev/issues/4

5.登入瀏覽器,輸入http://localhost/mgr/login/login.html地址,進入管理員登入介面。
輸入管理員使用者名稱auto,密碼為 sdfsdfsdf,即可登入
建立一個RF測試套件,包含下面的一個用例
用例名:
驗證當系統中沒有課程的時候,是否能成功新增一個課程
前置條件:
系統中沒有課程
測試步驟:
新增課程,輸入課程名、詳情描述、展示次序,點選建立
預期結果:
建立的課程正確顯示在下面的課程列表中。
這裡為了簡化,我們只檢查 課程名就可以了
注意:
這個用例的初始化和清除操作,都是需要設定為無課程狀態。
需要我們開發一個python測試庫,使用selenium庫開發關鍵字函式deleteAllCourse, 實現使用Python自動點選刪除課程按鈕**
測試庫(另一種寫法)

  from selenium import webdriver
  import time
    
    
    def Delete_Course():
    	driver = webdriver.Chrome()
    	driver.implicitly_wait(10)
    	driver.get('http://localhost/mgr/login/login.html')
    	driver.find_element_by_id('username').send_keys('auto')
    	driver.find_element_by_id('password').send_keys('sdfsdfsdf')
    	driver.find_element_by_tag_name('button').click()
    
    	driver.implicitly_wait(2)
    
    	tbody = driver.find_elements_by_css_selector("tbody")
    	if tbody:               #判斷裡面有沒有課程,沒有的話,直接退出
    		tr = driver.find_elements_by_css_selector("tbody>tr")
    		for i in range(1,len(tr)+1):
    			dele = driver.find_element_by_css_selector("tbody>tr>td:nth-child(4)>button:nth-child(2)")
    			dele.click()
    			driver.find_element_by_css_selector(".btn-primary").click()
    			time.sleep(1)
    			driver.refresh()
    
    	driver.quit()

測試庫 st.py

from selenium import webdriver
import time



def DeleteAllCourse():
    driver = webdriver.Chrome()
    driver.implicitly_wait(10)
    driver.get('http://localhost/mgr/login/login.html')
    driver.find_element_by_id('username').send_keys('auto')
    driver.find_element_by_id('password').send_keys('sdfsdfsdf')
    driver.find_element_by_tag_name('button').click()

    driver.implicitly_wait(2)
    while True:
        deleteButtons = driver.find_elements_by_css_selector(
            "button[ng-click^='delOne']")
        if deleteButtons:
            deleteButtons[0].click()
            driver.find_element_by_css_selector('button.btn-primary').click()
            time.sleep(1)
        else:
            break


    driver.implicitly_wait(10)

    driver.quit()

RF測試套件檔案 t1.robot

*** Settings ***
Library  SeleniumLibrary
Library  collections
Library    st
*** Test Cases ***
百度搜索鬆勤
    [Setup]     DeleteAllCourse
    [Teardown]   DeleteAllCourse
    Open Browser                  http://localhost/mgr/login/login.html    chrome
    Set Selenium Implicit Wait    10

    Input Text                    id=username                   auto
    Input Text                    id=password                   sdfsdfsdf
    Click Element               css:button                          #點選登入按鈕的元素
    Click Element               css:button[ng-click*="showAddOne=true"]             #點選新增課程
    input text                  css:[ng-model*="addData.name"]          初中化學
    input text                  css:[ng-model*="addData.desc"]         初中化學課程           #課程描述
    input text                  css:[ng-model*="addData.display_idx"]         初中化學課程
    sleep                       1
    Click Element               css:button[ng-click*="addOne()"]                    #點選新增一個課程

    ${eles}=    Get WebElements         css:tr>td:nth-child(2)              #Get WebElements獲取頁面元素,是列表。賦值給一個變數
    ${lessons}=    create list              #建立一個空列表
    :FOR  ${ele}  in  @{eles}             #從列表中獲取,用@符.不需要冒號
    \       log to console        ${ele.text}             #縮排
    \       Append To List   ${lessons}   ${ele.text}           #第一個引數是列表,第二要加的課程,要匯入collections



    Should Be Equal    ${lessons}==["初中化學"]


    Close Browser