SideeX WebService
SideeX WebService工具提供一個網際服務介面接收與執行SideeX Recorder錄製出之測試案例,可用於公司內部自行建立測試平台,提供測試服務。本文將介紹如何啟動SideeX WebService。啟動後,將可透過以下三種方式來呼叫其網際服務:
- SideeX Plugin for Jenkins
- SideeX WebService Client API for Java | Python | Node.js
- SideeX WebService Web API
Image Not Showing
Possible Reasons
- The image file may be corrupted
- The server hosting the image is unavailable
- The image path is incorrect
- The image format is not supported
Learn More →
SideeX WebService架構圖
步驟1:啟動Selenium Server
- 下載Selenium Server (已測版本:3.141.59)
- 下載WebDriver,並將其放置於與
selenium-server-standalone-{version}.jar
相同目錄下
- 開啟命令列模式並且切換路徑至
selenium-server-standalone-{version}.jar
的目錄
- 執行
java -jar selenium-server-standalone-{version}.jar
步驟2:啟動SideeX WebService
- 開啟命令列模式並執行
npm i -g @sideex/webservice
- 執行
sideex-webservice --config {CONFIG_FILE_PATH}
。設定檔格式請參閱附錄A。底下為一個簡單的設定檔範例(serviceconfig.json
):
提示:SideeX WebServer與Selenium Server/Node可於Docker上運行
步驟3 (可跳過) - 使用Postman檢查SideeX WebService是否啟動
在Postman中開啟新的分頁,選擇GET
method,輸入http://<webservice-publicURL-hostname>:<port>/sideex-webservice/echo
,點選Send
.
Image Not Showing
Possible Reasons
- The image file may be corrupted
- The server hosting the image is unavailable
- The image path is incorrect
- The image format is not supported
Learn More →
步驟4:準備測試案例檔案
準備測試案例檔案並將其打包成一個zip檔,此zip檔須包含一個config.json
(請參閱附錄B)與一個suites
目錄,而variables
目錄與i18n
目錄為選擇性項目,此zip檔內結構如下
步驟5 (可跳過) - 使用Postman檢查SideeX WebService是否能正常執行測試案例
- 在Postman中開啟新的分頁,選擇
POST
method,輸入http://<webservice-publicURL-hostname>:<port>/sideex-webservice/runTestSuites
.
- 選擇
Body
-> form-data
,在Key
欄位輸入file
,在Value
欄位點選Choose Files
加入testcase.zip
,點選Send
.
Image Not Showing
Possible Reasons
- The image file may be corrupted
- The server hosting the image is unavailable
- The image path is incorrect
- The image format is not supported
Learn More →
步驟6:呼叫SideeX WebService以執行測試案例
可透過底下三種方式來呼叫SideeX WebService以執行步驟3準備之zip檔:
- SideeX Plugin for Jenkins
- SideeX WebService Client API for Java | Python | Node.js
- SideeX WebService Web API
此附錄將說明SideeX WebService Server設定檔格式(serviceconfig.json
)。
Description
- webservice
- server
- port
- Description: 設定Server Port
- Value: A number
- Default:
50000
- ssl
- active
- Description: 設定是否啟用SSL連線
- Value: boolean
- Default:
false
- privateKey
- certificate
- publicURL
- hostname
- Description:
- SideeX WebService Server的IP位址
- 若SideeX WebService Server運行於一個Docker Container中,此屬性須設定為Host的IP位址
- Value: A string
- Default:
"127.0.0.1"
- port
- Description:
- SideeX WebService Server的Port值
- 若SideeX WebService Server運行於一個Docker Container中,此屬性須設定為對應到此Container於Host上的Port
- Value: A number
- Default:
50000
- testJobsFolderPath
- Value: A string
- Default:
"test-project"
- testProjectExpireTime
此屬性可被測試案例zip檔中之config.json
覆寫
- Description:
- 暫存檔案之到期清除時間
0
: 永不清除
n
: 每次收到測試案例zip檔案並執行測試,於n
小時後將清除暫存檔案
- Value: A positive integer (單位:小時)
- Default:
0
-
mail
將測試報告以Email寄出。注意:若使用Gmail SMTP伺服器寄信時,須事先建立Application Password
以下屬性可被測試案例zip檔中之config.json
覆寫
- active
- Description
0
: 不寄送信件
1
: 當測試失敗時才寄送信件
2
: 不論測試結果一律寄送信件
- Value:
0
, 1
or 2
- Default:
0
- configs
- transport
- Description: Mail伺服器設定。可參考SMTP Transport
- Value: 如以下格式
user
的欄位請填入您的 gmail 帳號,pass
的欄位請根據這篇文章產生出一組給郵件的應用程式密碼。
- Default:
undefined
- mailer
- Description: 信件設定。可參考Message
- Value: 如以下格式
- Default:
undefined
-
slack
推送測試報告至Slack。事先須準備Slack Token與Channel
以下屬性可被測試案例zip檔中之config.json
覆寫
- active
- Description
0
: 不推送至Slack
1
: 當測試失敗時才推送至Slack
2
: 不論測試結果一律推送至Slack
- Value:
0
, 1
or 2
- Default:
0
- configs
- token
- Description: Slack APP之Token
- Value: A string
- Default:
""
- channel
- Description: Slack Workspace Channels
- Value: A string
- Default:
""
- text
- Description: 推送文字訊息。將顯示於Test Report Summary前
- Value: A string
- Default:
""
-
line
推送測試報告至Line。事先須準備Line Notify Token
以下屬性可被測試案例zip檔中之config.json
覆寫
- active
- Description
0
: 不推送至Line
1
: 當測試失敗時才推送至Line
2
: 不論測試結果一律推送至Line
- Value:
0
, 1
or 2
- Default:
2
- configs
- token
- Description: Line Notify Token
- Value: A string
- Default:
""
- text
- Description: 推送文字訊息。將顯示於Test Report Summary前
- Value: A string
- Default:
""
此附錄將說明測試案例zip檔中之設定檔格式(config.json
)。此設定檔格式內容除了以下屬性有差異外,其餘屬性與SideeX Runner設定檔格式相同:
input
、report.path
、webdriver.i18n
屬性無作用
- 多了一項屬性:
testProjectExpireTime
。此屬性若有設定值,則將覆蓋SideeX WebService Server設定檔之同名屬性。
格式如下:
附錄C - 於Docker上運行SideeX WebService與Selenium Server
此附錄將介紹如何於同一台電腦上運行SideeX WebService container與Selenium Server/Hub containers。
步驟1:下載與運行Selenium Hub/Node Docker影像檔
在一台主機(底下簡稱Host)上開啟命令列並執行下列指令:
更多資訊請參閱Docker images for the Selenium Grid Server
步驟2:下載與運行SideeX WebService Docker影像檔
- 建立一個
serviceconfig.json
檔案(請參閱附錄A)
- 建立一個
test-jobs
目錄。此目錄將與SideeX WebService container共用,用以暫存執行測試時所產生的檔案
- 執行以下指令以下載與執行SideeX WebService Docker影像檔
- 在使用端測試案例zip檔中的設定檔內容,將
webdriver.configs.serverUrl
屬性設定如下:
步驟3:監看SideeX WebService Container
執行以下指令以監看SideeX WebService執行時之Log: