Селен C #: как пропустить логин в тестовых методах - PullRequest
1 голос
/ 20 сентября 2019

Мне нужно протестировать веб-приложение на c # selenium, и перед проверкой всех функций необходимо войти в систему.Есть ли способ пропустить шаги входа в мои тесты?поскольку они повторяются и тратят время ... Я читал о сохранении данных для входа в cookie, но не уверен, как и где добавить cookie и как их вызывать в тестовых методах.Кроме того, если я использую куки, я не смогу запустить их параллельно, добавив в них [Parallelizable]


namespace ParallelGrid {

[TestFixture]
[Parallelizable]
public class ParallelGrid1
{
    public static IWebDriver driver;
      [SetUp]
       public void Setup()
       {
          ChromeOptions options = new ChromeOptions();
          driver = new ChromeDriver();
       }

    [Test]
    public void Test1()
    {
        driver.Navigate().GoToUrl(" ");
        //enter username
        //enter password
        //press submit
       //go to home screen
       //perform test 1
    }

    [Test]      
        public void Test2()
        {         
        driver.Navigate().GoToUrl(" ");
        //enter username
        //enter password
        //press submit
        //go to home screen
        //perform test 2
        }

       [Test]      
        public void Test3()
        {         
        driver.Navigate().GoToUrl(" ");
        //enter username
        //enter password
        //press submit
        //go to home screen
        //perform test 3
        }
    }
}'''

Ответы [ 2 ]

0 голосов
/ 21 сентября 2019

Вы можете использовать user-data-dir внутри chromeoptions для сохранения данных профиля, их вы можете проверить, вошли ли вы в систему в начале каждого теста.

Пример:

 public void Setup ( )
{
    string ProfileDirect=Directory.GetCurrentDirectory()+"\\MyProfile";
    if ( !Directory.Exists ( ProfileDirect ) )
    {
        //create data folder if not exist 
        Directory.CreateDirectory ( ProfileDirect );
    }
    // Create new option with data folder 
    var options=new ChromeOptions();
    options.AddArgument ( @"user-data-dir="+ProfileDirect );
    // Instance new Driver , with our current profile data.
    Driver=new ChromeDriver(options);
    if ( !IsLoggedIn ( ) )
    {
        Login ( );
    }

}
public bool IsLoggedIn ( )
{
    // Check if button logout is visible
    return Driver.FindElement(By.XPath ( "//a[contains(@href,'logout')]" ))!=null;
}

public void Login ( )
{
    //Some code to login
}

После первого выполнения куки будут сохранены в папке профиля, а после второго выполнения вы будете зарегистрированы, их вы можете вызывать каждый тест без входа в каждыйодин

0 голосов
/ 20 сентября 2019

Добавьте driver.Url = "http:/yoururlhere к [SetUp], поскольку оно выполняется один раз перед каждым тестом

https://nunit.org/docs/2.2.10/fixtureSetup.html

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...