Jenkins学习笔记第九篇pipeline 接口自动化持续集成测试
2023-09-11 14:16:28 时间
Scripts Pipeline 基于groovy的语法
Declarative pipeline V2.5之后引入 结构化方式
script pipeline书写形式如下:
node {
def mvnHome
stage('Preparation') { // for display purposes
git 'https://github.com/jglick/simple-maven-project-with-tests.git'
mvnHome = tool 'M3'
}
stage('Build') {
// Run the maven build
withEnv(["MVN_HOME=$mvnHome"]) {
if (isUnix()) {
sh '"$MVN_HOME/bin/mvn" -Dmaven.test.failure.ignore clean package'
} else {
bat(/"%MVN_HOME%\bin\mvn" -Dmaven.test.failure.ignore clean package/)
}
}
}
stage('Results') {
junit '**/target/surefire-reports/TEST-*.xml'
archiveArtifacts 'target/*.jar'
}
}
script pipeline 控制流程 if else
node{
stage('Example'){
if(env.BRANCH_NAME == 'master'){
echo 'I only execute on the master branch'
}else{
echo 'I execute elsewhere'
}
}
}
stage('build'){
node{
echo 'This is build stage'
}
}
script pipeline try catch流程
stage('prepare'){
node{
echo "This is stage which run on the slave agent"
}
}
stage('Test'){
node('slave'){
echo 'this is test stage which run on the slave agent'
try{
echo 'this is in the try block'
}catch(exc){
echo 'this is in the catch block'
}finally{
echo 'this is in the finally block'
}
}
}
pipeline script
邮件发送:
node {
def mvnHome
stage('Preparation') { // for display purposes
git 'https://github.com/ITLULU/jenkins-pipeline.git'
mvnHome = tool 'MAVEN'
}
stage('Build') {
// Run the maven build
withEnv(["MVN_HOME=$mvnHome"]) {
if (isUnix()) {
// sh ' cd "$MVN_HOME/bin/"; mvn clean test package'
sh '"$MVN_HOME/bin/mvn" -Dmaven.test.failure.ignore clean package'
} else {
bat(/"%MVN_HOME%\bin\mvn" -Dmaven.test.failure.ignore clean package/)
// bat 'cd "%MVN_HOME%\\bin\\" mvn clean test package'
}
}
}
stage('Results') {
junit keepLongStdio: true, testResults: 'target/surefire-reports/TEST-*.xml'
archiveArtifacts artifacts: 'target/*.jar', followSymlinks: false
}
stage('junit测试'){
junit allowEmptyResults: true, testResults: 'target/surefire-reports/TEST-test.SomeTest.xml'
}
stage('发送邮件'){
emailext(
subject: '构建通知:${PROJECT_NAME} - Build # ${BUILD_NUMBER} - ${BUILD_STATUS}!',
body: '${FILE,path="./target/surefire-reports/test.SomeTest.txt"}',
to: '邮箱地址'
)
}
}
publish TestReport
pipeline{
agent{
node{
label 'master'
customWorkspace 'myworkspace'
}
}
environment{
mvnHome = tool 'MAVEN'
}
stages{
stage('preparation'){
steps{
git 'https://github.com/ITLULU/TestNg-Allure.git'
}
}
stage('build'){
steps{
sh " cd ./testNg.versionone/; '${mvnHome}/bin/mvn' -Dmaven.test.failure.ignore clean package "
}
}
stage('result'){
steps{
archive './testNg.versionon/target/*.jar'
}
post{
always{
publishHTML([allowMissing: false, alwaysLinkToLastBuild: false, keepAll: false, reportDir: './testNg.versionone/target/report', reportFiles: 'Report.html', reportName: 'HTML Report', reportTitles: 'TestNG测试报告'])
}
}
}
}
}
jenkins file 执行pipeline Script from SCM
配置github
指定jenkinsfile路径
相关文章
- [Jenkins]详解jenkins几个有用的插件如何使用(emma,findbugs)
- Jenkins部署python-flask后端项目,持续集成(jinkins配置python虚拟环境)
- Liunx/centOS7 上安装好 Jenkins 后无法访问的问题--防火墙的问题
- 大叔经验分享(88)jenkins假死
- jenkins+maven+git+ 邮件自动转发 持续化集成 图文教程
- Jenkins - 集成SonarQube
- Jenkins - 持续集成工具Jenkins简介
- linux(centos8):安装Jenkins持续集成工具(java 14 / jenkins 2.257)
- Jenkins GitLab集成 邮件通知
- Jenkins Kubernetes静态agent节点的构建
- jenkins+docker持续集成实验
- Jenkins Pipeline waitForQualityGate pending 超时
- 【K8S】基于Docker+K8S+GitLab/SVN+Jenkins+Harbor搭建持续集成交付环境(环境搭建篇)
- pytest接口自动化测试框架 | Jenkins集成初探
- 【大话QT之十七】Jenkins介绍及安装使用文档(与Git集成)
- Jenkins集成Allure报告
- Postman+Newman+Git+Jenkins实现接口自动化测试持续集成
- 持续集成:jmeter+ant+jenkins搭建接口自动化测试环境
- Python接口测试实战之Git及Jenkins持续集成
- 自动化集成:Jenkins管理工具详解
- 真正解决Jenkins安装插件总是报错的问题(网上查的解决方案都无效)
- 持续集成高级篇之Jenkins脚本参数化构建
- (三)Jenkins部署项目报错Build step ‘Invoke top-level Maven targets‘ marked build as failure
- Spring Cloud Alibaba微服务第26章之Jenkins
- 【持续集成】Jenkins详细教程
- Jmeter自动化测试系列- Jmeter + Ant +Jenkins 持续集成