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 }