Introduction
In this article, we will see how we can configure the playwright config file in order to run the test/spec files depending on your needs/configuration.
We will look at each configuration items.
TestDir
testDir:'./tests'
- Refers the folder name which contains all the test/spec file.
- By default while installing of playwright, tests will be configured in tests folder if you want you can change it accordingly.
timeout
timeout:30 * 1000
Maximum timeout a test can run. By default, it's set to 30000ms.
Expect Assertion Timeout
expect: {
timeout: 5000
}
This timeout is for the expect assertion condition which you apply inside the tests. For example,if you have this assertion below
await expect(getStarted).toHaveAttribute('href', '/docs/intro');
The assert condition will wait for 5000 ms until it finds the element, if it does not find the element after 5000 ms then assertions fail and test will also fail
fullyParallel
fullyParallel:true/false
- If you want to run your tests in parallel in CI/CD pipleline then provide true or else provide false.
- Best option is to run your test in parallel because it saves the execution time of our tests.
forbidOnly
forbidOnly: !!process.env.CI
If some of your tests are marked as test only accidentally while you are pushing the code and running your tests in CI/CD then the build will fail with an error.
This will be helpful in CI/CD runs.
retries
How many times do you want to retry a failed test in playwright we can provide the below values using this configuration.
retries: process.env.CI ? 2 : 0
here 2 is amount of retry when your tests run in CI/CD and 0 is amount of retry when the tests run in your local machine.
Workers
Amount of workers that is instantiated when your test runs.
workers:process.env.CI ? 1 : undefined
1 is the amount of workers instantiated in CI/CD. in place of undefined you can provide the value of workers which can get instantiated when you run your tests in your local machine.
Reporter
We can configure the reporter that you need to view your results after your test runs. Default reporter value is HTML.
reporter: 'html'
the list of reporters available in playwright are
- Html
- Line
- Dot
- List
- json
- junit
other third party reporters which needs installation using npm can also be configured. Below are the third-party reporters supported
- Allure
- Monocart
- Tesults
- ReportPortal
We can configure the reporters as array values as shown below
reporter: [['html'],['line']]
Below configuration we need to set inside the use JSON object
use: {
actionTimeout: 0,
baseURL: 'http://localhost:3000',
trace: 'on',
video:'on',
viewport: { width: 1280, height: 720 },
headless:false,
screenshot:'on'
},
actionTimeout
Action timeout is the time provided when each action is performed. Eg Click, Fill
Headless
headless: true/false
If you want to run your tests in headless mode we can provide the headless to true, if do not want to run your tests in headless mode then give false.
Viewport
viewport: { width: 1280, height: 720 }
If you want to run your tests with a browser open with set width and height then use viewport configuration
Video
if you want to record the video then provide the below values as per your needs.
- video:'off' - Do not record video.
- video:'on' - Record video for each test.
- video:'retain-on-failure' - Record video for each test, but remove all videos from successful test runs.
- video:'on-first-retry' - Record video only when retrying a test for the first time.
Note
All the videos recorded will get stored in test-results folder plus the video will also get attached and displayed in html report.
Trace
Trace contains information regarding the execution of the script. If you want to record the trace then provide the below values as per your needs.
- Trace:'off' - Do not record trace.
- Trace:'on' - Record trace for each test.
- Trace:'retain-on-failure' - Record trace for each test, but remove it from successful test runs.
- Trace:'on-first-retry' - Record trace only when retrying a test for the first time.
Trace will be captured in .zip file under test-results folder in your project folder in addition to it the .zip folder will also appear in the HTML report. if you click on the trace section it will redirect to the trace webpage, user can see the timeline of how the test ran.
We can see the network logs, actions and before and after snapshots of the screens captured for each action.
We can upload the trace zip file to the below website
Playwright Trace Viewer: https://trace.playwright.dev/ and view the execution of the scripts
Playwright Trace Viewer is a GUI tool that helps you explore recorded Playwright traces after the script has run.
Screenshot
If you want to take screenshots of the tests running, provide the values as per your needs.
- Screenshot:'off' - Do not capture screenshots.
- Screenshot:'on' - Capture a screenshot after each test.
- Screenshot:'only-on-failure' - Capture a screenshot after each test failure.
Note
All screenshots will get captured and stored in test-results folder in your project.
Networks configuration which you can use inside the use object
acceptDownloads - Download the attachments automatically
ignoreHTTPSErrors - ignores the HTTPS errors while navigation of page.
proxy- enable proxy setting while running your test
httpCredentials - set http credentials for authentication.
Projects object
Configure the browsers on which you want to run your test on.
projects: [
{
name: 'chromium',
use: {
...devices['Desktop Chrome'],
},
},
{
name: 'firefox',
use: {
...devices['Desktop Firefox'],
},
},
{
name: 'webkit',
use: {
...devices['Desktop Safari'],
},
},
Summary
In this article, I have explained the configurations in playwright config file so that users can use it while running the playwright tests. Hope you find this article interesting and helpful while you are developing Playwright test Automation Project
Thanks........
Happy Learning...................