From 903b47c858ab98b242e036ad22b5cb51ebd71db9 Mon Sep 17 00:00:00 2001 From: Eli Mallon Date: Tue, 5 Dec 2023 14:30:31 -0800 Subject: [PATCH 1/2] webrtc-tester: implment --headless flag --- cmd/webrtc-load-tester/roles/player.go | 14 +++++++++++++- 1 file changed, 13 insertions(+), 1 deletion(-) diff --git a/cmd/webrtc-load-tester/roles/player.go b/cmd/webrtc-load-tester/roles/player.go index c7a69601..72d16708 100644 --- a/cmd/webrtc-load-tester/roles/player.go +++ b/cmd/webrtc-load-tester/roles/player.go @@ -30,6 +30,7 @@ type playerArguments struct { Simultaneous uint PlayerStartInterval time.Duration TestDuration time.Duration + Headless bool ScreenshotFolderOS *url.URL ScreenshotPeriod time.Duration @@ -48,6 +49,7 @@ func Player() { fs.DurationVar(&cliFlags.TestDuration, "duration", 1*time.Minute, "How long to run the test") utils.URLVarFlag(fs, &cliFlags.ScreenshotFolderOS, "screenshot-folder-os", "", "Object Store URL for a folder where to save screenshots of the player. If unset, no screenshots will be taken") fs.DurationVar(&cliFlags.ScreenshotPeriod, "screenshot-period", 1*time.Minute, "How often to take a screenshot of the player") + fs.BoolVar(&cliFlags.Headless, "headless", true, "Run Chrome in headless mode (no-GUI)") }) if cliFlags.PlaybackID == "" && cliFlags.PlaybackURL == "" { @@ -59,8 +61,18 @@ func Player() { func runPlayerTest(args playerArguments) { // Create a parent context to run a single browser instance + opts := chromedp.DefaultExecAllocatorOptions[:] + if !args.Headless { + opts = append(opts, + chromedp.Flag("headless", false), + chromedp.Flag("hide-scrollbars", false), + chromedp.Flag("mute-audio", false), + ) + } + allocCtx, cancel := chromedp.NewExecAllocator(context.Background(), opts...) + defer cancel() ctx, cancel := chromedp.NewContext( - context.Background(), + allocCtx, chromedp.WithBrowserOption( chromedp.WithBrowserLogf(log.Printf), chromedp.WithBrowserErrorf(log.Printf), From 798796d39c904bee1e9101bcd83be02511aa1865 Mon Sep 17 00:00:00 2001 From: Eli Mallon Date: Tue, 5 Dec 2023 14:34:37 -0800 Subject: [PATCH 2/2] Makefile: add make webrtc-load-tester --- Makefile | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/Makefile b/Makefile index 593525e8..c6b27fcb 100644 --- a/Makefile +++ b/Makefile @@ -42,6 +42,10 @@ monitor: api-transcoder: go build -ldflags="$(ldflags)" cmd/api-transcoder/api-transcoder.go +.PHONY: webrtc-load-tester +webrtc-load-tester: + go build -ldflags="$(ldflags)" -o "$(GO_BUILD_DIR)" cmd/webrtc-load-tester/webrtc-load-tester.go + .PHONY: docker docker: docker build -f docker/Dockerfile -t livepeer/streamtester:latest --build-arg version=$(shell git describe --dirty) .