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 這樣的問題,解決方案參考
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