![](/img/trans.png)
[英]Confuse about Robot Framework data-driven sample? What is “C${}=”?
[英]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.