Parallel Test Execution - Selenium WebDriver Practical Example

11 minutes
Share the link to this page
Copied
  Completed
You need to have access to the item to view this lesson.
One-time Fee
$69.99
List Price:  $99.99
You save:  $30
€65.51
List Price:  €93.59
You save:  €28.07
£56.31
List Price:  £80.45
You save:  £24.13
CA$95.76
List Price:  CA$136.81
You save:  CA$41.04
A$107.69
List Price:  A$153.85
You save:  A$46.15
S$95.27
List Price:  S$136.10
You save:  S$40.83
HK$548.21
List Price:  HK$783.19
You save:  HK$234.98
CHF 63.99
List Price:  CHF 91.41
You save:  CHF 27.42
NOK kr766.70
List Price:  NOK kr1,095.33
You save:  NOK kr328.63
DKK kr488.53
List Price:  DKK kr697.93
You save:  DKK kr209.40
NZ$117.93
List Price:  NZ$168.49
You save:  NZ$50.55
د.إ257.06
List Price:  د.إ367.25
You save:  د.إ110.18
৳7,672.34
List Price:  ৳10,960.96
You save:  ৳3,288.61
₹5,831.54
List Price:  ₹8,331.14
You save:  ₹2,499.59
RM334.37
List Price:  RM477.70
You save:  RM143.32
₦88,222.39
List Price:  ₦126,037.39
You save:  ₦37,815
₨19,408.82
List Price:  ₨27,728.08
You save:  ₨8,319.25
฿2,591.14
List Price:  ฿3,701.79
You save:  ฿1,110.65
₺2,276.07
List Price:  ₺3,251.67
You save:  ₺975.60
B$359.20
List Price:  B$513.17
You save:  B$153.96
R1,339.40
List Price:  R1,913.51
You save:  R574.11
Лв128.12
List Price:  Лв183.04
You save:  Лв54.91
₩96,245.98
List Price:  ₩137,500.16
You save:  ₩41,254.17
₪263.24
List Price:  ₪376.08
You save:  ₪112.83
₱4,030.89
List Price:  ₱5,758.67
You save:  ₱1,727.77
¥10,844
List Price:  ¥15,492.10
You save:  ¥4,648.09
MX$1,188.01
List Price:  MX$1,697.24
You save:  MX$509.22
QR253.94
List Price:  QR362.79
You save:  QR108.84
P970.94
List Price:  P1,387.12
You save:  P416.17
KSh9,413.65
List Price:  KSh13,448.65
You save:  KSh4,035
E£3,350.77
List Price:  E£4,787.02
You save:  E£1,436.25
ብር3,964.81
List Price:  ብር5,664.26
You save:  ብር1,699.44
Kz58,437.56
List Price:  Kz83,485.81
You save:  Kz25,048.25
CLP$66,749.46
List Price:  CLP$95,360.46
You save:  CLP$28,611
CN¥507.15
List Price:  CN¥724.53
You save:  CN¥217.38
RD$4,131.55
List Price:  RD$5,902.47
You save:  RD$1,770.91
DA9,407.33
List Price:  DA13,439.62
You save:  DA4,032.28
FJ$160.49
List Price:  FJ$229.29
You save:  FJ$68.79
Q543.50
List Price:  Q776.47
You save:  Q232.96
GY$14,625.47
List Price:  GY$20,894.43
You save:  GY$6,268.95
ISK kr9,845.49
List Price:  ISK kr14,065.59
You save:  ISK kr4,220.10
DH706.45
List Price:  DH1,009.26
You save:  DH302.80
L1,245.82
List Price:  L1,779.82
You save:  L534
ден4,030.78
List Price:  ден5,758.50
You save:  ден1,727.72
MOP$564.26
List Price:  MOP$806.12
You save:  MOP$241.86
N$1,339.20
List Price:  N$1,913.23
You save:  N$574.02
C$2,563.14
List Price:  C$3,661.78
You save:  C$1,098.64
रु9,324.38
List Price:  रु13,321.12
You save:  रु3,996.73
S/257.63
List Price:  S/368.06
You save:  S/110.42
K264.67
List Price:  K378.12
You save:  K113.45
SAR262.51
List Price:  SAR375.03
You save:  SAR112.52
ZK1,801.79
List Price:  ZK2,574.10
You save:  ZK772.30
L325.94
List Price:  L465.65
You save:  L139.71
Kč1,653.47
List Price:  Kč2,362.20
You save:  Kč708.73
Ft25,766.18
List Price:  Ft36,810.41
You save:  Ft11,044.22
SEK kr760.51
List Price:  SEK kr1,086.49
You save:  SEK kr325.98
ARS$61,084.05
List Price:  ARS$87,266.68
You save:  ARS$26,182.62
Bs481.20
List Price:  Bs687.45
You save:  Bs206.25
COP$273,176.37
List Price:  COP$390,268.69
You save:  COP$117,092.31
₡35,080.64
List Price:  ₡50,117.34
You save:  ₡15,036.70
L1,718.72
List Price:  L2,455.43
You save:  L736.70
₲516,687.24
List Price:  ₲738,156.27
You save:  ₲221,469.03
$U2,685.15
List Price:  $U3,836.09
You save:  $U1,150.94
zł283.11
List Price:  zł404.46
You save:  zł121.35
Already have an account? Log In

