github.com/kubeshop/testkube@v1.17.23/contrib/executor/jmeterd/pkg/parser/mapper.go (about) 1 package parser 2 3 import ( 4 "fmt" 5 6 "github.com/kubeshop/testkube/pkg/api/v1/testkube" 7 ) 8 9 func mapCSVResultsToExecutionResults(out []byte, results CSVResults) (result testkube.ExecutionResult) { 10 result = MakeSuccessExecution(out) 11 // TODO: Is it enough to just disable it here? 12 //if results.HasError { 13 // result.Status = testkube.ExecutionStatusFailed 14 // result.ErrorMessage = results.LastErrorMessage 15 //} 16 17 for _, r := range results.Results { 18 result.Steps = append( 19 result.Steps, 20 testkube.ExecutionStepResult{ 21 Name: r.Label, 22 Duration: r.Duration.String(), 23 Status: mapCSVResultStatus(r), 24 AssertionResults: []testkube.AssertionResult{{ 25 Name: r.Label, 26 Status: mapCSVResultStatus(r), 27 }}, 28 }) 29 } 30 31 return result 32 } 33 34 func mapCSVResultStatus(result CSVResult) string { 35 if result.Success { 36 return string(testkube.PASSED_ExecutionStatus) 37 } 38 39 return string(testkube.FAILED_ExecutionStatus) 40 } 41 42 func mapXMLResultsToExecutionResults(out []byte, results XMLResults) (result testkube.ExecutionResult) { 43 result = MakeSuccessExecution(out) 44 45 samples := append(results.HTTPSamples, results.Samples...) 46 for _, r := range samples { 47 // TODO: Is it enough to disable it here? 48 //if !r.Success { 49 // result.Status = testkube.ExecutionStatusFailed 50 // if r.AssertionResult != nil { 51 // result.ErrorMessage = r.AssertionResult.FailureMessage 52 // } 53 //} 54 55 result.Steps = append( 56 result.Steps, 57 testkube.ExecutionStepResult{ 58 Name: r.Label, 59 Duration: fmt.Sprintf("%dms", r.Time), 60 Status: mapXMLResultStatus(r.Success), 61 AssertionResults: []testkube.AssertionResult{{ 62 Name: r.Label, 63 Status: mapXMLResultStatus(r.Success), 64 }}, 65 }) 66 } 67 68 return result 69 } 70 71 func mapXMLResultStatus(success bool) string { 72 if success { 73 return string(testkube.PASSED_ExecutionStatus) 74 } 75 76 return string(testkube.FAILED_ExecutionStatus) 77 } 78 79 func MakeSuccessExecution(out []byte) (result testkube.ExecutionResult) { 80 status := testkube.PASSED_ExecutionStatus 81 result.Status = &status 82 result.Output = string(out) 83 result.OutputType = "text/plain" 84 85 return result 86 }