我正在尋找一種干凈的方法來測驗網頁上有 2 個不同用戶的所有功能。一個用戶是管理員,第二個是普通用戶。
這是我的硒測驗的概述:

如您所見,我們在網頁上有 3 個不同的功能:
- 開鎖指令
- 塔克
- 上傳代碼
這些功能中的每一個都有自己的測驗類和自己的webDriver,因此我能夠并行運行測驗。
這些測驗檔案中的每一個都在呼叫SetUp 中的登錄類。
什么是登錄類正在做的是:
- 使用 goToUrl 打開網站
- 獲取存盤在密碼管理器工具中的用戶名和密碼
- 使用selenium輸入用戶名、密碼點擊登錄
- 等到登錄后的頁面加載并回傳測驗方法
當我為一位用戶測驗時,一切都完美無缺。所有測驗并行運行。
現在我想用管理員用戶測驗所有相同的功能。
我想到的唯一方法是創建另一個 Login 類,它獲取其他用戶的憑據并復制 3 個測驗類,因此所有 6 個測驗并行運行。
但在我看來它并不干凈,因為我會復制 4 個檔案,這些檔案的代碼幾乎是 1:1。
uj5u.com熱心網友回復:
我會將用戶 id 和密碼引數設定為裝置。
- 使用引數化的 TestFixture(一個帶引數的)
- 為建構式提供相同的引數型別,以便 NUnit 可以將它們傳遞給您。
- 您的四個檔案將導致構建六個實體。
[TestFixture("normalUser", "normalUserPassword")]
[TestFixture("adminUser", "adminUserPassword")]
public class SomeFixture
{
private string User { get; }
private string Password { get; }
public SomeFixture(string user, string password)
{
User = user;
Password = password;
}
[OneTimeSetUp]
public void SetUpTheFixture()
{
// Create the driver
}
...
}
如果您更喜歡查找密碼,那么只需將用戶 ID 作為唯一引數,并在需要時查找密碼。
[TestFixture("normalUser")]
[TestFixture("adminUser")]
public class SomeFixture
{
private string User { get; }
public SomeFixture(string user)
{
User = user;
}
[OneTimeSetUp]
public void SetUpTheFixture()
{
// Look up password
// Create driver
}
...
}
轉載請註明出處,本文鏈接:https://www.uj5u.com/shujuku/381782.html
