zdravko/pkg/k6/k6_test.go

63 lines
1,011 B
Go
Raw Normal View History

package k6
import (
"context"
2024-02-21 13:09:22 +00:00
"log/slog"
"testing"
)
2024-02-21 13:16:22 +00:00
func TestK6Success(t *testing.T) {
ctx := context.Background()
2024-02-21 13:09:22 +00:00
logger := slog.Default()
script := `
import http from 'k6/http';
import { sleep } from 'k6';
export const options = {
vus: 10,
2024-02-21 13:16:22 +00:00
duration: '5s',
};
export default function () {
http.get('https://test.k6.io');
sleep(1);
}
`
2024-02-21 13:09:22 +00:00
execution := NewExecution(logger, script)
2024-02-21 13:16:22 +00:00
err := execution.Run(ctx)
if err != nil {
t.Errorf("Error starting execution: %v", err)
}
}
func TestK6Fail(t *testing.T) {
ctx := context.Background()
logger := slog.Default()
script := `
import http from 'k6/http';
import { sleep } from 'k6';
export const options = {
thresholds: {
http_req_failed: ['rate<0.01'], // http errors should be less than 1%
},
};
export default function () {
http.get('https://fail.broken.example');
sleep(1);
}
`
execution := NewExecution(logger, script)
err := execution.Run(ctx)
if err != nil {
t.Errorf("Error starting execution: %v", err)
}
}