public void TestRenderSpecialCharacters() { VisualGridRunner runner = new VisualGridRunner(30); Eyes eyes = new Eyes(runner); eyes.SetLogHandler(TestUtils.InitLogHandler()); Configuration sconf = new Configuration(); sconf.SetTestName("Special Characters"); sconf.SetAppName("Special Characters Test"); sconf.AddBrowser(800, 600, BrowserType.CHROME); sconf.SetBatch(TestDataProvider.BatchInfo); eyes.SetConfiguration(sconf); ChromeDriver driver = SeleniumUtils.CreateChromeDriver(); eyes.Open(driver); driver.Url = "https://applitools.github.io/demo/TestPages/SpecialCharacters/index.html"; eyes.Check("Test Special Characters", Target.Window().Fully()); driver.Quit(); eyes.Close(); TestResultsSummary allResults = runner.GetAllTestResults(); }
public void TestDoubleOpenCheckCloseWithDifferentInstances(bool useVisualGrid) { IWebDriver driver = SeleniumUtils.CreateChromeDriver(); driver.Url = "https://applitools.github.io/demo/TestPages/VisualGridTestPage/"; EyesRunner runner = useVisualGrid ? (EyesRunner) new VisualGridRunner(10) : new ClassicRunner(); runner.SetLogHandler(TestUtils.InitLogHandler()); string suffix = useVisualGrid ? "_VG" : ""; try { Eyes eyes1 = new Eyes(runner); eyes1.Batch = TestDataProvider.BatchInfo; eyes1.Open(driver, "Applitools Eyes SDK", nameof(TestDoubleOpenCheckCloseWithDifferentInstances) + suffix, new RectangleSize(1200, 800)); eyes1.Check(Target.Window().Fully().IgnoreDisplacements(false).WithName("Step 1")); eyes1.Close(false); Eyes eyes2 = new Eyes(runner); eyes2.Batch = TestDataProvider.BatchInfo; eyes2.Open(driver, "Applitools Eyes SDK", nameof(TestDoubleOpenCheckCloseWithDifferentInstances) + suffix, new RectangleSize(1200, 800)); eyes2.Check(Target.Window().Fully().IgnoreDisplacements(false).WithName("Step 2")); eyes2.Close(false); } finally { driver.Quit(); } TestResultsSummary allTestResults = runner.GetAllTestResults(false); Assert.AreEqual(2, allTestResults.Count); }
public void ViewportsTest() { WebDriverProvider webdriverProvider = new WebDriverProvider(); IServerConnectorFactory serverConnectorFactory = new MockServerConnectorFactory(webdriverProvider); ILogHandler logHandler = TestUtils.InitLogHandler(); VisualGridRunner runner = new VisualGridRunner(30, nameof(ViewportsTest), serverConnectorFactory, logHandler); Eyes eyes = new Eyes(runner); Configuration sconf = new Configuration(); sconf.SetBatch(TestDataProvider.BatchInfo); sconf.SetTestName("Viewport Size Test"); sconf.SetAppName("Visual Grid Viewports Test"); sconf.SetHideScrollbars(true); sconf.SetStitchMode(StitchModes.CSS); sconf.SetForceFullPageScreenshot(true); sconf.SetMatchLevel(MatchLevel.Strict); int numOfBrowsers = 0; foreach (BrowserType b in Enum.GetValues(typeof(BrowserType))) { #pragma warning disable CS0618 // Type or member is obsolete if (b == BrowserType.EDGE) { continue; } #pragma warning restore CS0618 // Type or member is obsolete sconf.AddBrowser(700, 500, b); sconf.AddBrowser(800, 600, b); numOfBrowsers++; } eyes.SetConfiguration(sconf); ChromeDriver driver = SeleniumUtils.CreateChromeDriver(); webdriverProvider.SetDriver(driver); try { eyes.Open(driver); driver.Url = "data:text/html,<html><body><h1>Hello, world!</h1></body></html>"; eyes.Check("Test Viewport", Target.Window().Fully()); } finally { driver.Quit(); } TestResultsSummary allResults = runner.GetAllTestResults(false); MockServerConnector serverConnector = (MockServerConnector)runner.ServerConnector; HashSet <RenderRequest> requests = new HashSet <RenderRequest>(); foreach (string requestJson in serverConnector.RenderRequests) { RenderRequest[] reqs = Newtonsoft.Json.JsonConvert.DeserializeObject <RenderRequest[]>(requestJson); foreach (RenderRequest req in reqs) { requests.Add(req); } } int browserCount = sconf.GetBrowsersInfo().Count; Assert.AreEqual(browserCount, numOfBrowsers * 2); Assert.AreEqual(browserCount, requests.Count); }
public void TearDown() { eyes.CloseAsync(); driver.Quit(); eyes.AbortIfNotClosed(); TestResultsSummary allTestResults = runner.GetAllTestResults(); }
public void AfterClass() { logger_.Verbose("calling renderingManager_.GetAllTestResults()"); TestResultsSummary allTestResults = renderingManager_.GetAllTestResults(); logger_.Log(allTestResults.ToString()); }
public void After() { TestResultsSummary resultSummary = renderingManager.GetAllTestResults(); renderingManager.Logger.Log(resultSummary.ToString()); webDriver.Quit(); }
public void TestMobileOnly() { VisualGridRunner runner = new VisualGridRunner(30); Eyes eyes = new Eyes(runner); eyes.SetLogHandler(TestUtils.InitLogHandler()); Configuration sconf = new Configuration(); sconf.SetTestName("Mobile Render Test"); sconf.SetAppName("Visual Grid Render Test"); sconf.SetBatch(TestDataProvider.BatchInfo); sconf.AddDeviceEmulation(DeviceName.Galaxy_S5); eyes.SetConfiguration(sconf); ChromeDriver driver = SeleniumUtils.CreateChromeDriver(); eyes.Open(driver); driver.Url = "https://applitools.github.io/demo/TestPages/DynamicResolution/mobile.html"; eyes.Check("Test Mobile Only", Target.Window().Fully()); driver.Quit(); eyes.Close(); TestResultsSummary allResults = runner.GetAllTestResults(); }
public void TestDoubleOpenCheckCloseAsync(bool useVisualGrid) { IWebDriver driver; EyesRunner runner; Eyes eyes; SeleniumUtils.InitEyes(useVisualGrid, out driver, out runner, out eyes); driver.Url = "https://applitools.github.io/demo/TestPages/VisualGridTestPage/"; string suffix = useVisualGrid ? "_VG" : ""; try { eyes.Open(driver, "Applitools Eyes SDK", nameof(TestDoubleOpenCheckCloseAsync) + suffix, new RectangleSize(1200, 800)); eyes.Check(Target.Window().Fully().IgnoreDisplacements(false).WithName("Step 1")); eyes.CloseAsync(); eyes.Open(driver, "Applitools Eyes SDK", nameof(TestDoubleOpenCheckCloseAsync) + suffix, new RectangleSize(1200, 800)); eyes.Check(Target.Window().Fully().IgnoreDisplacements(false).WithName("Step 2")); eyes.CloseAsync(); } finally { driver.Quit(); } TestResultsSummary allTestResults = runner.GetAllTestResults(false); Assert.AreEqual(2, allTestResults.Count); }
public void TestCleanUp() { _eyes.CloseAsync(); SiteDriver.Close(); TestResultsSummary allTestResults = runner.GetAllTestResults(); Console.WriteLine(allTestResults); }
private static void TearDown(IWebDriver webDriver, VisualGridRunner runner) { // Close the browser webDriver.Quit(); TestResultsSummary allTestResults = runner.GetAllTestResults(); System.Console.WriteLine(allTestResults); }
public void AfterTestSuite() { // Close the browser. _driver.Quit(); // If the test was aborted before eyes.close was called, ends the test as aborted. _eyes.AbortIfNotClosed(); //Wait and collect all test results TestResultsSummary allTestResults = _runner.GetAllTestResults(); }
public void AfterTestSuite() { // Wait until the test results are available and retrieve them TestResultsSummary allTestResults = runner.GetAllTestResults(false); foreach (var result in allTestResults) { HandleTestResults(result); } }
private static void TearDown(IWebDriver driver, EyesRunner runner) { driver.Quit(); // Wait and collect all test results // we pass false to this method to suppress the exception that is thrown if we // find visual differences TestResultsSummary allTestResults = runner.GetAllTestResults(false); // Print results Console.WriteLine(allTestResults); }
private void ValidateResults() { // Close the browser webDriver.Quit(); Console.WriteLine("Collecting results..."); //Wait and collect all test results TestResultsSummary allTestResults = runner.GetAllTestResults(); Console.WriteLine(allTestResults); }
private void Run() { // Create a new webdriver IWebDriver webDriver = new ChromeDriver(); // Navigate to the url we want to test webDriver.Url = "https://pnc.com/"; // Create a runner with concurrency of 10 VisualGridRunner runner = new VisualGridRunner(10); runner.SetLogHandler(TestUtils.InitLogHandler(nameof(PNCDemo))); // Create Eyes object with the runner, meaning it'll be a Visual Grid eyes. Eyes eyes = new Eyes(runner); // Create SeleniumConfiguration. Selenium.Configuration sconf = new Selenium.Configuration(); // Add browsers sconf.AddDeviceEmulation(DeviceName.Galaxy_S5); foreach (BrowserType b in Enum.GetValues(typeof(BrowserType))) { sconf.AddBrowser(700, 500, b); sconf.AddBrowser(800, 600, b); sconf.AddBrowser(900, 700, b); sconf.AddBrowser(1200, 800, b); sconf.AddBrowser(1600, 1200, b); } //sconf.AddDeviceEmulation(800, 640); // Set the configuration object to eyes eyes.SetConfiguration(sconf); // Call Open on eyes to initialize a test session eyes.Open(webDriver, "PNC Demo", "PNC Demo", new System.Drawing.Size(1000, 700)); eyes.Check("PNC", Target.Window().Fully().SendDom() .Layout(By.CssSelector("#main-header > div.highlighted-topics-tout-container-parsys.limited-parsys")) .Layout(By.CssSelector("#main-header > div.promo-parsys.limited-parsys")) .Ignore(By.CssSelector("#oo-feedback > img"))); // Close the browser webDriver.Quit(); // Close eyes and collect results TestResults results = eyes.Close(); TestResultsSummary allTestResults = runner.GetAllTestResults(); }
public void TestFailure() { VisualGridRunner visualGridRunner = new VisualGridRunner(10); visualGridRunner.SetLogHandler(TestUtils.InitLogHandler()); Size[] ViewportList = { new Size(800, 600), new Size(700, 500), new Size(1200, 800), new Size(1600, 1200) }; IWebDriver webDriver = SeleniumUtils.CreateChromeDriver(); webDriver.Url = "https://applitools.com/helloworld"; Eyes eyes = null; try { int resultsTotal = 0; foreach (Size viewport in ViewportList) { eyes = InitEyes_(null, webDriver, viewport); eyes.Check(Target.Window().Fully()); eyes.Close(); eyes = InitEyes_(visualGridRunner, webDriver, viewport); eyes.Check(Target.Window().Fully()); eyes.Close(); TestResultsSummary results = visualGridRunner.GetAllTestResults(); resultsTotal += results.Count; } Assert.AreEqual(4, resultsTotal); } catch (InvalidOperationException e) { if (e.Message.Equals("Eyes not open")) { Assert.Pass(); } } finally { webDriver?.Quit(); eyes?.Abort(); } }
public void AfterEach() { // Close the browser. driver.Quit(); // If the test was aborted before eyes.close was called, ends the test as aborted. eyes.AbortIfNotClosed(); //Wait and collect all test results // we pass false to this method to suppress the exception that is thrown if we // find visual differences TestResultsSummary allTestResults = runner.GetAllTestResults(false); // Print results Console.WriteLine(allTestResults); }
public void TestSpecialRendering(string url, string testName) { string logsPath = TestUtils.InitLogPath(); ILogHandler logHandler = TestUtils.InitLogHandler(logPath: logsPath); VisualGridRunner runner = new VisualGridRunner(30, logHandler); runner.DebugResourceWriter = new FileDebugResourceWriter(logsPath); Eyes eyes = new Eyes(runner); Configuration sconf = new Configuration(); sconf.SetTestName(testName); sconf.SetAppName("Visual Grid Render Test"); sconf.SetBatch(TestDataProvider.BatchInfo); sconf.AddDeviceEmulation(DeviceName.Galaxy_S5); sconf.AddBrowser(1200, 800, BrowserType.CHROME); sconf.AddBrowser(1200, 800, BrowserType.FIREFOX); // Edge doesn't support Shadow-DOM - returns an empty image. //sconf.AddBrowser(1200, 800, BrowserType.EDGE); // Internet Explorer doesn't support Shadow-DOM - fails to render and throws an error. //sconf.AddBrowser(1200, 800, BrowserType.IE_11); //sconf.AddBrowser(1200, 800, BrowserType.IE_10); eyes.SetConfiguration(sconf); ChromeDriver driver = SeleniumUtils.CreateChromeDriver(); try { eyes.Open(driver); driver.Url = url; Thread.Sleep(500); eyes.Check(testName, Target.Window().Fully()); eyes.Close(false); TestResultsSummary allResults = runner.GetAllTestResults(false); } finally { driver.Quit(); eyes.AbortIfNotClosed(); runner.StopServiceRunner(); } }
public void Trello_1532() { IWebDriver webDriver = new ChromeDriver(); ClassicRunner runner = new ClassicRunner(); webDriver.Url = "https://www.humana.com/medicare/medicare-supplement-plans/plan-g"; Eyes eyes = new Eyes(runner); eyes.SetLogHandler(new StdoutLogHandler(true)); Configuration conf = new Configuration(); conf.SetTestName("#31659") .SetAppName("Humana") .SetViewportSize(new Size(1200, 800)); eyes.SetConfiguration(conf); eyes.StitchMode = StitchModes.CSS; //eyes.HideCaret = false; eyes.Open(webDriver); webDriver.Manage().Timeouts().ImplicitWait = TimeSpan.FromSeconds(3); IReadOnlyCollection <IWebElement> TabsInPage = webDriver.FindElements(By.XPath("//button[@role='tab']")); if (TabsInPage.Count > 0) { By layout = By.CssSelector("#anchor-main-content > section:nth-child(2) > div > div > div.col-12.col-sm-12.col-md-4"); By ignore = By.CssSelector("#searchbox"); eyes.Check(Target.Window().Fully().WithName("Login page").Layout(layout).Ignore(ignore)); //This is fine TabsInPage.ElementAt(0).Click(); eyes.Check(Target.Window().Fully().WithName("Login page").Layout(layout).Ignore(ignore)); //This is wrong TabsInPage.ElementAt(1).Click(); eyes.Check(Target.Window().Fully().WithName("Login page").Layout(layout).Ignore(ignore)); } webDriver.Quit(); eyes.CloseAsync(); TestResultsSummary allTestResults = runner.GetAllTestResults(); TestContext.Progress.WriteLine(allTestResults); }
private async void btnStart_Click(object sender, System.EventArgs e) { var config = TryReadHttpTestConfig(); if (config == null) { MessageBox.Show(@"输入参数不合法"); return; } var testResults = await MainVo.StartTest(config); var summary = TestResultsSummary.Create(testResults.Items); var resultsDesc = TestResultsHelper.CreateResultsDesc(testResults, summary); this.txtResult.Text = resultsDesc; }
public void TestDefaultRenderingOfMultipleTargets() { IWebDriver driver = SeleniumUtils.CreateChromeDriver(); driver.Url = "https://applitools.com/helloworld"; VisualGridRunner runner = new VisualGridRunner(10); Eyes eyes = new Eyes(runner); Configuration config = eyes.GetConfiguration(); config.AddBrowser(800, 600, BrowserType.CHROME); config.AddBrowser(800, 600, BrowserType.FIREFOX); config.AddBrowser(1200, 800, BrowserType.CHROME); config.AddBrowser(1200, 800, BrowserType.FIREFOX); config.SetAppName(nameof(TestDefaultRendering)).SetTestName(nameof(TestDefaultRenderingOfMultipleTargets)); eyes.SetConfiguration(config); try { eyes.Open(driver); eyes.Check(Target.Window()); eyes.Close(); } finally { eyes.Abort(); driver.Quit(); } TestResultsSummary allTestResults = runner.GetAllTestResults(); string batchId = null; string batchName = null; foreach (TestResultContainer trc in allTestResults) { if (batchId == null) { batchId = trc.TestResults.BatchId; } if (batchName == null) { batchName = trc.TestResults.BatchName; } Assert.AreEqual(batchId, trc.TestResults.BatchId); Assert.AreEqual(batchName, trc.TestResults.BatchName); } }
public void TestSuccess() { ILogHandler logHandler = TestUtils.InitLogHandler(); VisualGridRunner visualGridRunner = new VisualGridRunner(10, logHandler); Size[] ViewportList = { new Size(800, 600), new Size(700, 500), new Size(1200, 800), new Size(1600, 1200) }; IWebDriver webDriver = SeleniumUtils.CreateChromeDriver(); webDriver.Url = "https://applitools.com/helloworld"; try { foreach (Size viewport in ViewportList) { Eyes eyes = InitEyes_(null, webDriver, viewport); eyes.Check(Target.Window().Fully()); eyes.CloseAsync(); try { eyes = InitEyes_(visualGridRunner, webDriver, viewport); eyes.Check(Target.Window().Fully()); eyes.CloseAsync(); } finally { eyes.AbortAsync(); } } TestResultsSummary results = visualGridRunner.GetAllTestResults(); Assert.AreEqual(ViewportList.Length, results?.Count); } finally { webDriver?.Quit(); } }
public void Test_VGTestsCount_1() { TestObjects testObjects = InitEyes_(); testObjects.Eyes.Batch = TestDataProvider.BatchInfo; try { testObjects.Eyes.Open(testObjects.WebDriver, "Test Count", "Test_VGTestsCount_1", new Size(640, 480)); testObjects.Eyes.Check("Test", Target.Window()); testObjects.Eyes.Close(); TestResultsSummary resultsSummary = testObjects.Runner.GetAllTestResults(); Assert.AreEqual(1, resultsSummary?.Count); } finally { testObjects.WebDriver.Quit(); testObjects.Eyes.Abort(); } }
public void TestUFGVisualViewport() { JsonSerializer serializer = JsonUtils.CreateSerializer(); IWebDriver driver = SeleniumUtils.CreateChromeDriver(); EyesRunner runner = new VisualGridRunner(10); Eyes eyes = new Eyes(runner); TestUtils.SetupLogging(eyes); Configuration config = eyes.GetConfiguration(); IosDeviceInfo iosDeviceInfo = new IosDeviceInfo(IosDeviceName.iPhone_11_Pro); config.AddBrowser(iosDeviceInfo); eyes.SetConfiguration(config); try { eyes.Open(driver, "Eyes Selenium SDK", "Eyes Selenium SDK - UFG Visual Viewport Test"); string inputJson = CommonUtils.ReadResourceFile("Test.Eyes.Selenium.DotNet.Resources.Misc.TestUFGVisualViewport_Input.json"); RenderStatusResults renderStatusResults = serializer.Deserialize <RenderStatusResults>(inputJson); driver.Url = "https://applitools.github.io/demo/TestPages/DynamicResolution/desktop.html"; eyes.Check(Target.Window().Fully()); eyes.Close(false); TestResultsSummary resultsSummary = runner.GetAllTestResults(false); Assert.AreEqual(1, resultsSummary.Count); TestResults results = resultsSummary[0].TestResults; SessionResults sessionResults = TestUtils.GetSessionResults(eyes.ApiKey, results); Assert.AreEqual(1, sessionResults.ActualAppOutput.Length); ActualAppOutput appOutput = sessionResults.ActualAppOutput[0]; Assert.AreEqual(980, appOutput.Image.Viewport.Width); Assert.AreEqual(1659, appOutput.Image.Viewport.Height); Assert.AreEqual(375, sessionResults.Env.DisplaySize.Width); Assert.AreEqual(812, sessionResults.Env.DisplaySize.Height); } finally { eyes.AbortIfNotClosed(); driver.Quit(); } }
public void TestExceptionInGetAllTestResults() { EyesRunner runner = new ClassicRunner(); Eyes eyes = new Eyes(runner); eyes.SaveNewTests = false; IWebDriver driver = SeleniumUtils.CreateChromeDriver(); driver.Url = "https://applitools.com/helloworld?diff1"; eyes.Open(driver, nameof(TestClassicRunnerExceptions), nameof(TestExceptionInGetAllTestResults), new Size(800, 600)); eyes.CheckWindow(); eyes.CloseAsync(); driver.Quit(); Assert.That(() => { TestResultsSummary results = runner.GetAllTestResults(); }, Throws.Exception); }
public void AfterScenario() { IWebDriver driver = null; try { driver = (IWebDriver)ScenarioContext.Current["WEBDRIVER"]; driver.Close(); driver.Quit(); driver = null; } catch (Exception e) { Console.WriteLine($"Selenium Web Driver not found to dispose. {e.Message}"); } finally { ScenarioContext.Current["WEBDRIVER"] = null; Console.WriteLine("After Scenario - Test Completed"); } //Close Eyes try { EyesRunner runner = (EyesRunner)ScenarioContext.Current["EYESRUNNER"]; Eyes eyes = (Eyes)ScenarioContext.Current["EYES"]; eyes.CloseAsync(); // If the test was aborted before eyes.close was called, ends the test as aborted. eyes.AbortIfNotClosed(); //Wait and collect all test results TestResultsSummary allTestResults = runner.GetAllTestResults(); }catch (Exception e) { } }
public void Test_VGTestsCount_4() { TestObjects testObjects = InitEyes_(); try { Configuration conf = new Configuration(); conf.SetBatch(TestDataProvider.BatchInfo); conf.SetAppName("Test Count").SetTestName("Test_VGTestsCount_4"); testObjects.Eyes.SetConfiguration(conf); testObjects.Eyes.Open(testObjects.WebDriver); testObjects.Eyes.Check("Test", Target.Window()); testObjects.Eyes.Close(); TestResultsSummary resultsSummary = testObjects.Runner.GetAllTestResults(); Assert.AreEqual(1, resultsSummary?.Count); } finally { testObjects.WebDriver.Quit(); testObjects.Eyes.Abort(); } }
private async void BtnStart_Click(object sender, EventArgs e) { var config = TryReadHttpTestConfig(); if (config == null) { MessageBox.Show(@"输入参数不合法"); return; } var testClientSpans = Vo.CreateTestClientSpans(config); var testResults = await Vo.StartTest(config, testClientSpans); var summary = TestResultsSummary.Create(testResults.Items); this.txtData.Text = testClientSpans.ToJson(true); this.txtUri.Text = config.TraceApiEndPoint; testResults.Data = string.Empty; var resultsDesc = TestResultsHelper.CreateResultsDesc(testResults, summary); this.txtResult.Text = resultsDesc; }
public void Test_VGTestsCount_2() { TestObjects testObjects = InitEyes_(); try { Configuration conf = new Configuration(); conf.SetBatch(TestDataProvider.BatchInfo); conf.AddBrowser(new DesktopBrowserInfo(900, 600)); conf.AddBrowser(new DesktopBrowserInfo(1024, 768)); testObjects.Eyes.SetConfiguration(conf); testObjects.Eyes.Open(testObjects.WebDriver, "Test Count", "Test_VGTestsCount_2"); testObjects.Eyes.Check("Test", Target.Window()); testObjects.Eyes.Close(); TestResultsSummary resultsSummary = testObjects.Runner.GetAllTestResults(); Assert.AreEqual(2, resultsSummary?.Count); } finally { testObjects.WebDriver.Quit(); testObjects.Eyes.Abort(); } }
public void AfterSuite() { visualGridRunner.Logger.Log("After class"); visualGridRunner.Logger.Log("iterating through all webdrivers in pool"); foreach (IWebDriver webDriver in webDrivers) { try { visualGridRunner.Logger.Log("calling webdriver.quit (2)"); webDriver.Quit(); } catch (Exception e) { visualGridRunner.Logger.Log("Error: " + e); } } if (visualGridRunner != null) { visualGridRunner.Logger.Log("calling GetAllTestResults()"); TestResultsSummary allTestResults = visualGridRunner.GetAllTestResults(); } }
/// <summary> /// Constructor allowing to specify result formatter and output file path. /// </summary> /// <param name="resultFormatter">Formatter.</param> /// <param name="filePath">Output file path.</param> public FeatureSummaryAggregator(IResultFormatter resultFormatter, string filePath) { _summary = new TestResultsSummary(resultFormatter); FilePath = filePath; }
public void SetUp() { _formatter = MockRepository.GenerateMock<IResultFormatter>(); _subject = new TestResultsSummary(_formatter); }