Automation tests 5 — Code Architecture 之一




以下從上到下介紹:



gherkins 語法


就是 given-when-then 的寫法,given 前條件,when 做了某些操作,then 預期的結果。

其實啊,你仔細想想,這些步驟全部都要成功,這一個 test 才算成功,所以 given, when, then 其實都是 And。

gherkins 語法描述的是業務目標,比如說:


這個講的就是,首購的新會員填完實名制資料後,可以用免費序號買東西。

given-when-then 是放在 feature 檔裡面,這裡面會有一個 feature,多個 scenario,每一個 scenario 可以有一個 tag,所以長得會像這樣:


tag 是,你在執行的時候,可以下參數: --tags @first_buy_001

就只會執行這個 tag 的 scenario 了。

given-when-then 是 100% 可以跨平台共用的,100% 給地球人看的。用 given-when-then 寫出來的東西,應該要成為業務單位與工程單位的溝通基礎,應該要在一開始的 PBI 的驗收條件就用這樣的格式寫,然後 RD 去開發、我們來寫 automation。



step_definition



每一個 Given (When, Then, And) 的句子,cucumber 系列會用 regular-expression 對應到某一塊 ruby 程式,而這程式是放在 step_definition 資料夾裡面的某個檔案。

比如說上面的第四步:And 在會員中心填寫實名制資料


在 Android 的實作是在 step_definitions/first_buy_flow_steps.rb 裡面:


在 ios 的實作是在 steps_definition/first_buy_flow_steps.rb


在 mWeb 的實作是在 step_definitions/first_buy_flow_steps.rb 裡面:



基本上,這些實作的動作是可以某個人把一個平台先寫出來以後,其他兩個平台可以拿去 copy 的,或許會因為某些原因需要做小幅的更動,但不至於每個平台要各自寫各自的一份 code,會很煩。

其他的 steps 也差不多,每個都可以某種程度上的 re-use。


留言