验收测试,也称为用户验收测试 (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 Template 将容器化的 Jenkins master 服务器部署到 Minishift
$ oc project at-cicd --> Create an acceptance testing project
$ oc new-app jenkins-ephemeral --> Create a Jenkins Master Server
集成验收测试工具
验收标准主要侧重于图形用户界面 (GUI) 中的应用程序功能,也称为 UI/UX 要求。 在此步骤中,开发人员和 QA 团队必须花费大量时间根据用户需求手动验证整个测试用例。
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=https://:4444/wd/hub -Dwebdriver.cap.browserName=chrome'
}
}
}
}
type: JenkinsPipeline
结论
这些实用的步骤为在您的 DevOps 平台中集成自动化验收测试工具以及加速您的团队和组织内的 CI/CD 能力创建了一条更短的路径。 您可以使用其他开源测试工具(如 JMeter、Maven 和 JUnit)进一步调整自动化流水线。
2 条评论