devops测试

验收测试 (也称为用户验收测试(UAT))确定系统是否满足用户需求,业务要求和授权实体标准。 通过软件开发生命周期(SDLC)开发应用程序时,每当有新设计时,都会重复测试。 在许多公司中, 站点可靠性工程师 (SRE)通过在DevOps计划中构建持续集成/持续开发( CI / CD)管道来自动化验收测试。

需要大量开源工具来为云和本地基础架构创建CI / CD管道,因此您需要设计多层,例如平台,框架和工具,以实现对管道的高效生产管理。

在本文中,我将向您介绍集成了自动验收测试工具的DevOps场景。 该示例将为您提供DevOps平台集成的完整图片。

构建DevOps平台

SRE或开发人员多久构建一次应用并进行验收测试? 每一天? 在多个环境中每周一次? 以前,您必须为每个项目重复安装,配置和管理这些环境,这是无聊但必不可少的任务。 但是,在Linux容器中构建DevOps平台可以从根本上更轻松,更快,更安全地完成日常工作。

使用基于Kubernetes项目的企业平台即服务 (PaaS)解决方案是通过构建源代码,打包容器映像以及在企业生产环境中运行容器来构建DevOps平台的最强大,最合适,最有效的方法。

要开始这个示例,请使用Minishift在本地的OKD (为Red Hat OpenShift提供动力的Kubernetes社区分布)上创建一个单节点集群:

$ brew cask install minishift
     
     

$ minishift start --vm-driver virtualbox
     
     

$ eval $(minishift oc-env) && eval $(minishift docker-env)
     
     

$ oc login $(minishift ip):8443 -u admin -p admin
部署CI框架

使用容器平台,选择一种流行的CI框架(例如Jenkins , Travis CI , TeamCity , CircleCI或Bamboo) ,然后使用OpenShift Template , Operator或Helm Charts进行部署。 Jenkins是最古老,最受欢迎的开源自动化服务器,可以为任何编程语言环境设置CI。

通过OpenShift模板将容器化的Jenkins主服务器部署到Minishift:

$ oc project at-cicd --> Create an acceptance testing project
     
     

$ oc new-app jenkins-ephemeral --> Create a Jenkins Master Server
集成验收测试工具

接受标准主要关注图形用户界面(GUI)中的应用程序功能,即UI / UX要求。 在这一步中,开发人员和质量检查团队必须花费大量时间,根据用户要求手动验证整个测试用例。

Selenium允许您使用WebDriver脚本自动执行网页上的功能测试,该脚本以交互方式执行测试用例,就像测试人员手动执行测试一样。 要将Selenium工具与Jenkins上的DevOps管道集成在一起,请创建一个Jenkinsfile来定义CI / CD管道,其中包括构建,测试和升级的多个步骤。

创建一个包含多个阶段(源克隆,构建和编译,验收测试)的类似BuildConfig,并使用Minishift命令运行管道资源:

$ oc create -f at-selenuim-pipeline.yaml --> Create a CI/CD pipeline with AT
     
     

$ oc start-build at-selenuim-pipeline --> Start the pipeline
     
     


##### Snippet of pipeline buildconfg yaml #####
     
     

kind: "BuildConfig"
     
     

apiVersion: "v1"
     
     

metadata:
     
     

  name: "at-selenuim-pipeline"
     
     

spec:
     
     

  strategy:
     
     

    jenkinsPipelineStrategy:
     
     

      jenkinsfile: |-
     
     

        pipeline {
     
     

            agent any
     
     

            def mvnHome = tool 'Maven'
     
     

            stages {
     
     

                stage ('gitclone') {
     
     

                    steps {
     
     

                        git branch: 'master', url: "Your Code in Git Url"
     
     

                    }
     
     

                }
     
     


                stage ('build') {
     
     

                    steps {
     
     

                        sh "${mvnHome}/bin/mvn compile"
     
     

                    }
     
     

                }
     
     


                stage ('attest') {
     
     

                    steps {
     
     

                        sh 'mvn clean test -Dwebdriver.type=remote -Dwebdriver.url=http://localhost:4444/wd/hub -Dwebdriver.cap.browserName=chrome'
     
     

                    }
     
     

                }
     
     

            }
     
     

        }
     
     

        type: JenkinsPipeline
结论

这些实际步骤为在您的DevOps平台中集成自动化验收测试工具以及加快团队和组织内的CI / CD功能提供了一条较短的途径。 您可以使用其他开放源代码测试工具(例如JMeter , Maven和JUnit)进一步调整自动化管道。


接下来要读什么

翻译自: https://opensource.com/article/19/4/devops-pipeline-acceptance-testing

devops测试