2017-04-12 9 views
0

나는 젠킨스 파이프 라인 스크립트 아래는 JMeter가 테스트를 실행하고 JTL 파일 처음젠킨스 파이프 라인 - JMeter를은 실적 보고서

node('master') { 
    stage 'Run JMeter Test' 
    def workspace = pwd() 
    def jmeterTestFile = 'jenkins_test' 
    echo "workspace = ${workspace}" 
    echo "env.WORKSPACE = ${env.WORKSPACE}" 
    bat "${workspace}\\jmeter\\bin\\jmeter.bat -n -t ${workspace}\\jmeter_scripts\\${jmeterTestFile}.jmx -l ${workspace}\\jmeter_scripts\\${jmeterTestFile}_results.jtl" 
    step([$class: 'ArtifactArchiver', artifacts: 'CP-Perf-Report.html,**/*.jtl, **/jmeter.log', fingerprint: true]) 
    //perfReport "jmeter_scripts\\${jmeterTestFile}_results.jtl" 
    performanceReport parsers: [[$class: 'JMeterParser', glob: "jmeter_scripts\\${jmeterTestFile}_results.jtl"]], relativeFailedThresholdNegative: 1.2, relativeFailedThresholdPositive: 1.89, relativeUnstableThresholdNegative: 1.8, relativeUnstableThresholdPositive: 1.5 
} 

내가 perfReport "jmeter_scripts\\${jmeterTestFile}_results.jtl" 명령을 사용하여 보고서를 만드는 시도에서 보고서를 작성해야하지만 FileNotFoundException에 실패했다 그래서 performanceReport parsers을 사용하는 대체 방법을 시도했지만 FileNotFoundException으로 다시 실패했지만 c:\tools\jenkins\workspace\PerformanceTesting\jmeter_scripts\jenkins_test_results.jtl 파일을 수동으로 열어 테스트 보고서를 볼 수 있습니다. 누구든지이 문제를 해결할 수 있도록 도와 줄 수 있습니까?

workspace = c:\tools\jenkins\workspace\PerformanceTesting 
[Pipeline] echo 
env.WORKSPACE = c:\tools\jenkins\workspace\PerformanceTesting 
[Pipeline] step 
Archiving artifacts 
Recording fingerprints 
[Pipeline] step 
[Pipeline] } 
[Pipeline] // node 
[Pipeline] End of Pipeline 
java.io.FileNotFoundException: c:\tools\jenkins\workspace\PerformanceTesting\jmeter_scripts\jenkins_test_results.jtl (The system cannot find the path specified) 
    at java.io.FileInputStream.open0(Native Method) 
    at java.io.FileInputStream.open(Unknown Source) 
    at java.io.FileInputStream.<init>(Unknown Source) 
    at java.io.FileReader.<init>(Unknown Source) 
    at hudson.plugins.performance.parsers.ParserDetector.detect(ParserDetector.java:21) 
    at hudson.plugins.performance.parsers.ParserFactory.getParser(ParserFactory.java:26) 
    at hudson.plugins.performance.PerformancePublisher.getParsers(PerformancePublisher.java:439) 
    at hudson.plugins.performance.PerformancePublisher.perform(PerformancePublisher.java:481) 
    at org.jenkinsci.plugins.workflow.steps.CoreStep$Execution.run(CoreStep.java:69) 
    at org.jenkinsci.plugins.workflow.steps.CoreStep$Execution.run(CoreStep.java:59) 
    at org.jenkinsci.plugins.workflow.steps.AbstractSynchronousNonBlockingStepExecution$1$1.call(AbstractSynchronousNonBlockingStepExecution.java:52) 
    at hudson.security.ACL.impersonate(ACL.java:221) 
    at org.jenkinsci.plugins.workflow.steps.AbstractSynchronousNonBlockingStepExecution$1.run(AbstractSynchronousNonBlockingStepExecution.java:49) 
    at java.util.concurrent.Executors$RunnableAdapter.call(Unknown Source) 
    at java.util.concurrent.FutureTask.run(Unknown Source) 
    at java.util.concurrent.ThreadPoolExecutor.runWorker(Unknown Source) 
    at java.util.concurrent.ThreadPoolExecutor$Worker.run(Unknown Source) 
    at java.lang.Thread.run(Unknown Source) 
Finished: FAILURE 
+0

당신이 \\ 사용할 필요가 있음이 확실하다. 명령에서 \를 사용합니다. 이 링크를 확인할 수 있습니다. http://qainsights.com/integrate-apache-jmeter-jenkins/ –

+0

@NaveenKumarNamachivayam 예 젠킨스 파이프 라인 작업에서 그루비 스크립트를 사용하기 때문에 \\를 사용해야합니다. – RanPaul

답변

0

나는 내가 다음과 같이 파이프 라인 스크립트를 수정하는 것이 좋습니다 로그에 JMeter가 테스트를 실행의 흔적을 볼 수 없습니다 :

  1. /들에 \\ 슬래시로 변환
  2. 을 감안할 때 Windows에서 테스트를 실행하고 있습니다. ${workspace}
대신 %WORKSPACE% 형식의 변수를 사용해야한다고 생각합니다. (210)

은 참조를 위해 다음과 같은 가이드를 참조하십시오