node {
stage("set env"){
def BUILDVERSION = sh(script: "echo `date +%s`", returnStdout: true).trim()
//apache-jmeter目錄
env.JMETER_HOME="/usr/local/share/apache-jmeter-5.5"
env.JMETER_REPORT="${BUILDVERSION}.jtl"
env.JVM_ARGS="-Xms10240m -Xmx10240m"
//刪除之前測試結果
// deleteDir()
}
stage('refresh jmx'){
}
stage('Run JMeter Tests') {
sh "/usr/local/share/apache-jmeter-5.5/bin/jmeter.sh -n -t /tmp/ntlcPublic.jmx -l ${JMETER_REPORT}"
}
stage('Publish Performance Report') {
perfReport errorFailedThresholds: true,
errorUnstableThresholds: true,
sourceDataFiles: JMETER_REPORT,
relativeFailedThresholdPositive: '90',
relativeUnstableThresholdPositive: '80',
threshold: [
thresholdName: 'Average Response Time',
unstableThreshold: '1500',
failedThreshold: '3000'
]
}
}
perfReport 說明
- relativeFailedThresholdPositive: ‘90’ 指定了如果 90% 或更多的請求的響應時間超過 failedThreshold,構建將失敗。
- relativeUnstableThresholdPositive: ‘80’ 指定了如果 80% 或更多的請求的響應時間超過 unstableThreshold,構建將被標記為不穩定。
- threshold 配置了具體的響應時間閾值(如「平均響應時間」)。在這裡,如果平均響應時間超過 1500 毫秒,構建將被標記為不穩定;如果超過 3000 毫秒,構建將失敗。