github.com/kubeshop/testkube@v1.17.23/contrib/executor/jmeter/pkg/parser/xjtl.go (about)

     1  package parser
     2  
     3  import (
     4  	"encoding/xml"
     5  )
     6  
     7  // TestResults is a root element of junit xml report
     8  type TestResults struct {
     9  	XMLName     xml.Name  `xml:"testResults"`
    10  	HTTPSamples []Example `xml:"httpSample,omitempty"`
    11  	Samples     []Example `xml:"sample,omitempty"`
    12  }
    13  
    14  // Example is example details
    15  type Example struct {
    16  	Time            int              `xml:"t,attr"`
    17  	Success         bool             `xml:"s,attr"`
    18  	Label           string           `xml:"lb,attr"`
    19  	ResponseCode    string           `xml:"rc,attr"`
    20  	AssertionResult *AssertionResult `xml:"assertionResult"`
    21  }
    22  
    23  // AssertionResult contains assertion
    24  type AssertionResult struct {
    25  	XMLName        xml.Name `xml:"assertionResult"`
    26  	Name           string   `xml:"name"`
    27  	Failure        bool     `xml:"failure"`
    28  	Error          bool     `xml:"error"`
    29  	FailureMessage string   `xml:"failureMessage"`
    30  }
    31  
    32  func ParseXML(data []byte) (results TestResults, err error) {
    33  	err = xml.Unmarshal(data, &results)
    34  
    35  	return results, err
    36  }