# 6/3 {%hackmd 1lpg7PuqRoaui6XyJcrylw %} ## 回顧Practice1 ### Cucumber :::info 如果你的Cucmber文字很難閱讀,一片全黑白,你可以在extension下載套件,搜尋這個套件並安裝 **Cucumber (Gherkin) Full Support** Robot的套件如下 **Robot Framework Intellisense** ::: #### Test Case - `cellular.feature` - Spoken Language + Gherkin style - `Feature` provide a high-level description of a software feature, and to group related scenarios. - `Scenario` illustrate a specific aspect of behavior of the application. - Steps: mapping to a function - `Background` allows you to add some context to the scenarios that follow it. - `Tag` to group related features, independent of your file and directory structure. #### Implement Code - python - use `@given`, `@when`, `@then` to mapping with `*.feature` ### Robot Framework #### Test Case - `cellular.robot` - Spoken Language + Robot Framework "Coding" Rules - Test data sections - Setting section: Importing test libraries, resource files and variable files. - Variable secrion: Defining variables that can be used elsewhere in the test data. - Test Cases secrion: Creating test cases from available keywords. - Setting - Library - Test Setup - Test Teardown - Variables - `${Scalar}`: when this syntax is used, the variable name is replaced with its value as-is. - `@{List}`: the list is expanded and individual items are passed in as separate arguments. - Test Cases - Test Case Name - Keywords: Mapping to a function. - function style - embedded style #### Implement Code - python - use `@library`, `@keyword` to mapping with `*.robot` ### 關於python import的套件 - from re import findall 用來正規畫的 - pprint 顯示會比較好看用的 - telnet lib 再重新包裝 keyword 1. function style - argument接在後面 - keyword 跟 argument用2個空格或1個tab隔開,否則會把argument誤以為是keyword的一部份 - keyword要放在testcase後面(robot framework會先抓keyword部分來compile) 2. embedded keyword style - 把argument放在keyword裡面 ## Template ## Q&A - Coding Style - 100 Template ## .robot 檔案中常見定義: 1. `*** Keywords ***` - 從現有的或是 Library 所提供的 Keyword,創建自己定義的 Keyword - ![](https://i.imgur.com/BFwx0J7.png) 2. `*** Test Cases ***` - 從可用的 Keywords 創建 Test case,測試腳本全由 Keywords 組成 - ![](https://i.imgur.com/AonqVJC.png) - 第23行使用`[Template]`,在 Test Case 中重複執行流程,其中只有變數不同,如第24行到第31行 - 觀察 `log.html` - ![](https://i.imgur.com/E0IBADA.png) - 而其使用的keywords則為自己定義的`The band "${number}" is "${init_state}" and then "${final_state}".` 3. `*** Settings ***` - 用來 Import 支援 Robot Framework 的 Library,甚至是其他資料或變數的文件 - 也可以定義 Test suites 和 Test cases。 4. `*** Variables ***` - 定義變數,該變數可以在測試文件中其他地方使用 - ![](https://i.imgur.com/E8D6QZn.png) - 如第7~9行所定義的變數為第2行所用