Selenium 및 Oxygen Flow를 사용한 매우 쉬운 UI 테스트 자동화
using Oxygen;
[TestClass]
public class Demo : Oxygen.Flow
{
[TestMethod]
public void SearchTestFF()
{
var result =
CreateContext(BrowserBrand.FireFox, new Uri("https://github.com/"))
| Find("input[type=text][name=q]")
| SetText("OxygenFlow")
| Click("ul[id=jump-to-results]");
Assert.IsFalse(result.HasProblem, result);
}
}
뼈에 약간의 "고기"가 있는 실제 프로덕션 테스트 코드는 다음과 같습니다(HR 역할이 사용자 계정 시작 및 종료 날짜를 변경하는 예).
[TestMethod]
public void RenewUserTest ()
{
string surname = null;
string startDate;
string status = string.Empty;
AssertNoProblem(
BaseContext
| LoginAs(HRUser.Credentials)
| OpenAdminMenu("Initate Exit")
| Use(SearchUser(0, "*0"), c =>
surname = GetSurnameFromUserDisplayName(c.Element.Text))
| PressEnter
| Find("#UserDetails-Startdate")
| UseElement((OpenQA.Selenium.Remote.RemoteWebElement e) => startDate = e.Text)
| SetText("#Enddate", DateTime.Today.AddDays(1).ToDDMMYYYY())
| SubmitAndConfirm
| OpenAdminMenu("Renew User")
| SearchFirstUser(surname + ",*")
| PressEnter
| SetText("#Startdate", "01/01/2017")
| SetText("#Enddate", "01/01/2028")
| SubmitAndConfirm
| GetUserStatus(surname, value => status = value)
| Assertion((context) => status.Contains("[active]"), $"Expected status: '[active]' instead of '{status}'")
);
}
이것은 C# 코드이지만 순수한 객체 지향 두뇌와 언어 자체에는 약간의 확장이 있을 수 있습니다. 기본적으로 함수형 프로그래밍 Maybe, Error 및 State 모나드의 아이디어를 적용한 것입니다. 기능적 구성 가능성과 같은 많은 유용한 기능을 제공합니다.
public static FlowStep SetText(string cssSelector, string text) =>
(Context context) => context | Find(cssSelector) | SetText(text);
위의 SetText(cssSelector, text)는 Find(cssSelector)와 SetText(text)의 두 가지 간단한 단계로 구성됩니다.
내 목표는 산만한 아티팩트가 없는 UI 테스트의 흐름을 가능한 한 명확하고 읽기 쉽게 만드는 것이었습니다. Selenium 라이브러리는 CSS 선택기를 사용한 검색을 지원하므로 테스트 중인 웹 페이지에서 탐색하는 데 필요한 모든 것이 있습니다. 위의 예를 보면 물론 반복되는 문자열 리터럴과 CSS 선택기를 문자열 상수로 이동합니다.
현재 GitHub OxygenFlow repo는 모든 Selenium 기능을 다루는 것과는 거리가 멀고 지금까지 필요한 것입니다.
자세한 내용은 https://github.com/karel66/OxygenFlow
Reference
이 문제에 관하여(Selenium 및 Oxygen Flow를 사용한 매우 쉬운 UI 테스트 자동화), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://dev.to/karel66/super-easy-ui-test-automation-with-selenium-and-oxygen-flow-ap1텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)