---
# System prepended metadata

title: Hands-on/Practice1

---

# Hands-on/Practice1

{%hackmd 48QQ4miqSxmUyp2CZ-kBSw %}

## 測試步驟

:::info
:heart: 這裡只是測試步驟，真正的題目在下一段[**說明**](#說明)，看完測試步驟先往下看，就知道要做什麼了。
:::

- [Setup](#Steup)
- [初始條件](#初始條件)
- [事件](#事件)
- [期待結果](#期待結果)

### Setup
1. 登入DUT

### 初始條件

2. 關閉cellular 5g band 28

```bash
                    MOXA TAU-504 Series   V1.0 build 21052716
--------------------------------------------------------------------------------
45678# configure terminal
45678(config)# no cellular 5g band 28
45678(config)# exit
```

3. 列出cellular資訊
``` bash
45678# show cellular
Cellular Connection : Enable
APN Name : internet
5G Band 28 : Disable
5G Band 41 : Disable
5G Band 78 : Disable
5G Band 79 : Disable
Cellular Connection Status : Disable
Cellular Attach Status : Attached
Signal Status
RAT : LTE , RSRQ : -3 , SNR : 21.000000
Service Provider Full Name : Chunghwa Telecom
Service Provider Short Name : Chunghwa
Registered PLMN : 46692
Module Manufacturer : Quectel
Module Name : Quectel
Firmware Version : Quectel
IMEI : 863305040253832
IMSI : 466924202921817
ICCID : 89886920042029218174
Temperature Sensor - qfe_wtr_pa0 : 35 Celsius
Temperature Sensor - aoss0_usr : 33 Celsius
Temperature Sensor - mdm_q6_usr : 33 Celsius
Temperature Sensor - ipa_usr : 33 Celsius
Temperature Sensor - cpu0_a7_usr : 33 Celsius
Temperature Sensor - mdm_5g_usr : 33 Celsius
Temperature Sensor - mdm_core_usr : 32 Celsius
Temperature Sensor - mdm_vpe_usr : 33 Celsius
Temperature Sensor - xo_therm_usr : 255 Celsius
Temperature Sensor - sdx_case_therm_usr : 255 Celsius
PIN Protection : Enable
PIN Retry Count : 3
Neighbour Cell [1] :
RAT : WCDMA , RSSI : 10 , ECIO : 0.000000
Neighbour Cell [2] :
RAT : WCDMA , RSSI : 10 , ECIO : 0.000000
```

### 事件
4. 輸入下列指令，開啟cellular 5g band 28
``` bash
45678# configure terminal
45678(config)# cellular 5g band 28
45678(config)# exit
```

5. 並輸入下列指令，列出cellular資訊
``` bash
45678# show cellular
Cellular Connection : Enable
APN Name : internet
5G Band 28 : Enable
5G Band 41 : Disable
5G Band 78 : Disable
5G Band 79 : Disable
Cellular Connection Status : Disable
Cellular Attach Status : Attached
Signal Status
RAT : LTE , RSRQ : -3 , SNR : 21.000000
Service Provider Full Name : Chunghwa Telecom
Service Provider Short Name : Chunghwa
Registered PLMN : 46692
Module Manufacturer : Quectel
Module Name : Quectel
Firmware Version : Quectel
IMEI : 863305040253832
IMSI : 466924202921817
ICCID : 89886920042029218174
Temperature Sensor - qfe_wtr_pa0 : 35 Celsius
Temperature Sensor - aoss0_usr : 33 Celsius
Temperature Sensor - mdm_q6_usr : 33 Celsius
Temperature Sensor - ipa_usr : 33 Celsius
Temperature Sensor - cpu0_a7_usr : 33 Celsius
Temperature Sensor - mdm_5g_usr : 33 Celsius
Temperature Sensor - mdm_core_usr : 32 Celsius
Temperature Sensor - mdm_vpe_usr : 33 Celsius
Temperature Sensor - xo_therm_usr : 255 Celsius
Temperature Sensor - sdx_case_therm_usr : 255 Celsius
PIN Protection : Enable
PIN Retry Count : 3
Neighbour Cell [1] :
RAT : WCDMA , RSSI : 10 , ECIO : 0.000000
Neighbour Cell [2] :
RAT : WCDMA , RSSI : 10 , ECIO : 0.000000
```

### 期待結果
6. 檢查前一步驟所列出的內容，須包含「`5G Band 28 : Enable`」

## 說明
- 目的: 
    - 了解Test Case與Implement Code的對應關係。
    - 學習利用`git`開啟新的branch和commit。
- 根據[測試步驟](#測試步驟)，將撰寫好的**Implememt Code**回填到名為「Cellular Band Setting」的Test Case中，以完成自動化，如下圖所示。
![](https://i.imgur.com/KRrL5uV.png)
:::info
:heart: 還是有點不清楚嗎？繼續照步驟做到[**Practice1 Robot**](#Practice1-Robot)和[**Practice1 Cucumber**](#Practice1-Cucumber)，你就會更清楚了！
:::

## 更新Local Repo
1. 下載repo/commit
    - 若還未載過repo，須從remote下載repo
    ```bash=
    git clone http://mhqnetgitlab.moxa.com:10080/SimonWX_Zhao/auto-test-practice.git
    ```

    - 如果已經載過repo那麼只需從remote下載新的commits
    ```bash=
    git fetch
    ```

2. 檢查tag，包含`practice1-c`、`practice1-r`、`practice1-ans-c`和`practice1-ans-r`就對了。

```bash=+
git tag
```

## Practice1 Robot
1. checkout到帶有`practice1-r`tag的commit。
```bash=
git checkout practice1-r
```
:::info
:bulb: 每次checkout後記得重新整理VSCode Explorer再開啟檔案。
:::

2. 確認現在位置在，`HEAD`和`tag: practice1-r`在同位置就對了。

```bash=+
git log --graph --all --oneline
```
![](https://i.imgur.com/VwtMCJv.png)


3. 從這個commit新增一個名為`my-practice1-r`的branch並移動到該branch上。

```bash=+
git checkout -b my-practice1-r
```
![](https://i.imgur.com/IfWcxZD.png)

4. 確認現在位置在，`HEAD`指到`my-practice1-r`就對了。
```bash=+
git log --graph --all --oneline
```
![](https://i.imgur.com/021GRnk.png)

3. 開始解題，並將你的更動[做commit](/H1voIxJwSA2f5gSs_xfDMQ#git-commit)

![](https://i.imgur.com/KRrL5uV.png)



4. 執行結果
```bash=+
robot -d result cellular.robot
```

5. 檢查執行結果
- terminal
![](https://i.imgur.com/TDjUeS8.png)

- log.html
![](https://i.imgur.com/APnrz9V.jpg)

7. 與標有`practice1-ans-r`的[commit比較](/H1voIxJwSA2f5gSs_xfDMQ#git-diff)，主要測試步驟沒有多或少就對了！



## Practice1 Cucumber
1. checkout到帶有`practice1-c`tag的commit。
```bash=
git checkout practice1-c
```
:::info
:bulb: 每次checkout後記得重新整理VSCode Explorer再開啟檔案。
:::

2. 確認現在位置在，`HEAD`和`tag: practice1-c`在同位置就對了。

```bash=+
git log --graph --all --oneline
```
![](https://i.imgur.com/XUJzciu.png)


3. 從這個commit新增一個名為`my-practice1-c`的branch並移動到該branch上。

```bash=+
git checkout -b my-practice1-c
```
![](https://i.imgur.com/NwjH4Kl.png)

4. 確認現在位置在，`HEAD`指到`my-practice1-c`就對了。
```bash=+
git log --graph --all --oneline
```
![](https://i.imgur.com/yb3lQiq.png)

3. 開始解題，並將你的更動[做commit](/H1voIxJwSA2f5gSs_xfDMQ#git-commit)

![](https://i.imgur.com/OzFRijP.png)

4. 執行結果
```bash=+
behave cellular.feature
```
或`--no-capture`會將print內容直接輸出
```bash=+
behave --no-capture cellular.feature
```

5. 檢查執行結果
- terminal
    ```bash=+
    behave cellular.feature
    ```
    ![](https://i.imgur.com/ipgN6XN.png)

    ```bash=+
    behave --no-capture cellular.feature
    ```
    - Enable/Disable Cellular Connection
    ![](https://i.imgur.com/gltEGfY.png)
    - Cellular Band Setting
    ![](https://i.imgur.com/z7ojpjb.png)

- log.html
    ```bash=+
    behave -f html -o log.html cellular.feature
    ```
    ![](https://i.imgur.com/H9buIoa.png)


7. 與標有`practice1-ans-c`的[commit比較](/H1voIxJwSA2f5gSs_xfDMQ#git-diff)，主要測試步驟沒有多或少就對了！