python自動化測試框架之Behave 以行爲驅動開發,優雅地將文本用例與測試代碼融爲一體

@Author : Terry.Lee
@Time : 2019-10-24 12:16

1. python3安裝behave庫
pip3 install behave
2. 執行此命令查看中英關鍵字對照:

behave --lang-help zh-CN

Translations for Chinese simplified / 簡體中文
             And: 而且<
      Background: 背景
             But: 但是<
        Examples: 例子
         Feature: 功能
           Given: 假如<
        Scenario: 場景
Scenario Outline: 場景大綱
            Then: 那麼<
            When: 當<
3. step裝飾器的關鍵字
__all__ = [
    "given", "when", "then", "step",    # 首選的寫法
    "Given", "When", "Then", "Step"     # 同樣支持這種寫法
]

[Given]

在用戶或外部系統對被測系統做交互之前,使被測系統處於一個可知的狀態。在givens中要避免涉及用戶交互的操作。
在use case中,givens可以被理解爲前置條件precondition。也可以在Given中使用table來設置一些數據

[When]

描述用戶或外部系統施展的關鍵行爲。這個交互行爲會引起系統狀態的變化

[Then]

觀察結果。這個觀察的結果應該與feature描述的用戶價值business value/benefit相關聯。這個結果也應該是一個系統產生的
具體的結果而不是對用戶不可見,埋藏得很深的結果。對用戶不可見的結果也許會沒有business value。比如我們應該多驗證用戶看得見的結果而不是去數據庫裏面找結果

注: [and]和[but]會被當做when/given/then的一部分來執行。比如一個and屬於given step下,那麼and這個step就會變爲given的一部分


4. environment.py文件裏支持的一些方法:
before_step(context, step), after_step(context, step)
# 夾心餅乾,步驟"step"相當於中間的奶油,順序: before_step > step > after_step

before_scenario(context, scenario), after_scenario(context, scenario)
# 漢堡包,場景"scenario"相當於中間的食材,順序: before_scenario > scenario > after_scenario

before_feature(context, feature), after_feature(context, feature)
# 大夾心餅乾,在每個feature文件包含很多的步驟,就像有很多層奶油,順序: before_feature > feature > after_feature

before_tag(context, tag), after_tag(context, tag)
# 小蜜蜂,有tag裝飾(花)的每個場景前後執行,順序: before_tag > 被tag裝飾的場景 > after_tag

before_all(context), after_all(context)
# 安檢員,在你旅程開始和結束時運行,順序: before_all > 整個測試過程 > after_all
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章