Skip to content

Commit

Permalink
Merge pull request #350 from livepeer/eli/webrtc-tester-hacking
Browse files Browse the repository at this point in the history
webrtc-tester: implment --headless flag
  • Loading branch information
iameli authored Dec 6, 2023
2 parents 317457c + 46beaa2 commit 0797084
Show file tree
Hide file tree
Showing 2 changed files with 17 additions and 1 deletion.
4 changes: 4 additions & 0 deletions Makefile
Original file line number Diff line number Diff line change
Expand Up @@ -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) .
Expand Down
14 changes: 13 additions & 1 deletion cmd/webrtc-load-tester/roles/player.go
Original file line number Diff line number Diff line change
Expand Up @@ -30,6 +30,7 @@ type playerArguments struct {
Simultaneous uint
PlayerStartInterval time.Duration
TestDuration time.Duration
Headless bool

ScreenshotFolderOS *url.URL
ScreenshotPeriod time.Duration
Expand All @@ -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 == "" {
Expand All @@ -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),
Expand Down

0 comments on commit 0797084

Please sign in to comment.