Transcript

Hello all welcome back to the next one. In this lecture, we will actually see a practical implementation of parameters and parallel examples for Selenium WebDriver. So, let me actually bring up Eclipse. And let me bring up the website also. So what we're gonna do here is we're gonna run a login test case, we're gonna come to let's call it.teachable.com, and then click on login. And then we will just log into this website.

And what we're gonna do here is we're gonna log into this website and run this test case in parallely for two browsers, Firefox and Chrome. So basically, we cover those things and we will take input from the test ng g dot XML file, so it will cover our parameters stuff also. Let me minimize it. And let me show you what I have in the eclipse. I created a XML file named it as test in G dash Selenium dash parallel dot XML. What I have here is parallel test suite as the name of the suite.

I provided parallel as test. And thread count is two. So I have two tests here if you guys can see, I have two tests here. The first one I named it as Firefox test. The second one is chrome test. And I'm using parameter to provide the browser.

So parameter name browser is Firefox. And for Chrome, the browser value is Chrome. And then I have one class here. The class name is test Angie underscore Selenium parameters parallel example. I know the name is really big, but it kind of suits it because we are doing the real example with Selenium. We are covering parameters and we are covering parallel both the concepts here and it's an An example of that.

So it's kind of decent name. And it's obviously the same class we're executing here because we want to do the same thing in parallel for different browsers. And here we go, we have our class. So what I have here is the class name, then I defined WebDriver, driver and string base URL here on the top, please make sure to define it on the top. Do not initialize it yet, just define them. And then we will initialize them in the before class method.

And if you don't define it here, you will not be able to use it in other places, like after class in those places. So we don't want to define them inside before class, we want to define them outside and initialize them inside before class. Then we have at the read before class, I initialize the base URL here. And then what I'm gonna do here is I'm gonna make use of the parameters. So add the rate parameters. From test Angie, and inside parenthesis, we'll use curly braces.

And we will say, browser. And this accepts one argument called browser. So it will fetch that browser from the parameter in the test tag, right. Now what we can do here is we can actually use kind of F conditions. So what I'm gonna do here is I'm gonna say if browser dot and equals ignore case. And in this I will say Firefox.

If this is Firefox, then I will do a different setup. Else F. Let me just copy this. So we'll change the name of the browser. And if it's Chrome, then I will do what the setup here. So what I want to do here is if the name of the browser is Firefox, then I will actually initiate the driver as a Firefox driver. And if the name is Chrome, then I will initiate the chrome driver.

