4.4 自動化測試集成

開啓gitlab pages

vim /etc/gitlab/gitlab.rb

##! Define to enable GitLab Pages
pages_external_url "http://pages.gitlab.com/"
gitlab_pages['enable'] = true
gitlab_pages['inplace_chroot'] = true


gitlab-ctl reconfigure

更新gitlab.yml文件

containers:
  - name: gitlab
  image: gitlab/gitlab-ce:12.9.0-ce.0
  imagePullPolicy: IfNotPresent
  ports:
    - containerPort: 30088
      name: web
      protocol: TCP
    - containerPort: 22
      name: agent
      protocol: TCP
    - containerPort: 80
      name: page
      protocol: TCP

開放80端口

kind: Service
apiVersion: v1
metadata:
  labels:
    k8s-app: gitlab
  name: gitlab
  namespace: devops
spec:
  type: NodePort
  ports:
    - name: web
      port: 30088
      targetPort: 30088
      nodePort: 30088
    - name: slave
      port: 22
      targetPort: 22
      nodePort: 30022
    - name: page
      port: 80
      targetPort: 80
      nodePort: 80
  selector:
    k8s-app: gitlab

images

完整的yaml參考github中。

FAQ:未開啓chroot

https://gitlab.com/gitlab-org/gitlab-pages/-/issues/129

"Failed to bind mount /var/opt/gitlab/gitlab-rails/shared/pages on /tmp/gitlab-pages-1524473513642136363/pages. operation not permitted

運行自動化測試

在這裏定義了兩個stage,

interface_test作業用於運行自動化測試,此時自動化測試已經配置好ant+jmeter集成所以直接運行ant命令即可。考慮到每個人安裝的jmeter環境目錄不一致所以可以通過-D選項指定jmeterhome。運行完成接口測試後,測試報告在項目當前目錄的result/htmlfile中。在此將測試報告整理成製品存放。

pages作業用於將測試報告中的html文件通過pages功能展示。首先獲取interface_test作業的製品,然後將測試報告移動到public目錄中。最後將public目錄作爲製品收集,有效期30天。

jmeter安裝好了,之後需要將/usr/local/apache-jmeter-5.1.1/extras目錄中的ant-jmeter-1.1.1.jar 複製到ant安裝目錄下的lib中。

stages:
  - tests
  - deploy
  

interface_test:
  stage: tests
  tags:
    - build
  script:
    - ant -Djmeter.home=/usr/local/buildtools/apache-jmeter-5.2.1
  artifacts:
    paths:
      - result/htmlfile/
  
pages:
  stage: deploy
  dependencies:
    - interface_test
  script:
    - mv result/htmlfile/ public/
  artifacts:
    paths:
      - public
    expire_in: 30 days
  only:
    - master

效果:

images


上下游項目觸發自動化測試

jobs/test.yml

.interfacetest:
  stage: interface_test
  trigger: 
    project: cidevops/cidevops-interfacetest-service
    branch: master
    strategy: depend

templates.yml

interfact_test:
  stage: interface_test
  extends: .interfacetest

images

 一起學習呀:

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章