Как запустить все методы испытаний в тестовом классе драматурга, сохраняя при этом браузер открытым?C#

Место общения программистов C#
Ответить Пред. темаСлед. тема
Anonymous
 Как запустить все методы испытаний в тестовом классе драматурга, сохраняя при этом браузер открытым?

Сообщение Anonymous »

Я использую Playwright с C# для автоматизации тестов для моего приложения. Приложение требует шага входа в систему перед выполнением какого -либо теста. Моя цель состоит в том, чтобы: < /p>

[*] Войти в систему, когда тестовый класс начинает выполнять. < /Li>
Держите сеанс браузера открытым Запуск всех методов испытаний внутри тестового класса. < /li>
Закройте браузер только после последнего метода тестирования в завершении класса. < /li>
< /ol>
В настоящее время я использую Testinitialize для логики входа в систему, но это означает, что я должен запускать каждый метод испытания индивидуально. Если я запускаю все методы вместе, логика входа в систему выполняется перед каждым тестом, которого я хочу избежать. T Работайте как классификация , похоже, не поддерживает асинхронные методы Playwright. /> Реализация логики входа в классификацию , но я не мог бы использовать асинхро Логика входа в систему для выполнения перед каждым методом испытаний.
[*] Запуск методов испытаний один за другим, но это неэффективно. /> мой код: < /h3>
Вот упрощенная версия моей настройки теста: < /p>
using Microsoft.Playwright;
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;

namespace AutomationTestRuns
{
public abstract class BaseTest : PageTest
{
public override BrowserNewContextOptions ContextOptions()
{
return new BrowserNewContextOptions
{
ViewportSize = ViewportSize.NoViewport,
StorageStatePath = "state.json",
};
}

[TestInitialize]
public async Task Startup()
{
Page.SetDefaultTimeout(30000);

await Page.GotoAsync("https://practice.expandtesting.com/login");
await Page.Locator("#username").FillAsync("practice");
await Page.Locator("#password").FillAsync("SuperSecretPassword!");
await Page.Locator("xpath=//button[normalize-space()='Login']").ClickAsync();
}

[TestCleanup]
public async Task Cleanup()
{
await Page.WaitForTimeoutAsync(5000);
if (Page != null) await Page.CloseAsync();
if (Context != null) await Context.CloseAsync();
if (Browser != null) await Browser.CloseAsync();
}
}
}

namespace AutomationTestRuns
{
[TestClass]
public class TestClass1 : BaseTest
{
[TestMethod]
public async Task TestClass1_Method1()
{
await Page.WaitForURLAsync("https://practice.expandtesting.com/secure");

var h1 = Page.Locator("xpath=//h1[normalize-space()='Secure Area']");
Assert.IsNotNull(h1);

}

[TestMethod]
public async Task TestClass1_Method2()
{
await Page.WaitForURLAsync("https://practice.expandtesting.com/secure");

var h3 = Page.Locator("xpath=//h1[normalize-space()='Hi, practice!']");
Assert.IsNotNull(h3);
}
}
}

< /code>
Проблема: < /h3>
  • Я хочу, чтобы один раз вошел в систему, выполните все методы испытаний в TestClass1 < /code > и закройте браузер только после того, как последний метод испытаний завершится. < /li>
    Как я могу достичь этого в драматурге с C#? Есть ли конкретная конфигурация или команда для запуска всех методов испытаний в конкретном классе тестов при повторном использовании сеанса браузера?
repo url
из I запустить тестовый класс из Test Explorer < /p>


Любая помощь или руководство будут высоко оценены.

Подробнее здесь: https://stackoverflow.com/questions/794 ... he-browser
Реклама
Ответить Пред. темаСлед. тема

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

  • Похожие темы
    Ответы
    Просмотры
    Последнее сообщение

Вернуться в «C#»