So let me just copy the simple line from the small class Firefox driver demo. So I'm copying the system dot set property for Gecko driver and setting up it as a driver as a new Firefox driver. So that's what we are doing. And that's about it. Same thing we'll do for Chrome's I'm going to copy the same thing instead of Gecko driver, I'm going to change it to Chrome driver, and here also chrome driver. So please make sure that you mentioned these locations correctly, right because I know this is my correct location.

And you will have a different location for your project. So name it properly. And here instead of this Firefox driver, we will say, we need a chrome driver. All set, that's what we want to do. This is how we use the parameters. Now we have this setup, I'm going to do a few more things like driver dot manage dot, window dot maximize, and driver dot manage dot timeout, implicitly wait.

And then and I'm gonna provide time unit dot seconds. So we are putting our implicit bear of 10 seconds. And then here I'm gonna use driver dot get and base URL. So that's our setup method. This is all done and said, let me just minimize it. And let's minimize the, the import statements.

So now we have the full focus on at the rate test annotation methods. So I named it as test login and let's see what we want to define here. So let's go to the website. The first thing we want to go here is after reaching the base URL, we want to find the XPath for this login. So I'm just gonna click on this, and it is an anchor tag with the class. I don't want to use this text because I see some whitespace.

So this is a little inconsistent. What I'm going to do here is I'm going to use this as our F attribute. So if HRF attribute contains the sign in text, then I can find it. So let's go back close back again. And I'm gonna say web element. login link equals to driver dot find element by XPath.

And my XPath expression would be a contains inside contains I'll provide accurate HR F comma. And this contains slash, sign underscore in. That's what we did there, right. And after that, put a semicolon. And for web element, let's import it from our dot open QA dot Selenium. Now once I find the element, we will say login, link, dot click.

After the click, we need to find other elements. So let's see what happens when I click on it. So I raced to the new page, and I see other elements as email and password, then I need to find the login button. So these three elements need to find and that's about it for this example. So that's good. This element has an ID called user email so we can simply use it.

So I'm going to define web element and email field is the good name Driver dot find element by.id. And we already copied it. Once we have the email field, we will say send keys and the keys to send his test at the rate gmail.com. I'm just giving any email, so it doesn't have to be correct. Now I'm gonna find the password field. And this one is driver dot find element by.id will provide the ID and then Password field dot send keys and ABC ABC and then finally web element and login button, the one on the down which will enable us to log into our app So driver dot find element.

And let's see what it has. So let's find both the elements together. So for password, also, we have an ID called user password. Let's copy this here. So we're all done with the password field. And now let's figure out the login button.

So input and this one doesn't have an ID, but it has a name called commit. So let's find this element with the name commit. So I think this should, this should be good for us. So by dot name, so we can use pretty much everything here we use by XPath. We use by ID we use by name and it's a good test case. So once we find the login button, what we need to do here is we need to click it and also set so we have our test method done.

We have our setup Already done. And now let's try to run it using the test nj dot XML file. So I'm going to right click this one. And what we expect here is okay, let me know what close this Firefox browser. So we actually don't have anything running. Now we expect Firefox and Chrome to come up in parallel and run the test cases together.

So run as test in G Suite. And let's see. So Firefox came in and chrome came in the both are working on in parallel. As you can see here, this is chrome going on. And chrome looks like it finished a lot earlier. And then at the back now Firefox is going on and everything is done.

So basically, both of them came up in parallel, and executed the scenarios together. And we can see that obviously, there would be some difference. And a little bit of time when chrome came up and Firefox came up depending on our system, Ram speed and memory and also browser speed to sometimes chrome can come up before Firefox and sometimes Firefox can come up for Chrome. But they're still in running in parallel, right? So that's a real example that we wanted to take a look. Please download the code files executed and let me know if you have any questions.

I'll see you in the next lectures guys. Thanks for ending this one. Thanks.

Sign Up

Share

Share with friends, get 20% off
Invite your friends to LearnDesk learning marketplace. For each purchase they make, you get 20% off (upto $10) on your next purchase.