首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >无法在GitLab中运行Serenity Selenium测试

无法在GitLab中运行Serenity Selenium测试
EN

Stack Overflow用户
提问于 2022-02-16 18:55:27
回答 1查看 600关注 0票数 0

我试图在GitLab管道中运行我的Selenium测试,但是我得到了DriverConfigurationError错误

代码语言:javascript
复制
[main] INFO  - STEP FAILURE: net.thucydides.core.pages.WrongPageError: The page object class testing.pages.LoginPage could not be instantiated:
 Failed to instantiate page (net.thucydides.core.webdriver.DriverConfigurationError: Could not instantiate class org.openqa.selenium.chrome.ChromeDriver)

我使用了下面的gitlab-ci.yml代码。

代码语言:javascript
复制
image: maven:3.5.3-jdk-8-alpine

stages:
  - test

variables:
  ENV: "qct"
  MAVEN_CLI_OPTS: "--batch-mode"

build:
  stage: test
  allow_failure: true
  services:
    - name: selenium/standalone-chrome     
      alias: selenium
  script:
    - echo "Executing BDD scenarios with maven"
    - mvn clean verify -Dcucumber.options=src/test/resources/features/Login.feature -Denv=$ENV
  
  after_script:
    - rm -rf /var/lib/apt/lists/*
    - apt-get update
    - apt-cache gencaches
    - apt-get install -y zip unzip
    - zip -r serenity_report.zip ./target/serenity
    
  artifacts:
    when: always
    expire_in: 1 week
    paths:
      - ./serenity_report.zip 

Serenity.properties

代码语言:javascript
复制
serenity.jira.workflow.active = false
serenity.logging = VERBOSE
serenity.jira.workflow = workflow.groovy
serenity.outputDirectory = target/serenity
serenity.restart.browser.for.each = NEVER
serenity.take.screenshots = FOR_FAILURES


#********************* GOOGLE-CHROME BROWSER ***********************#
webdriver.driver = chrome
webdriver.chrome.driver = src/test/resources/drivers/chromedriver.exe
headless.mode = true
chrome.switches = --homepage=about:blank,--no-first-run
ssl = --ignore-certificate-errors
restart.browser.each.scenario = true
chrome_preferences.default_directory = "src/test/resources/downloads"
chrome_preferences.profile_default_content_settings.popups = 0
chrome_preferences.pdfjs.disabled = true
restart.browser.each.scenario = true
report.customfields.environment = Integration
report.customfields.ApplicationVersion = 1.2.3
webdriver.wait.for.timeout = 8000

当我试图通过JUnit Runner或Maven命令行运行这些测试时,它们完美地工作。我假设我需要在Docker中下载chromeDriver,但不太确定。任何人有任何想法,都会有很大的帮助或建议。

EN

回答 1

Stack Overflow用户

发布于 2022-03-30 18:17:31

经过大量的研究,我想出了下面的解决方案。

  1. 如果我们在无头模式下运行Chrome测试,浏览器将不会是全屏。所以,我把浏览器变成了全屏.

代码语言:javascript
复制
driver.manage().window().setSize(new Dimension(1920,1080));

  1. I使用了markhobson/maven- ChromeDriver映像,该映像已经安装了Java8 8/11/16、Selenium和ChromeDriver 91。因此,我使用WebDriverManager运行Chrome测试.

代码语言:javascript
复制
WebDriverManager.chromedriver().setup();

gitlab-ci.yml

代码语言:javascript
复制
image: markhobson/maven-chrome

stages:
  - test

variables:
  ENV: "QA"
  MAVEN_OPTS: "-Dmaven.repo.local=.m2/repository"
  
build:
  stage: test
  allow_failure: true

  script:
    
    # Run your tests
    - echo "Executing BDD scenarios with maven"
    - mvn clean verify -Denv=$ENV 
       
   
  # Store artifacts
  artifacts:
    when: always
    name: "serenity"
    paths:
    - target/serenity/*
    expire_in: 24 h

Serenity.properties

代码语言:javascript
复制
serenity.jira.workflow.active = false
serenity.logging = VERBOSE
serenity.jira.workflow = workflow.groovy
serenity.outputDirectory = target/serenity
serenity.restart.browser.for.each = SCENARIO
serenity.take.screenshots = FOR_FAILURES


#********************* CHROME BROWSER ***********************#
webdriver.driver = chrome
headless.mode = true
webdriver.chrome.verbose = true
serenity.browser.maximized = true
chrome.switches = --no-sandbox,--disable-dev-shm-usage,--disable-popup-blocking,--disable-default-apps,--disable-extensions-file-access-check,--incognito,--disable-infobars,--disable-gpu
ssl = --ignore-certificate-errors
restart.browser.each.scenario = true
chrome_preferences.default_directory = "src/test/resources/downloads"
chrome_preferences.profile_default_content_settings.popups = 0
chrome_preferences.pdfjs.disabled = true
restart.browser.each.scenario = true
report.customfields.environment = Integration
report.customfields.ApplicationVersion = 1.2.3
webdriver.wait.for.timeout = 8000
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/71147736

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档