Skip to content

Commit 6557e87

Browse files
committed
Improved displaying step names in test report
1 parent ddf9ff6 commit 6557e87

File tree

3 files changed

+78
-66
lines changed

3 files changed

+78
-66
lines changed

playwright.config.js

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -10,7 +10,9 @@ require('dotenv').config();
1010
module.exports = defineConfig({
1111
// test timeout
1212
timeout: 5 * 60 * 1000,
13-
13+
expect: {
14+
timeout: 2 * 60 * 1000
15+
},
1416
testDir: './tests',
1517
/* Run tests in files in parallel */
1618
fullyParallel: false,

tests/apitest.spec.js

Lines changed: 53 additions & 45 deletions
Original file line numberDiff line numberDiff line change
@@ -7,63 +7,71 @@ test.use({
77
baseURL: process.env.API_BASE_URI.toString()
88
})
99

10-
test("End to End api test in playwright", async ({ request }) => {
11-
// create post api request using playwright
12-
const postAPIResponse = await request.post("/booking", {
13-
data: postRequest,
10+
test("End to End API testing using playwright", async ({ request }) => {
11+
12+
const tokenNo = null;
13+
14+
const postAPIResponse = await test.step('Create booking', async () => {
15+
return await request.post("/booking", {
16+
data: postRequest,
17+
});
1418
});
1519

1620
const bookingId = await postAPIResponse.json();
1721
const bId = bookingId.bookingid;
1822

19-
// create GET api request using playwright
20-
const getAPIResponse = await request.get("/booking/", {
21-
params: {
22-
firstname: "testers talk playwright",
23-
lastname: "testers talk api testing",
24-
},
23+
let getAPIResponse = await test.step('Get booking details', async () => {
24+
return await request.get("/booking/", {
25+
params: {
26+
firstname: "testers talk playwright",
27+
lastname: "testers talk api testing",
28+
},
29+
});
2530
});
2631

27-
// validate status code
28-
console.log(await getAPIResponse.json());
29-
expect(getAPIResponse.ok()).toBeTruthy();
30-
expect(getAPIResponse.status()).toBe(200);
31-
32-
// generate token
33-
const tokenAPIResponse = await request.post("/auth", {
34-
data: tokenRequest,
32+
await test.step('Validate status code', async () => {
33+
console.log(await getAPIResponse.json());
34+
expect(getAPIResponse.ok()).toBeTruthy();
35+
expect(getAPIResponse.status()).toBe(200);
3536
});
36-
expect(tokenAPIResponse.ok()).toBeTruthy();
37-
expect(tokenAPIResponse.status()).toBe(200);
3837

39-
console.log(await tokenAPIResponse.json());
40-
const tokenResponseBody = await tokenAPIResponse.json();
41-
const tokenNo = tokenResponseBody.token;
38+
const tokenAPIResponse = await test.step('Generate token & Validate status code', async () => {
39+
return await request.post("/auth", {
40+
data: tokenRequest,
41+
});
42+
expect(tokenAPIResponse.ok()).toBeTruthy();
43+
expect(tokenAPIResponse.status()).toBe(200);
4244

43-
// partial update booking details
44-
const patchAPIResponse = await request.patch(`/booking/${bId}`, {
45-
headers: {
46-
"Content-Type": "application/json",
47-
Cookie: `token=${tokenNo}`,
48-
},
49-
data: {
50-
firstname: "testers talk postman",
51-
lastname: "testers talk rest assured",
52-
},
45+
console.log(await tokenAPIResponse.json());
46+
const tokenResponseBody = await tokenAPIResponse.json();
47+
tokenNo = tokenResponseBody.token;
5348
});
5449

55-
console.log(await patchAPIResponse.json());
56-
expect(patchAPIResponse.ok()).toBeTruthy();
57-
expect(patchAPIResponse.status()).toBe(200);
50+
const patchAPIResponse = await test.step('Partial update booking details & Validate status code', async () => {
51+
return await request.patch(`/booking/${bId}`, {
52+
headers: {
53+
"Content-Type": "application/json",
54+
Cookie: `token=${tokenNo}`,
55+
},
56+
data: {
57+
firstname: "testers talk postman",
58+
lastname: "testers talk rest assured",
59+
},
60+
});
61+
62+
console.log(await patchAPIResponse.json());
63+
expect(patchAPIResponse.ok()).toBeTruthy();
64+
expect(patchAPIResponse.status()).toBe(200);
65+
});
5866

59-
// DELETE api request
60-
// partial update booking details
61-
const deleteAPIResponse = await request.delete(`/booking/${bId}`, {
62-
headers: {
63-
"Content-Type": "application/json",
64-
"Cookie": `token=${tokenNo}`,
65-
},
67+
const deleteAPIResponse = await test.step('Delete booking & Validate status code', async () => {
68+
return await request.delete(`/booking/${bId}`, {
69+
headers: {
70+
"Content-Type": "application/json",
71+
"Cookie": `token=${tokenNo}`,
72+
},
73+
});
74+
expect(deleteAPIResponse.status()).toBe(201);
75+
expect(deleteAPIResponse.statusText()).toBe("Created");
6676
});
67-
expect(deleteAPIResponse.status()).toBe(201);
68-
expect(deleteAPIResponse.statusText()).toBe("Created");
6977
});

tests/uitest.spec.js

Lines changed: 22 additions & 20 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
// Include playwright module
2-
const {test, expect} = require('@playwright/test');
2+
const { test, expect } = require('@playwright/test');
33
const { HomePage } = require('../pages/homepage');
44
const { ResultPage } = require('../pages/resultpage');
55
const { PlaylistPage } = require('../pages/playlistpage');
@@ -8,34 +8,36 @@ import { stageTestData } from "../test-data/stage/google.json";
88

99
let testData = null;
1010

11-
test.beforeAll('Running before all tests', ()=>{
12-
if(process.env.ENV == 'qa'){
11+
test.beforeAll('Running before all tests', () => {
12+
if (process.env.ENV == 'qa') {
1313
testData = qaTestData;
14-
}else{
14+
} else {
1515
testData = stageTestData;
1616
}
1717
})
1818

1919
// Write a test
20-
test('Ui automation test in playwright', async({page}) =>{
21-
// Go to URL
22-
const homepage = new HomePage(page);
23-
await homepage.goto();
24-
25-
// Search with keywords
26-
homepage.searchKeywords(testData.skill1);
20+
test('UI automation test using playwright', async ({ page }) => {
2721

28-
// Click on playlist
22+
const homepage = new HomePage(page);
2923
const resultpage = new ResultPage(page);
30-
resultpage.clickOnPlaylist();
24+
const playlistpage = new PlaylistPage(page);
3125

32-
await page.waitForTimeout(4000);
26+
await test.step('Go to URL', async () => {
27+
await homepage.goto();
28+
});
3329

34-
// Click on video
35-
const playlistpage = new PlaylistPage(page);
36-
playlistpage.clickOnVideo();
30+
await test.step('Search with keywords', async () => {
31+
await homepage.searchKeywords(testData.skill1);
32+
});
3733

38-
await page.waitForTimeout(8000);
39-
})
34+
await test.step('Click on playlist', async () => {
35+
await resultpage.clickOnPlaylist();
36+
await page.waitForTimeout(4000);
37+
});
4038

41-
39+
await test.step('Click on video', async () => {
40+
await playlistpage.clickOnVideo();
41+
await page.waitForTimeout(8000);
42+
});
43+
})

0 commit comments

Comments
 (0)