命令列執行器
現在,您可以在任何瀏覽器上並行執行所有 Selenium IDE 測試,並在網格上執行,而無需撰寫任何程式碼。
只要安裝 Selenium IDE 命令列執行器、取得必要的瀏覽器驅動程式(如果在本地執行測試),並使用想要的選項從命令提示字元啟動執行器即可,這只是小事一樁。
先決條件
命令列執行器需要下列依賴項才能運作
node
(Node.js 程式語言)版本8
或10
npm
(NodeJS 套件管理員),通常會與node
一起安裝selenium-side-runner
(Selenium IDE 命令列執行器)- 以及我們要使用的瀏覽器驅動程式(下一節會詳細說明)
> brew install node
> npm install -g selenium-side-runner
注意:您的系統設定可能與上述範例中使用的不同(例如,MacOS 上的 Homebrew)。如果是這樣,請參閱 套件管理員的 Node 安裝文件 或直接從 Node 下載頁面 下載適用於您作業系統的 Node 安裝程式。
安裝瀏覽器驅動程式
如果您想在本地執行測試,則需要為每個瀏覽器進行一些額外的設定。
Selenium 會透過一個稱為瀏覽器驅動程式的小型二進位應用程式與各個瀏覽器進行通訊。每個瀏覽器都有其專屬的驅動程式,您可以手動下載並將其新增至系統路徑,或者,您可以使用套件管理員安裝最新版本的瀏覽器驅動程式(建議使用)。
您還需要在您的機器上安裝瀏覽器。
Chrome
對於 Chrome,您需要 ChromeDriver。
> npm install -g chromedriver
Edge
對於 Microsoft Edge,您需要在 Windows 上執行,並且您還需要 EdgeDriver。
> npm install -g edgedriver
Firefox
對於 Firefox,您需要 geckodriver。
> npm install -g geckodriver
Internet Explorer
對於 Internet Explorer,您需要在 Windows 上執行,並且您還需要 IEDriver。
> npm install -g iedriver
IEDriver 要能運作,需要一些額外的設定。詳細資訊可在此處取得 連結。
Safari
對於 Safari,您需要 SafariDriver。
它隨附於最新版本的 Safari。您只需要採取幾個步驟即可在您的機器上啟用它。請參閱 SafariDriver 文件中的此部分 以取得詳細資訊。
啟動執行器
一旦一切都安裝好,執行您的測試就是從命令列呼叫 selenium-side-runner
,後面接著先前儲存的專案檔案路徑(請參閱 入門)。
> selenium-side-runner /path/to/your-project.side
注意:如果您有多個 .side
檔案,您可以使用萬用字元(例如,/path/to/*.side
)。
當您執行此命令時,它會在多個瀏覽器視窗中並行啟動您的測試,並分佈在 n
個程序中(其中 n
是您的機器上可用的 CPU 核心數量)。
程序數量可以在執行時透過您可以提供的各種參數進行設定(包括其他設定)。
注意:並行執行會在組件層級自動發生。如果您希望組件內的測試並行執行,則需要變更一個設定。有關詳細資訊,請參閱組件中的測試並行化。
執行時間設定
使用執行器,您可以在執行時傳入不同的設定參數。
在本地執行於不同的瀏覽器
功能最常見的用途是為本機測試執行指定不同的瀏覽器。
selenium-side-runner -c "browserName=chrome"
selenium-side-runner -c "browserName='internet explorer'"
selenium-side-runner -c "browserName=edge"
selenium-side-runner -c "browserName=firefox"
selenium-side-runner -c "browserName=safari"
注意:在本地執行測試時,每個瀏覽器都需要進行一些設定。有關詳細資訊,請參閱安裝瀏覽器驅動程式。
在 Selenium Grid 上執行
若要在 Grid 上執行測試(例如,您自己的 Grid 或在 Sauce Labs 等託管供應商上),您可以指定與不同的功能一起執行。
selenium-side-runner --server https://127.0.0.1:4444/wd/hub -c "browserName='internet explorer' version='11.0' platform='Windows 8.1'"
--server
指定到 Grid 的 URL,而 -c
是您希望 Grid 使用的功能。
您可以在這裡查看可用功能的完整清單。
指定平行處理程序的數量
在網格上執行時,您可能會想要控制正在執行的平行工作階段數量。為此,您可以使用 -w n
命令旗標(其中 n
是您想要的處理程序數量)。
selenium-side-runner -w 10 --server https://127.0.0.1:4444/wd/hub
執行器會自動將工作人員數量設定為電腦上可用的 CPU 核心數量。在大多數情況下,這是最佳選項。
Chrome 特定功能
如果您在電腦上安裝了 Chrome,但安裝位置並非標準位置,您可以指定路徑,讓 ChromeDriver 知道在哪裡尋找。
selenium-side-runner -c "goog:chromeOptions.binary='/path/to/non-standard/Chrome/install'"
使用 Chrome 特定功能,您也可以無頭執行測試。
selenium-side-runner -c "goog:chromeOptions.args=[disable-infobars, headless]"
觸手可及的架構
執行器還提供了其他不錯的功能。這些功能是傳統測試自動化架構中預期會提供的。
變更基本 URL
透過指定不同的基本 URL,您可以輕鬆地將測試指向不同的環境(例如,本機開發、測試、登台、製作)。
selenium-side-runner --base-url https://127.0.0.1
篩選測試
您也可以使用 --filter target
命令標記(其中 target
是正規表示式值)來執行測試的目標子集。只會執行包含指定搜尋條件的測試名稱。
selenium-side-runner --filter smoke
將測試結果輸出到檔案
如果您需要將測試結果匯出到檔案(例如,作為 CI 程序的一部分執行時),您可以結合使用 --output-directory
和 --output-format
標記。
--output-directory
定義測試結果檔案的位置。它可以採用絕對路徑或相對路徑。
--output-format
定義測試結果檔案要使用的格式。它可以是 jest
(例如,JSON)或 junit
(例如,XML)。預設格式是 jest
(例如,如果您未指定類型)。
selenium-side-runner --output-directory=results
# Outputs results in `jest` frormat in `./results/projectName.json'
selenium-side-runner --output-directory=results --output-format=jest
# Outputs results in `jest` frormat in `./results/projectName.json'
selenium-side-runner --output-directory=results --output-format=junit
# Outputs results in `junit` frormat in `./results/projectName.xml'
指定預設組態
您不必記住所有需要的命令列參數(這可能會變得難以處理),您可以將執行時期參數儲存在組態檔案中。
您可以使用兩種設定檔。
選項 1
在您執行測試的目錄中建立一個 .side.yml
檔案。執行器會自動選取它。以下是檔案內容的範例。
capabilities:
browserName: "firefox"
baseUrl: "https://www.seleniumhq.org"
server: "https://127.0.0.1:4444/wd/hub"
如果您要略過檔案並改用命令列引數,請在執行時與其他命令一起使用 --no-sideyml
。
選項 2
除了使用 .side.yml
檔案以外,您也可以在 YAML 檔案中指定執行時參數,並自行選擇名稱和位置,然後在執行測試時指定其位置。
selenium-side-runner --config-file "/path/to/your/config.yaml"
注意:當使用 --config-file
旗標時,將會略過 .side.yml
。
Selenium IDE 組態
套件中的測試並行化
開箱即用,執行器會並行執行套件,但套件中的測試會依序執行。
若要並行執行特定套件中的測試,您需要在 Selenium IDE 中更新該套件的設定。
- 切換至 Selenium IDE 中的
測試套件
檢視 - 按一下您要組態的套件名稱旁的下拉式功能表,然後按一下
設定
- 按一下
並行執行
的核取方塊 - 按一下
提交
- 儲存您的 Selenium IDE 專案檔案
若要組態多個套件以這種方式執行,請在每個套件中重複步驟 1-4。完成後務必儲存專案檔案。
進階選項
其他參數
Selenium IDE 的外掛程式可以指定它們自己的獨特執行時間參數。您可以透過 --params
旗標使用它們。
此選項會採用各種選項的字串(類似於指定功能的方式)。
基本用法
您指定參數的名稱及其值。最基本的作法是指定字串值。
selenium-side-runner --params "a='example-value'"
巢狀參數
參數也可以使用點號表示法進行巢狀。
selenium-side-runner --params "a.b='another example-value'"
陣列值
除了字串之外,您也可以指定陣列的字母數字值。
selenium-side-runner --params "a.b.c=[1,2,3]"
多個參數
--params
只能呼叫一次,但您可以透過空格分隔來指定多個參數。
selenium-side-runner --params "a='example-value' a.b='another example-value' a.b.c=[1,2,3]"
使用代理伺服器
您可以使用執行器中的下列選項將代理功能傳遞給瀏覽器。
直接代理
此選項會設定 WebDriver 繞過所有瀏覽器代理。
從命令列
> selenium-side-runner --proxy-type=direct
.side.yaml
中
在 proxyType: direct
手動代理
手動設定瀏覽器代理。
從命令列
selenium-side-runner --proxy-type=manual --proxy-options="http=localhost:434 bypass=[https://127.0.0.1:434, https://127.0.0.1:8080]"
.side.yaml
中
在 proxyType: manual
proxyOptions:
http: https://127.0.0.1:434
https: https://127.0.0.1:434
ftp: https://127.0.0.1:434
bypass:
- http://127.0.0.1:8080
- http://host:434
- http://somethingelse:32
PAC 代理
設定 WebDriver 以使用指定 URL 中的 PAC 檔案設定瀏覽器代理。
從命令列
selenium-side-runner --proxy-type=pac --proxy-options="https://127.0.0.1/pac"
.side.yaml
中
在 proxyType: pac
proxyOptions: https://127.0.0.1/pac
SOCKS 代理
建立 SOCKS 代理的代理組態。
從命令列
selenium-side-runner --proxy-type=socks --proxy-options="socksProxy=localhost:434 socksVersion=5"
.side.yaml
中
在 proxyType: socks
proxyOptions:
socksProxy: localhost:434
socksVersion: 5
系統代理
設定 WebDriver 以使用目前系統的代理。
從命令列
selenium-side-runner --proxy-type=system
.side.yaml
中
在 proxyType: system
程式碼匯出
如果您嘗試學習如何將錄製的測試轉換成 WebDriver 程式碼,或如果您想要將錄製的測試整合到現有的自訂測試架構中,那麼您需要的程式碼匯出功能現在已提供給特定語言使用。您可以在 這裡 了解更多資訊!