From 87c6c2576474897b7137cde0e2842791d788c023 Mon Sep 17 00:00:00 2001 From: akhivyk Date: Thu, 22 Jun 2023 16:26:57 +0300 Subject: [PATCH] implement browsermob task --- .../solvd/carina/demo/MobilWorldWebTest.java | 59 ++++++++++++++++++- 1 file changed, 56 insertions(+), 3 deletions(-) diff --git a/src/test/java/com/solvd/carina/demo/MobilWorldWebTest.java b/src/test/java/com/solvd/carina/demo/MobilWorldWebTest.java index 335da4a..aea5aaa 100644 --- a/src/test/java/com/solvd/carina/demo/MobilWorldWebTest.java +++ b/src/test/java/com/solvd/carina/demo/MobilWorldWebTest.java @@ -1,19 +1,27 @@ package com.solvd.carina.demo; +import com.browserup.bup.BrowserUpProxy; +import com.browserup.bup.proxy.CaptureType; +import com.browserup.harreader.model.Har; +import com.browserup.harreader.model.HarEntry; +import com.browserup.harreader.model.HarRequest; +import com.browserup.harreader.model.HarResponse; import com.solvd.carina.demo.gui.mobilworld.components.PopUpLoginWindow; import com.solvd.carina.demo.gui.mobilworld.components.TopMenu; import com.solvd.carina.demo.gui.mobilworld.desktop.*; import com.zebrunner.agent.core.annotation.TestRailCaseId; import com.zebrunner.carina.core.AbstractTest; +import com.zebrunner.carina.proxy.ProxyPool; +import com.zebrunner.carina.proxy.browserup.CarinaBrowserUpProxy; import com.zebrunner.carina.utils.R; -import jdk.jfr.Name; import org.apache.logging.log4j.LogManager; import org.apache.logging.log4j.Logger; -import org.openqa.selenium.Cookie; -import org.openqa.selenium.WebDriver; +import org.openqa.selenium.*; +import org.openqa.selenium.remote.CapabilityType; import org.testng.Assert; import org.testng.annotations.Test; +import java.util.List; import java.util.Set; public class MobilWorldWebTest extends AbstractTest { @@ -173,4 +181,49 @@ public void testOpenWebSiteWithCookie() { } Assert.assertTrue(cookieFound, "Cookie " + cookieName + " with value " + cookieValue + " not found"); } + + + @Test + public void testValidateFoundCallUsingProxy() { + R.CONFIG.put("browserup_proxy", "true", true); + R.CONFIG.put("proxy_type", "DYNAMIC", true); + R.CONFIG.put("proxy_port", "0", true); + + getDriver(); + + BrowserUpProxy browserUpProxy = ProxyPool.getOriginal(CarinaBrowserUpProxy.class) + .orElseThrow() + .getProxy(); + browserUpProxy.enableHarCaptureTypes(CaptureType.REQUEST_CONTENT, CaptureType.RESPONSE_CONTENT); + browserUpProxy.newHar(); + + Capabilities capabilities = ((HasCapabilities) getDriver()).getCapabilities(); + Assert.assertNotNull(capabilities.getCapability(CapabilityType.PROXY), "Proxy capability should exists."); + + getDriver().get("https://www.solvd.com/"); + + BrowserUpProxy proxy = ProxyPool.getOriginal(CarinaBrowserUpProxy.class) + .orElseThrow() + .getProxy(); + + Har har = proxy.getHar(); + List entries = har.getLog().getEntries(); + + boolean isEventSent = false; + + for (HarEntry entry : entries) { + HarRequest request = entry.getRequest(); + if (request.getUrl().contains("https://rest.happierleads.com")) { + isEventSent = true; + + HarResponse response = entry.getResponse(); + String responseBody = response.getContent().getText(); + + Assert.assertTrue(responseBody.contains("data")); + break; + } + } + + Assert.assertTrue(isEventSent); + } }