[英]How to run a single .feature file in a Playwright + Cucumber automation testing framework?
[英]Cucumber/Automation testing: How to approach the overall concept using javascript functions?
首先,讓我說我是javascript新手,剛剛起步。 這可能是一個廣泛的問題,但是我真的很想得到一個答案,這樣我才能理解整個概念/方法。 我正在閱讀一本名為《更多敏捷測試》的書,其中有一段關於自動化測試和頁面對象模式,以及以某種方式編寫自動化測試用例的非常有用的方法,因此,如果實際UI發生了變化,我只需要更改該對象/功能以及使用該對象/功能的所有其他測試用例在更改后將繼續起作用。
這是我在想的一個例子,假設我有以下黃瓜情況
Given I'm on some page
When I login
Then I must see some other page
這就是上面的情況。
我是否應該像執行某種功能那樣實現登錄代碼,該功能接收兩個用於登錄和密碼的參數,然后單擊UI上所需的字段/按鈕。 如果我具有該功能,則只需使用When('something'), function login() etc.
對於將來,如果我需要在其他測試用例中使用登錄名,則可以在給定或when語句中使用該函數。
這是正確的做法嗎?
您應該將登錄代碼實現為輔助函數,然后從登錄步驟中調用它。
當您開始開發系統登錄能力時,您將需要一個“登錄時”步驟,例如
Given I am registered
When I login
Then I should be logged in
完成后,可以按以下步驟重用此功能:
Given I am logged in
至於實現,我將使用ruby進行,您必須適應js。
# features/step_definitions/login_steps.rb
module LoginStepHelper
def login_as(user:)
# assumes user is an object that knows its email, password etc.
...
end
end
World LoginStepHelper
When I login
login_as user: @i # assumes you have setup who you are earlier
end
Given I am logged in
login_as user: @i
end
請注意,只要有許多不同的步驟定義可以登錄,就可以了,只要它們使用相同的幫助程序方法來完成實際工作即可。
我強烈建議您不要在鈎子或標簽之前使用它來控制登錄。 如果要編寫許多需要登錄才能執行某些操作的方案,請改用Background。
例如
Feature: Registering gives benefits
Background:
Given I am registered
And I am logged in
Scenario: Have a history
When I view my history
Then
...
而不是
Feature: Registering gives benefits
@logged_in
Scenario: Have a history
When I view my history
...
@hooks旨在控制事物運行方式的技術方面,例如@ wip,@ javascript不要將其用於業務功能。
最后,您可以從示例項目( https://github.com/diabolo/cuke_up/tree/master/features )的這套功能中更詳細地了解這一點。
身份驗證通常是所有測試的前提條件。 建議從黃瓜Wiki作為先決條件。
Given John has a Logged in
Then Navigate the Home Page
這樣,您可以對方案使用“預鈎”,可能需要使用標記,以便可以過濾掉不要求身份驗證作為前提條件的方案,例如失敗的身份驗證測試/方案。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.