XUnit 테스트 자습서: XUnit에서 첫 번째 스크립트 실행
어떤 테스트 프레임워크를 사용하든지 간에 Selenium 테스트는 로컬 Selenium 격자 및 원격 또는 구름 기반 Selenium 격자에서 실행할 수 있습니다.본 xUnit 테스트 강좌에서 소개한 테스트 용례는 로컬 Selenium 격자에서 실행된다. 즉, 목표 웹 브라우저, 브라우저에 대응하는Selenium WebDriver, Selenium 테스트 프레임워크 등이 테스트를 촉발하는 기계에 존재한다.
개시하다
각 웹 브라우저에는 해당 WebDriver가 있으며, Selenium API를 사용하여 브라우저를 호출하기 전에 드라이버를 설치해야 합니다.xUnit 테스트 프레임 설정의 경우 대상 웹 페이지에 사용할 예제가 Chrome 브라우저에서 열립니다.따라서 Chrome WebDriver xUnit가 있는 기계에 설치해야 한다.net 및 Selenium 테스트 자동화 프레임워크가 설치되었습니다.
다음은 Chrome, Firefox, Internet Explorer, Microsoft Edge, Safari 등의 인기 브라우저에 대한 Selenium 드라이버를 다운로드할 위치입니다.
브라우저
다운로드 위치
오페라 하우스
https://github.com/operasoftware/operachromiumdriver/releases
불여우
https://github.com/mozilla/geckodriver/releases
크롬
http://chromedriver.chromium.org/downloads
Internet Explorer
https://github.com/SeleniumHQ/selenium/wiki/InternetExplorerDriver
Microsoft 에지
https://blogs.windows.com/msedgedev/2015/07/23/bringing-automated-testing-to-microsoft-edge-through-webdriver/
이 xUnit 테스트 자습서에서는 Chrome 브라우저를 사용하여 테스트를 수행합니다.위의 위치에서 Selenium WebDriver for Chrome을 다운로드하여 Chrome 브라우저(즉 Chrome.exe)가 설치된 디렉토리에 설치합니다.
위에서 설명한 설치 절차를 따르는 경우 코어에서 브라우저를 호출할 때 Chrome WebDriver 위치를 지정할 필요가 없습니다.
C#, xUnit 및 Selenium WebDriver 프레젠테이션
Selenium WebDriver와 C#와 xUnit 테스트 프레임워크의 결합 사용을 보여주기 위해 아래의 테스트 장면을 살펴보자-
구현
using Xunit;
using System;
using OpenQA.Selenium;
using OpenQA.Selenium.Chrome;
namespace xUnit_Test_Cross_Browser
{
public class UnitTest
{
String test_url = "https://lambdatest.github.io/sample-todo-app/";
String itemName = "Yey, Let's add it to list";
[Fact]
public void NavigateToDoApp()
{
IWebDriver driver;
driver = new ChromeDriver();
driver.Navigate().GoToUrl(test_url);
driver.Manage().Window.Maximize();
Assert.Equal("Sample page - lambdatest.com", driver.Title);
// Click on First Check box
IWebElement firstCheckBox = driver.FindElement(By.Name("li1"));
firstCheckBox.Click();
// Click on Second Check box
IWebElement secondCheckBox = driver.FindElement(By.Name("li2"));
secondCheckBox.Click();
// Enter Item name
IWebElement textfield = driver.FindElement(By.Id("sampletodotext"));
textfield.SendKeys(itemName);
// Click on Add button
IWebElement addButton = driver.FindElement(By.Id("addbutton"));
addButton.Click();
// Verified Added Item name
IWebElement itemtext = driver.FindElement(By.XPath("/html/body/div/div/div/ul/li[6]/span"));
String getText = itemtext.Text;
Assert.True(itemName.Contains(getText));
/* Perform wait to check the output */
//System.Threading.Thread.Sleep(4000);
Console.WriteLine("LT_ToDo_Test Passed");
driver.Quit();
}
}
}
코드 연습
첫 번째 단계는 다른 어떤 테스트 프레임워크와 마찬가지로 실제 테스트를 시작하기 전에 필요한 가방을 포함한다.xUnit, Selenium 및 Chrome WebDriver가 포함됩니다.
using Xunit;
using System;
using OpenQA.Selenium;
using OpenQA.Selenium.Chrome;
……………………………………………………………………………..
……………………………………………………………………………..
2단계 – API가 입력 매개변수를 수용하지 않는 비패라메트릭 테스트이므로 [Fact] 속성을 사용하여 테스트 실행 프로그램이 실행되는 테스트 방법을 설명합니다.이 예에서 사용하는 테스트 방법은 NavigateToDoApp()입니다.[Fact]
public void NavigateToDoApp()
{
IWebDriver driver;
driver = new ChromeDriver();
……………………………………
……………………………………
3단계 – IWebDriver는 사용자가 웹 브라우저를 제어하는 인터페이스로 사용됩니다.명령driver = new ChromeDriver()
을 사용하여 Chrome 브라우저의 새 인스턴스를 만듭니다.테스트 URL은 https://lambdatest.github.io/sample-todo-app/이고
driver.Navigate().GoToUrl(test_url)
설정을 사용합니다.Selenium API Manage()를 호출하여 브라우저 창을 최대화합니다.창문.최대화().public void NavigateToDoApp()
{
IWebDriver driver;
// Local Selenium WebDriver
driver = new ChromeDriver();
driver.Manage().Window.Maximize();
driver.Navigate().GoToUrl(test_url);
driver.Manage().Window.Maximize();
4단계 – 자동화 테스트를 수행하는 요소에 대해 웹 포지셔닝 머신(예를 들어 이름, ID, XPath 등)을 사용해야 합니다. Chrome 브라우저의 Inspect 도구는 웹 요소에 대한 상세한 정보를 얻는 데 사용됩니다.아래 화면 캡처와 같이 요소'li1'은 이름 웹locator를 사용하여 위치를 정합니다.우리도 같은 방법으로 다른 li2, li3이라는 웹 요소를 포지셔닝한다.다른 요소는 이러한 요소의 Id를 사용하여 배치됩니다.이러한 웹 요소에 대한 자세한 정보를 얻으면 적절한 Selenium 명령을 사용하여 웹 요소에 대한 작업을 수행합니다.
[Fact]
public void NavigateToDoApp()
{
IWebDriver driver;
...............................................................
...............................................................
...............................................................
// Click on First Check box
IWebElement firstCheckBox = driver.FindElement(By.Name("li1"));
firstCheckBox.Click();
// Click on Second Check box
IWebElement secondCheckBox = driver.FindElement(By.Name("li2"));
secondCheckBox.Click();
// Enter Item name
IWebElement textfield = driver.FindElement(By.Id("sampletodotext"));
textfield.SendKeys(itemName);
...............................................................
...............................................................
...............................................................
}
FindElement 명령은 웹 페이지의 웹 요소를 식별하는 데 사용됩니다.모든 웹 요소를 찾으면 웹 요소에 대한 적절한 동작을 수행합니다. 즉, 특정한 체크 상자를 선택하고, 키를 보내서 텍스트나 텍스트 상자를 입력하는 등입니다.// Click on Second Check box
IWebElement secondCheckBox = driver.FindElement(By.Name("li2"));
secondCheckBox.Click();
// Enter Item name
IWebElement textfield = driver.FindElement(By.Id("sampletodotext"));
textfield.SendKeys(itemName);
5단계 - 새 항목 (예, 목록에 추가하겠습니다) 도 목록에 추가됩니다.새로 추가한 항목의 내용이 테스트 코드에 제공된 텍스트와 일치하지 않으면 Assert가 발생합니다.[Fact]
public void NavigateToDoApp()
{
.......................................................................... .......................................................................... .......................................................................... // Verified Added Item name
IWebElement itemtext = driver.FindElement(By.XPath("/html/body/div/div/div/ul/li[6]/span"));
String getText = itemtext.Text;
Assert.IsTrue(itemName.Contains(getText));
테스트가 완료되면 Quit 명령(driver.Quit)을 호출하여 WebDriver 세션을 종료하고 Chrome WebDriver에서 사용하는 리소스를 방출합니다.[Fact]
public void NavigateToDoApp()
{
.......................................................................... .......................................................................... ..........................................................................
Console.WriteLine("LT_ToDo_Test Passed");
driver.Quit();
}
실행
NavigateToDoApp 테스트 용례를 실행하려면 테스트로 이동하여 Run All Tests를 누릅니다.
테스트 실행 진도는 테스트 자원 관리자 창에서 볼 수 있습니다.테스트 리소스 매니저 창을 열려면 보기 -> 테스트 리소스 매니저로 이동합니다.
테스트 용례의 녹색 체크 표시, 즉 NavigateToDoApp은 실행 상태를 나타낸다.스냅샷을 실행한 것처럼 테스트가 성공적으로 수행되었습니다.
다음은 Chrome 브라우저에서 수행된 테스트 용례입니다.
결론
이 xUnit 테스트 강좌에서 우리는 Selenium test automation C# & xUnit 테스트 프레임워크를 어떻게 사용하는지 이해했다.xUnit 테스트 튜토리얼의 일부로 시연된 ToDoApp 테스트의 실현을 철저히 이해하는 것이 중요하다.C#, Selenium 및 xUnit을 사용하여 더욱 복잡한 테스트를 수행할 수 있는 기반을 마련했습니다.net(또는 xUnit) 테스트 프레임워크이 xUnit 테스트 강좌 시리즈에서, 우리는 곧 더 많은 재미있는 블로그로 돌아갈 것이다.기대하세요.
그때까지 즐거운 테스트!
Reference
이 문제에 관하여(XUnit 테스트 자습서: XUnit에서 첫 번째 스크립트 실행), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://dev.to/himanshusheth004/xunit-testing-tutorial-running-first-script-in-xunit-5f9d텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)