【问题标题】:Integrating Selenium with Gitlab CI将 Selenium 与 Gitlab CI 集成
【发布时间】:2018-07-26 14:43:30
【问题描述】:

我创建了一个自动硒测试脚本,它工作得很好。 我现在的任务是设置 Gitlab CI,并在我推送到 git 时尝试自动运行这个 selenium 脚本。

是否可以让 selenium 脚本自动执行,并在脚本运行成功或失败时通知用户?

谢谢

【问题讨论】:

  • 我想你应该去学习一些初始的 gitlabs CI 配置教程。您将在哪里获得详细许可。如果您在此期间遇到一些特定问题,那么您可以发帖寻求帮助
  • 您能给我提供这些教程的链接吗?我到处寻找,但我无法理解如何编写 gitlab yaml 文件。

标签: python-2.7 selenium docker gitlab-ci


【解决方案1】:

如何使用 Selenium 在 Gitlab Ci 上自动运行自动化测试,并使用 .net 项目在 specflow 上运行自动化测试?

如果这是你正在寻找的东西。

这里是设置 gitlab-ci.yml 文件的核心部分:

这是示例 gitlab-ci.yml 的外观:

image: please give your own docker which can download .net stuff 

variables:
  DOCKER_DRIVER: overlay2   
  SOURCE_CODE_DIRECTORY: 'src'
  BINARIES_DIRECTORY: 'bin'
  OBJECTS_DIRECTORY: 'obj'
  NUGET_PACKAGES_DIRECTORY: '.nuget'
  
stages:
  - Build
  - Test
  
before_script:
  - 'dotnet restore ${SOURCE_CODE_DIRECTORY}/TestProject.sln --packages ${NUGET_PACKAGES_DIRECTORY}'

Build:
  stage: Build
  script:
  - 'dotnet build $SOURCE_CODE_DIRECTORY/TestProject.sln --no-restore'

  except:
    - tags
  artifacts:
   paths:
    - '${SOURCE_CODE_DIRECTORY}/*/${BINARIES_DIRECTORY}'
    - '${SOURCE_CODE_DIRECTORY}/*/${OBJECTS_DIRECTORY}'
    - '${NUGET_PACKAGES_DIRECTORY}'
   expire_in: 2 hr

Test:
  stage: Test
  services:
    - selenium/standalone-chrome:latest  
  script:
  - 'export MSBUILDSINGLELOADCONTEXT=1' 
  - 'export selenium_remote_url=http://selenium__standalone-chrome:4444/wd/hub/'
  - 'export PATH=$PATH:${SOURCE_CODE_DIRECTORY}/chromedriver.exe'  
  - 'dotnet test $SOURCE_CODE_DIRECTORY/ExpressTestProject.sln --no-restore'
  artifacts:
   paths:
    - '${SOURCE_CODE_DIRECTORY}/chromedriver.exe'
    - '${SOURCE_CODE_DIRECTORY}/*/${BINARIES_DIRECTORY}'
    - '${SOURCE_CODE_DIRECTORY}/*/${OBJECTS_DIRECTORY}'
    - '${NUGET_PACKAGES_DIRECTORY}'

就是这样。当您使用此 .git-lab-ci.yml 设置项目时,您的工作已完成 90%。 每当您在源代码树或 Tfs 中提交某些内容时,测试将在 Gitlab 中自动运行。 谢谢

【讨论】: