每天的專案會同步到 github 上,可以前往 這個網址 如果對於專案有興趣或是想討論一些問題,歡迎留言 OR 來信討論,信箱為:nickchen1998@gmail.com
Selenium IDE 是一個瀏覽的擴充套件,常見的瀏覽器上均有提供,如它的名稱所示,他是一個可以操作 Selenium 的 IDE,我們可以透過他進行腳本的錄製,並建立驗證項目,來減少測試開發人員撰寫程式的時間,甚至是提供沒有測試部門的公司直接進行測試計畫的建立,讓相關人員可以在不需要具備太多程式背景的條件下,也可以輕鬆進行測試
在開始介面介紹之前,我們先透過下面步驟建立一個簡單的測試計畫
我們可以先將剛剛開啟的瀏覽器關掉,方便我們進行介面介紹。
接下來我們將我們要介紹的部分使用紅框框起來,並搭配數字做對應的解釋:
我們可以透過錄製腳本的方式來進行測試案例的建立,也可以透過手動插入腳本的方式進行建立,不過在驗證的部分一定是透過手動插入的,Selenium IDE 只能協助我們錄製在我們想驗證的元素出現之前該進行甚麼樣的動作
另外經過筆者實測,建議在開始錄製之前都手動插入一行 open 命令來開啟網址,在錄製的過程中會比較順暢,下面我們就簡單錄製一個腳本給大家看
我們會按照下面的步驟來進行腳本的錄製:
補充:
這個部分會說明一些常用的驗證項目,也就是 assert 的選項
透過下面的方式可以將錄製好的腳本輸出為 Python 以及其他語言的腳本,然後就可以交給測試部門的 RD 進行程式的重構或使用,進一步套入 CI/CD 進行自動化測試
回到 Tests 分類
點選要匯出的測試案例旁邊的三個按鈕
選擇 "EXPORT" 選項
選擇 "Python pytest" 選項
選擇 "EXPORT" 選項
透過 Selenium IDE 所輸出的 Python 腳本,可以直接執行,不如果要套入 CI/CD,或是公司本身自有的測試框架或其他種類流程的話,
都會需要進行某種程度上的重構,這時後錄製腳本的人員如果沒有程式相關背景的話,就可以交給 RD 進行重構並納入自動化測試當中,
或本身是測試部門的 RD 的話,也可以透過這個小工具來減少我們寫 code 的時間,獲取更多偷懶的機會
# Generated by Selenium IDE
import pytest
import time
import json
from selenium import webdriver
from selenium.webdriver.common.by import By
from selenium.webdriver.common.action_chains import ActionChains
from selenium.webdriver.support import expected_conditions
from selenium.webdriver.support.wait import WebDriverWait
from selenium.webdriver.common.keys import Keys
from selenium.webdriver.common.desired_capabilities import DesiredCapabilities
class TestDemo():
def setup_method(self, method):
self.driver = webdriver.Chrome()
self.vars = {}
def teardown_method(self, method):
self.driver.quit()
def test_demo(self):
self.driver.get("https://ithelp.ithome.com.tw/")
self.driver.set_window_size(1552, 832)
self.driver.find_element(By.LINK_TEXT, "技術文章").click()
elements = self.driver.find_elements(By.XPATH, "//h2[contains(.,\'技術文章\')]")
assert len(elements) > 0
self.driver.close()
今天我們介紹了 Selenium IDE 這個錄製測試腳本的小工具,他可以協助我們減少撰寫測試程式的時間,也可以讓非 RD 相關背景的人員參與測試,降低溝通成本,不過目前這個工具還是有一些小缺點,像是不能清除 cookies、open 指令需要手動修改等,一些會造成錄製上不太方便的瑕疵,這部分就只能期待他們日後有沒有進行更新了,明天我們會花一天的時間來補個前幾天有提到的 XPATH 使用方式的坑