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

     1  package parser
     2  
     3  import (
     4  	"strings"
     5  	"testing"
     6  	"time"
     7  
     8  	"github.com/stretchr/testify/assert"
     9  )
    10  
    11  const (
    12  	failedCSV = `timeStamp,elapsed,label,responseCode,responseMessage,threadName,dataType,success,failureMessage,bytes,sentBytes,grpThreads,allThreads,URL,Latency,IdleTime,Connect
    13  1667462863619,441,HTTP Request,200,OK,Thread Group 1-1,text,true,,66428,109,1,1,https://testkube.io,385,0,297
    14  1667462929945,390,HTTP Request,200,OK,Thread Group 1-1,text,false,Test failed: text expected to contain /SOME_NONExisting_String/,66428,109,1,1,https://testkube.io,339,0,249
    15  1667462945507,344,HTTP Request,200,OK,Thread Group 1-1,text,true,,66428,109,1,1,https://testkube.io,294,0,207
    16  `
    17  
    18  	successCSV = `timeStamp,elapsed,label,responseCode,responseMessage,threadName,dataType,success,failureMessage,bytes,sentBytes,grpThreads,allThreads,URL,Latency,IdleTime,Connect
    19  1667463814102,382,HTTP Request,200,OK,Thread Group 1-1,text,true,,66428,109,1,1,https://testkube.io,326,0,235
    20  1667463836936,365,HTTP Request,200,OK,Thread Group 1-1,text,true,,66428,109,1,1,https://testkube.io,309,0,222
    21  1667463838447,362,HTTP Request,200,OK,Thread Group 1-1,text,true,,66428,109,1,1,https://testkube.io,309,0,219
    22  `
    23  )
    24  
    25  func TestParseCSV(t *testing.T) {
    26  	t.Parallel()
    27  
    28  	t.Run("parse CSV failed test", func(t *testing.T) {
    29  		t.Parallel()
    30  
    31  		results, err := ParseCSV(strings.NewReader(failedCSV))
    32  
    33  		assert.NoError(t, err)
    34  		assert.True(t, results.HasError)
    35  		assert.Equal(t, 3, len(results.Results))
    36  		assert.Equal(t, "Test failed: text expected to contain /SOME_NONExisting_String/", results.Results[1].Error)
    37  		assert.Equal(t, "Test failed: text expected to contain /SOME_NONExisting_String/", results.LastErrorMessage)
    38  	})
    39  
    40  	t.Run("parse CSV success test", func(t *testing.T) {
    41  		t.Parallel()
    42  
    43  		results, err := ParseCSV(strings.NewReader(successCSV))
    44  
    45  		assert.NoError(t, err)
    46  		assert.False(t, results.HasError)
    47  		assert.Equal(t, "200", results.Results[0].ResponseCode)
    48  		assert.Equal(t, time.Millisecond*382, results.Results[0].Duration)
    49  		assert.Equal(t, "HTTP Request", results.Results[0].Label)
    50  	})
    51  }