Zalenium Get Chrome Журналы консоли браузера - PullRequest
0 голосов
/ 07 января 2020

Я сейчас использую Docker с браузером Zalenium Chrome для параллельного выполнения теста. Я собираю журналы консоли по Driver.Manage().Logs.GetLog(LogType.Browser);, я не могу собрать журналы при выполнении набора тестов со стеком Zalenium, который я настроил. Я не видел никаких команд для этого на сайте Zalenium Docs.

Yaml, используемый для настройки узлов:

version: "3"
services:
  zaleniumChrome:
    image: dosel/zalenium
    container_name: zalenium_chrome
    hostname: zalenium
    tty: true
    ports:
      - "4444:4444"
    volumes:
      - /var/run/docker.sock:/var/run/docker.sock
      - c:\Automation\Data\Content:/tmp/node/var/Data/Content
    command: >
      start --videoRecordingEnabled false
            --desiredContainers 1
            --maxTestSessions 1
            --maxDockerSeleniumContainers 10
            --sauceLabsEnabled false
            --browserStackEnabled false
            --testingBotEnabled false
            --startTunnel false
            --sendAnonymousUsageInfo false

Использование ExtentReports для регистрации и распространения результатов теста в методе TearDown .

            var status = TestContext.CurrentContext.Result.Outcome.Status;
            Status logstatus = ExtentUtils.GetStatus(status);
            ExtentTestManager.GetTest().Log(logstatus, logstatus.ToString());

            var stacktrace = string.IsNullOrEmpty(TestContext.CurrentContext.Result.StackTrace)
                    ? "StackTrace:"
                    : string.Format("StackTrace: {0}", TestContext.CurrentContext.Result.StackTrace);
            ExtentTestManager.GetTest().Log(Status.Debug, stacktrace);
            ExtentTestManager.GetTest().Log(Status.Debug, "Error Message: " + TestContext.CurrentContext.Result.Message);

            //Collect the Javascript Console Log/Errors
            var entries = Driver.Manage().Logs.GetLog(LogType.Browser);
            foreach (var entry in entries)
            {
                ExtentTestManager.GetTest().Log(Status.Debug, "JavaScript Log: " + entry.ToString());
            }

ChromeOptions, которые я настроил для удаленного подключения:

private RemoteWebDriver GetRemoteDriver()
        {
            switch (TestContextParams.Browser.ToLower())
            {
                case "chrome":
                    var chromeOptions = GetChromeOptions();
                    chromeOptions.AddAdditionalOption("idleTimeout", "600");
                    chromeOptions.AddAdditionalOption("zal:name", TestContext.CurrentContext.Test.Name);
                    var chromeDriver = new RemoteWebDriver(new Uri(GetGridUrl(_appConfig.DockerIP)), chromeOptions.ToCapabilities(), TimeSpan.FromSeconds(180));
                    return chromeDriver;
                case "ie":
                    var ieDriver = new RemoteWebDriver(new Uri(GetGridUrl(_appConfig.IEGridIP)), GetIEOptions().ToCapabilities(), TimeSpan.FromSeconds(180));
                    return ieDriver;
                default:
                    throw new ArgumentException("Browser: " + TestContextParams.Browser + " is not valid!");
            }
        }
private ChromeOptions GetChromeOptions()
        {
            ChromeOptions chromeOptions = new ChromeOptions
            {
                PageLoadStrategy = PageLoadStrategy.Normal,
                AcceptInsecureCertificates = true
            };
            chromeOptions.SetLoggingPreference(LogType.Browser, LogLevel.All);
            chromeOptions.AddArguments(new List<string>() {
                "--incognito",
                "no-sandbox",
                "--disable-application-cache",
                "proxy-server='direct://'",
                "proxy-bypass-list=*",
                "--disable-dev-shm-usage"
            });

            switch (TestContextParams.Headless.ToLower())
            {
                case "true":
                    chromeOptions.AddArguments(new List<string>() {
                        "--silent-launch",
                        "--not-startup-window",
                        "--headless",
                        "--window-size=1920,1080",
                        "--start-maximized",
                        "--disable-extensions",
                        "--disable-gpu"
                    });

                    return chromeOptions;
                case "false":
                    return chromeOptions;
                default:
                    throw new ArgumentException("Headless parameter is not set properly");
            }
        }
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...