使用GitLab CI/CD建立Robot Framework流水线

4

我已经编写了自动化的Robot Framework测试,并将它们存储在GitLab存储库中。我希望每天自动运行这些测试。

  1. 这是否可行?
  2. 我需要一个.gitlab-ci.yml文件吗?(如果需要,应该在其中放置什么内容?)

下面的答案有帮助吗? - vgdub
1个回答

4

可以在GitLab CI中运行机器人测试。

  1. 是的,这完全有可能,事实上这就是您执行管道测试的方式。您只需要构建一个包含在Docker内部执行框架所需内容的Dockerfile。这是示例Dockerfile。我建议您将.robot脚本包装成以bash脚本运行的形式(例如robot -d *.robot)。
FROM ubuntu:18.04

ENV LANG=C.UTF-8 LC_ALL=C.UTF-8

RUN apt-get update --fix-missing && \
    apt-get install -y python3-setuptools wget git bzip2 ca-certificates curl bash chromium-browser chromium-chromedriver firefox python3.8 python3-pip nano && \
    apt-get clean && \
    rm -rf /var/lib/apt/lists/*

RUN wget https://github.com/mozilla/geckodriver/releases/download/v0.27.0/geckodriver-v0.27.0-linux64.tar.gz
RUN tar xvf geckodriver*
RUN chmod +x geckodriver
RUN mv geckodriver /usr/bin

RUN update-alternatives --install /usr/bin/python3 python3 /usr/bin/python3.6 1
RUN update-alternatives --install /usr/bin/python3 python3 /usr/bin/python3.8 2
RUN pip3 install --upgrade pip

RUN ln -s /usr/bin/python3 /usr/bin/python
RUN ln -s /usr/bin/pip3 /usr/bin/pip

RUN pip install rpaframework

COPY . /usr/src/

ADD robot.sh /usr/local/bin/robot.sh

RUN chmod +x /usr/local/bin/robot.sh

WORKDIR /usr/src


现在您需要在您的代码库中拥有一个.gitlab-ci.yml文件,并且其内容应该如下。
stages:
  - build
  - run

variables:
  ARTIFACT_REPORT_PATH: "${CI_PROJECT_DIR}/reports"

build_image:
  stage: build
  variables:
    DOCKER_IMAGE_TAG: ${CI_REGISTRY_IMAGE}:${CI_COMMIT_REF_NAME}
  script:
    - docker build -t ${DOCKER_IMAGE_TAG} .
  after_script:
    - docker push ${DOCKER_IMAGE_TAG}
    - docker logout

robot_tests:
  stage: run
  variables:
    DOCKER_IMAGE_TAG: ${CI_REGISTRY_IMAGE}:${CI_COMMIT_TAG}
  image: ${DOCKER_IMAGE_TAG}
  script:
    - robot-test.sh
  artifacts:
    paths:
      - $ARTIFACT_REPORT_PATH
    when: always

这就是全部内容,一旦作业完成,您将在存储库中的路径位置看到作业的输出。


嗨@vgdub,看起来是个好答案。你只是缺少Dockerfile示例... - Moshe Slavin
1
非常感谢 @MosheSlavin,我完全错过了它,现在已经添加了。 - vgdub
我们可以将此作为答案批准吗? - vgdub
这不是我的决定 :) 看起来不错... 只有 @majinster 可以批准它。 - Moshe Slavin

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接