簡體   English   中英

在Robot Framework數據驅動方法中生成測試用例

[英]Generating test cases in Robot framework data-driven approach

我有一個問題,在使用測試模板時如何避免將測試數據硬編碼到Robot框架測試用例中。

我有以下測試用例:

Test template     Invalid Login
*** Test Cases ***    LOGIN             PASSWORD
Login admin           admin             ${INVALID_PWD}
Login student         student           ${INVALID_PWD}
Login learner         learner           ${INVALID_PWD}
Login staff           staff             ${INVALID_PWD}

等等...

只要沒有100個左右的登錄名和密碼,我就喜歡這種方法。 然后,我需要在這里對其進行硬編碼,這對我來說似乎有點麻煩。

我嘗試過的另一個方法是:

*** Test Cases ***
Mahara Invalid Login
[Template]    Invalid ${login} with ${password}
admin      aa
student    aa

這使它簡單了一點,但是我也不喜歡它,因為它只是一個包含多個不同步驟的測試用例,每個步驟都使用不同的測試數據。

我想要擁有的是登錄名和密碼列表,或者Python中的字典,並使Robot框架使用這些列表生成此類測試用例。 但是,我不知道是否可能。

我進行了搜索,並發現了此帖子: https : //stackoverflow.com/a/25206407/10401931看起來並不樂觀。

然后,我找到了幾種閱讀.csv的方法。 我可以在Python中實現這一目標,但並不能回答我的問題,即如何將在.csv中讀取的內容加載到Python的這種數據驅動方法中。 基本上,我認為可以歸結為如何強制測試模板遍歷給定的列表/字典。 由於測試模板基本上是一個for循環,因此可能有一種方法可以稍微更改此循環。 還是不在那里?

另一種方法是將整個.robot測試套件生成為Python文件。 同樣,我知道如何做到這一點,但是似乎對它進行了過度設計,我想找到一種更簡單的方法。

我希望能朝正確的方向稍加推動。

謝謝

只是為了在這里完成,我會回答我的問題。

以下測試用例完成了我想要的工作:

*** Test Cases ***
Mahara Invalid Login
[Template]    Invalid ${login} with ${password}
:FOR    ${login}    IN    @{invalid_logins.keys()}
\    ${login}    ${invalid_logins['${login}']}

在這種情況下,我正在從Python字典加載測試數據,其中的鍵是登錄名,值是密碼。

或者,我可以使用.csv文件並執行以下操作:

Mahara Invalid Login      
${all_rows}=    Get All Rows    ${invalid_login_file}    ${DELIMITER}    ${HEADER}
:FOR    ${row}    IN    @{all_rows} 
\    ${login}=    Set Variable    ${row[0]}
\    ${password}=    Set Variable    ${row[1]}
\    Invalid ${login} with ${password}

“獲取所有行”將是一個自定義關鍵字,用於從.csv文件加載數據。

在這兩個示例中,我不需要寫太多,只需准備測試數據並在Python中編寫一個for循環即可。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM