Coder Social home page Coder Social logo

playwright-tests's People

Contributors

bhackett1024 avatar jasonlaster avatar jazzdan avatar jonbell-lot23 avatar jperl avatar ryanjduffy avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar

playwright-tests's Issues

Support chromium/headful in test runner

We have a utils.js file (separate from the other utils.ts!) that is used by a single test for launching playwright and supports testing with chromium. This file should be removed, and we should support using chromium and a headful browser for tests that use the existing example() runner.

yelp

  1. go to https://www.yelp.com/
  2. search for thai food
  3. click on the first restaurant link in the results
  4. wait for the page load
  5. close the browser

Youtube test

When I click on a video in youtube with the cli, then skip ad does not skip the ad.

Remove download/update logic

The logic for downloading and updating browsers predates when we created and started using the @recordreplay/playwright package. The latter package takes care of downloading browsers, and the custom logic in this repo duplicates that effort, puts the browsers in a different place, has to download the recording driver by itself (also no longer necessary), and doesn't recognize using the RECORD_REPLAY_DIRECTORY env var to set another directory with browsers to use. This logic should be removed, so we can fully rely on the playwright package to manage the installed browsers.

Record qa wolf tests automtically

Our backend currently needs a manifest for knowing about the new tests. Can we update it to run all of the tests in the qa_wolf directory?

Record ebay.com

We'll be talking with their QA team so it would be nice to have a couple playwright tests

Fix Playwright Test Suite

The playwright test suite stopped running recently we should bring it back and ensure that we have telemetry wired up so we can be alerted in honeycomb if it stops running again

We have one telemetry event for when the live tests fail to create a recording

It'd be nice to also track attempts so that we can measure uptime and alert when the service is down and we stop trying

Error "Execution context was destroyed, most likely because of a navigation"

This error occurs frequently running running our playwright tests against chromium, causing the test to fail. It doesn't seem like there is a process crash anywhere and that we should be robust enough to recover if this is thrown in pageLog.

/home/ubuntu/recordreplay/playwright-tests/node_modules/playwright/lib/utils/stackTrace.js:48
    const stack = new Error().stack;
                  ^
page.evaluate: Execution context was destroyed, most likely because of a navigation.
Error:
    at Object.captureStackTrace (/home/ubuntu/recordreplay/playwright-tests/node_modules/playwright/lib/utils/stackTrace.js:48:19)
    at Connection.sendMessageToServer (/home/ubuntu/recordreplay/playwright-tests/node_modules/playwright/lib/client/connection.js:69:48)
    at Proxy.<anonymous> (/home/ubuntu/recordreplay/playwright-tests/node_modules/playwright/lib/client/channelOwner.js:64:61)
    at /home/ubuntu/recordreplay/playwright-tests/node_modules/playwright/lib/client/frame.js:179:42
    at Frame._wrapApiCall (/home/ubuntu/recordreplay/playwright-tests/node_modules/playwright/lib/client/channelOwner.js:77:34)
    at Frame.evaluate (/home/ubuntu/recordreplay/playwright-tests/node_modules/playwright/lib/client/frame.js:178:21)
    at /home/ubuntu/recordreplay/playwright-tests/node_modules/playwright/lib/client/page.js:385:60
    at Page._attributeToPage (/home/ubuntu/recordreplay/playwright-tests/node_modules/playwright/lib/client/page.js:231:20)
    at Page.evaluate (/home/ubuntu/recordreplay/playwright-tests/node_modules/playwright/lib/client/page.js:385:21)
    at pageLog (/home/ubuntu/recordreplay/playwright-tests/src/helpers.js:82:17)
undefined

/home/ubuntu/recordreplay/playwright-tests/utils.ts:55
    throw new Error(`Spawned process failed with exit code ${rv.status}`);
          ^
Error: Spawned process failed with exit code 1
    at Object.spawnChecked (/home/ubuntu/recordreplay/playwright-tests/utils.ts:55:11)
    at /home/ubuntu/recordreplay/playwright-tests/run.ts:205:3
    at step (/home/ubuntu/recordreplay/playwright-tests/run.ts:44:23)
    at Object.next (/home/ubuntu/recordreplay/playwright-tests/run.ts:25:53)
    at /home/ubuntu/recordreplay/playwright-tests/run.ts:19:71
    at new Promise (<anonymous>)
    at __awaiter (/home/ubuntu/recordreplay/playwright-tests/run.ts:15:12)
    at runTest (/home/ubuntu/recordreplay/playwright-tests/run.ts:163:12)
    at /home/ubuntu/recordreplay/playwright-tests/run.ts:230:11
    at step (/home/ubuntu/recordreplay/playwright-tests/run.ts:44:23)

Fix problems with example tests

Several examples use chromium instead of firefox, which we can't record yet. Also, many of the examples set { headless: false }, which doesn't work with the linux container when we run our automated tests.

Add test manifest

Currently we store the list of playwright tests we use during automated testing in our backend repository, to avoid exposing the credentials used for the facebook test. I don't know how much that really matters but it does make it awkward to keep the list of tests in sync with the repository itself. It would be better if we had a manifest in the playwright-tests repository that includes all the other tests, in any case.

Create a dashboard

It would be nice to see a dashboard of the runlive examples:

  1. show example runs
  2. show passes/fails defined by reaching the end
  3. replays are one click away

Upload recording metadata

We should upload some metadata about the new recording to our database so we can view the tests after the fact.

Fields:

  • recording id
  • url
  • title
  • lastScreen
  • recording title (could be [PASS|FAIL] ${title}
  • userId (could be a standard user like [email protected]

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.