我需要一個很好的做法來處理我的問題。如何在運行自動化測試之前配置環境?
問題是:我需要對站點運行自動測試。該網站有不同的配置,完全改變了它的設計(在一些頁面上)。例如,我可以配置2個不同的登錄頁面。我需要對它們進行測試。
首先我必須確保正確的測試是針對正確的配置運行的。所以在每次測試之前,我需要更改網站的配置。如果我有一千次測試是不好的。
因此我想到的一個解決方案是每次都不重新配置站點,而是隻做一次,並運行與此配置對應的所有測試。但是這個解決方案在我看來並不容易。
現在我所做的是:我創建了一個方法,在所有其他測試之前運行一次,在此方法中,我配置站點以在大多數測試中使用配置。所有其他測試現在在執行之前更改配置,並在執行之後將其更改回來。這根本不好。
要做到這一點我用NUnit3 SetUpFixture和OneTimeSetUp屬性:
/// <summary>
/// Runs once before all the test in order to config the environment
/// </summary>
[SetUpFixture]
public class ConfigTests
{
[OneTimeSetUp]
public void RunBeforeAnyTests()
{
IWebDriver driver = new ChromeDriver();
try
{
//Here I config the stie
CommonActions actions = new CommonActions(driver);
actions.SwitchOffCombinedPaymentPage();
driver.Dispose();
}
catch (Exception)
{
driver.Dispose();
}
}
}
我在這之後還以爲是什麼,我就可以將參數發送到SetUpFixture但首先它是不可能的,其次,它不會解決問題,因爲此功能只會運行兩次,測試將針對最後一次配置運行。
所以,夥計們,如何處理一個網站測試,有很多配置?