--- title: Control Flows in SideeX tags: Chinese --- # 控制流程 SideeX提供四種類型的控制流程指令:`IF-ELSE`、`WHILE`、`INCLUDE`與`TRY-CATCH`,此四種指令可混合使用。 ## IF-ELSE 一個`IF`指令須配對一個`END`指令,並配對最多一個`ELSE`。 :::info **Example 1 (IF-END)** IF *Other Commands* END ::: :::info **Example 2 (IF-ELSE-END)** IF *Other Commands* ELSE *Other Commands* END ::: 此外,IF-ELSE可巢狀出現,例如: :::info **Example 3 (Nested-IF)** IF *Other Commands* **IF** *Other Commands* **ELSE** *Other Commands* **END** *Other Commands* END ::: ## WHILE 一個`WHILE`指令須配對一個`END`指令。Value欄位值可設定最多迴圈數,無填值則表示無限制。 :::info **WHILE \| \${ValidLogin} == false \| 10** *Other Commands* IF \| "${LoginStatus}" == "Incorrect Name" \| *Other Commands* END *Other Commands* **END** ::: ## INCLUDE `INCLUDE`指令可用於測試案例重複使用,當執行測試案例時可動態引用並執行另一個測試案例,引用測試案例名稱格式如下: `TestSuiteName.TestCaseName` 底下範例中`LoginPageTestSuite`中的`LoginTestCase`將會被另一個測試案例引用並執行。 :::info IF | ${isSignedIn} == true | **INCLUDE | LoginPageTestSuite.LoginTestCase |** ELSE *Other Commands* END ::: ## TRY-CATCH 一個`TRY`指令須配對一個`END`指令,並配對最多一個`CATCH`指令。當`TRY`-`CATCH`區間中任何一個指令執行失敗時,區間中剩餘的指令將不被執行,並且測試案例不會被標示為失敗,此時將接續執行`CATCH`-`END`區間的指令。底下為兩個合法的範例: :::info **Example 1 (TRY-CATCH-END)** TRY *Commands May Fail* CATCH *Other Commands* END ::: :::info **Example 2 (TRY-END)** TRY *Commands May Fail* END :::