devops测试
验收测试 (也称为用户验收测试(UAT))确定系统是否满足用户需求,业务要求和授权实体标准。 通过软件开发生命周期(SDLC)开发应用程序时,每当有新设计时,都会重复测试。 在许多公司中, 站点可靠性工程师 (SRE)通过在DevOps计划中构建持续集成/持续开发( CI / CD)管道来自动化验收测试。
需要大量开源工具来为云和本地基础架构创建CI / CD管道,因此您需要设计多层,例如平台,框架和工具,以实现对管道的高效生产管理。
在本文中,我将向您介绍集成了自动验收测试工具的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)进一步调整自动化管道。