Transcripts
1. Welcome and Intro to the class: Hello and welcome
back to my classes. I am truly excited to share
with you a new QA topic. This time, when we talk about
automation frameworks and the importance of using them
in your quality strategy. We will use cucumber and Robot
framework to determine the important aspects
you should have in mind to have a
robust framework. If you are considering
automating your test cases, this class is something
you have to check out. So let us start. Before starting, let
me introduce myself. My name is Winston Castillo
and I have been working as a QA Analyst for
the last six years. And I started as
a manual tester, but it was a natural
jump to start automating. And yeah, you guess right! My first problem was to understand why should be the best
tool and in case I want to use a new one. What are the aspects I should
have in mind to select it? It will come in
handy to understand some aspects before
starting with the class. And here I want to make a
stop and remind you that might classes are divided
into three sections. First one is about
concepts and some topics I think you should understand
before trying anything else. The second section, we follow a guided activity with the
tools involved in our topic. So that if you want to
jump directly there, we will start using cucumber
and Robert framework. Finally, the third exception. It will be at the time for you
to work on your challenge. I hope you enjoyed the class. And if you have any
feedback or suggestions, make sure to comment or review this class if you
find it valuable. Welcome again, and
it's time to start the first section
of the class.
2. 01 What is a Framework: One of the things I enjoy
the most are related to the conversations we
lead with our teammates. For the valuable things
we use in our daily jobs. Maybe we are obsessed with
using our time wisely. But when it comes to QA things, it seems like all our
job is to test over and over the same things
with no compassion to find the bugs and malfunctions to show the developers, we can be just as smart as them and they cannot fool us. There should be a way to gain their respect too, and that moment
could be when we start
creating automation. This is a serious matter, and in case you hadn't noticed, it is that part of the
quality process where you can face some of the things that
developers also overcome. This class is all about. So here's the first concept
we will review in this class. What is a testing framework? A Framework is a set
of guidelines or rules to create and
the scientists cases, it is a combination of
practices and tools that are designed to test more
efficiently and also required. Some of those GI lines
are coding standards, test data handle methods. Git repositories,
processes for storing test results or information on how to access
external resources. One of the things I
want to tell you guys is automation can be created
with absence of these rules. Don't get me wrong. Of course. We can create a Romanian without
following these rules. But when we are
talking well code, the benefits of
following patterns will be majored in our world, will be easily integrated with the work of the
rest of the team. And we will provide a
protocol to follow in case already QA's one to include code are maintained in
day one we create in our automation way, way,
way, way, way, way. In means to automate
this august necessary to know how to call yes or not. What do you think is the best
answer to this question? Before answering me? Yes. Blend you some things.
3. 02 Keyword, Behaviour and Robustness: There are six common type of
test automation frameworks, each with their own
architecture and benefits. Here's a list of the types of automation
frameworks we can find. Linear animation
framework, modular based automation framework
or library architecture testing framework data-driven
same word, keyword or behavior
driving framework. And the last one, I read testing framework. Yeah, It is not necessary
to go for all of them. Linear test
automation framework, also referred to as record
and playback framework. Testers don't need to write
code to create functions. And the steps are written
in sequential order. In this process, the
testers records each steps such as navigation, user input or checkpoints. Then place this script back automatically to
conduct the test. Sadly. We will work with keyword or behavior
automation frameworks. Cucucmber is a behavior
driven framework and robot is a keyword
driven framework. Both of them are created to make easier way to
understand the code, make possible to everyone to know what you are
testing with your code. So it means the answer to
this question is a big YES but no worries, I got your back. And I will guide you to use Both frameworks and being able to create a simple automation
with the tools. Now that we are talking about
the type of frameworks, let's talk about the
keyword driven framework. a keywords driven framework
is a type of a full shell.
is a type of Functional Automation Testing Framework which is also known
as table driving testing or action
word-based testing. The basic working
of keyword driven framework is to divide the test cases into
four different parts. First one is called test step. Second is object of test step. third is Action on Test Objec and then four is
data, test data. Let's elaborate each component. For example. Step is a very small description of the action the test
object is going to perform. The test is, it is the name
of the software application, object or element
by username field, title of the window, password field, those
kind of things. So the option, it is what we are going to
perform on the object. The action could be lead on
the elements of the browser. It couldn't inputs on test, etc. I'm finally the test data. And the data can
be devalued needed by the object to perform
and certain options. Username, test, volume, and password to use as
credential to volume. So the main idea with the keyword driving
perspective is to separate the code from the test
cases and test steps that and not technical person can understand automation well. The biggest advantage is once you start with
this kind of framework, a manual tester can write
automation scripts for you in the future without having a level of expertise
with coding. It sounds great, doesn't it? However, the COVID skills are still require
it for setting up the framework and to
work on regular changes and updates of background
automation code. Once the framework is set, the rest is about
making it rebels. Now, what is behavior
driving framework or BDT? That is a branch of
principles defining but test-driven
development or TDD. I bet you had her about this. Because what is VDD about? It means we will need to create an understand the user stories and their assets as criteria. Because in test drive
in development, we build from the unit tests and made them pass
with our code. And in TDD, we create the escenarios and
make them pass too. The principles and
knowledge is leveraged in BDD had been widely adopted
in functional testing. As I mentioned,
Cucucmber is a BDD. Testing framework,
which has Enable non-technical product
owners to define application behavior as
human readable tests. Those behaviors or futures, trust lay into code. The QA team can achieve
test automation faster and easier even with a lack of
domain or business knowledge. Now I want to bring into the
table what is rabbits nest? Because we are talking
about robustness. There are a couple of
factors to consider. If you want a robust framework, the first thing you had, you should have in
mind is the framework. Organization. Automation
framework needs to be well organized
to make it easier to understand and work
with the framework. Organized framework
provides an easier way to expand and maintain. Items. Do we consider are easy way to manage
researchers configurations, input, direct test, test
cases, and utility functions. Provides support for
adding new features. Easy to integrate with
automation tools, third-party tools,
database, etc. And have this term that is creating guidelines
that needs to be follow in case you want to
make better your framework. The other thing you
should have in mind is a good design
for your framework. Animation tests are used
for long-term relation runs to reduce the
testing turnaround time. Hence, there is sense
in bold should be good so that the test can
be maintained easily. Following are some of
the good design steps. The first one is separation
of application or ketose from the test code so
that the locators can be dated in
the locator five, independently onchange,
separate test data from the code and pull data from this internal sources
such as IT sale, debts, flyer, CASB,
or it's an XML files. Whenever required, we
can just update the data in the file so we don't need
to change all the code. The data will be in those
files and we can update and easily organize
tests as modules, functions so that they are
real sable and easy to manage. The application
business logic in this separate class and
Khaldun from the test class. Test surely start from basis state and ensure
that it recovers and continuous when there are intermittent test
failed, failures. What I mean with this, you should be able to create test-based state for
all your automation, so that makes your framework
better and more rows. The other thing you
should have in mind also is the
configuration options. The first one is the framework to provide
an option to shoot the configurations at
runtime so that it can be used as per the test
execution requirement. Some of the configurations
include ability to choose test execution environments such as QA, staging or production. Ability to choose the browser. It could be crown or
five-fourths, for example, our ability to choose the opportunities seize
general platform, and the ability to mark four priority dependency
and roofs for the tests. The other thing that
major framework travels is real sable libraries. Libraries help in grouping
of the application is deities and highly complex implementation large in
front of the external wall. It helps encode real stability
and easy to maintain code. So one of the things you should do is to build
the libraries of utilities, business logic, and
institutional connections. Also build a library of genetic functions
of the frameworks. So if you do that
and completion, you will have a really
robust framework. Everything is about
report and lakhs. To evaluate effectiveness
of automation, we need to write set of results. The automation frameworks
should provide all the details required
to test execution and provide lots with necessary details of problem
with the custom message. And also you had to
report which provides the details a fusion
status with pass fail escaped category alone with the screenshots effectively control the
automation framework. We need to keep track of it. The version control system
is required to achieve this. Also, we need to run the
relations sweet continuously to ensure that the tests
are running fine and the application
functionality is as expected. If we bill the rovers
automation framework with the bot capabilities, we gain the benefits. First one is increase
product reliability, accurate, efficient,
automated relation tests. And we reduce risk. Reduce their product
release cycle time, improve the time to market, reduced QA cycle time, and improve efficiency
and effectiveness of QA. So the QA team is free to focus on manual
efforts when needed. That's all my friend, that's all that you need to know about robustness in frameworks. So you already know
everything you need to know. So let's move on to
the next section where we will start working
withdrawal and cucumber.
4. 03 A Second Part: Installing Robot and Editing PATH in MAC: Ready to start installing robot framework
for your computer. This step is only for Mac users. If you don't have
a Mac computer, you can skip this video
and go to the next video. You have window. Go
away to the next video. It means that you had not. So here you have to perform some steps to install your growth framework
in the computer. First one, go to your terminal. To open your terminal, you need to do is to
type terminale here. Open the first result. You will find these terminal. And one of the
thing that happens with the terminal here is that now Mac is working with an SH. And everything we are going
to do is for these terminal, this new type of terminal
is not the bash one. The old one is while
it was the bash. But now we are working with C, S, H term ELA. And these steps are
for that terminal. However, once you have
your terminal open, go to robot framework that org, this is the official website. You will find all the
documentation from ROD Framework. Remember, here we are going
to work with ROD Framework, Selenium library,
and also Pie Chart. And what we are
going to do is to create a robust framework. So yeah, I think
that's pretty much o, and here, what do we need
to do is to study styling. You can click on here and
you will see these command. The first thing I
want to let you know is that one of the things
that have happened with Mac, you had two types of
versions in your computer. The first one is Python. When you type Python
slash slash version, you will see that you have
Python that to that seven, that 18 and that version. It is because of the beta
test system regarding Mac. It means that we got
this version to run the whole competitive system. But they want, what
we need is gonna be the Python three version. So if you type
Python three dash, dash version, and you will see Python three
that a that night. That one is the one we are going to use to install
broad framework. When you see these command, something that I
really recommend you to type on here, copy. And then you have to
pace here that command. But we are going to do a couple of things to change
this command. The first one is we
are going to tap sudo and hearing Pete, we will, we will add the three. We will run that pseudo bit three instead
robot framework. We will type our, our password, the password
we use for the computer, for the youth user admin of the computer will
be my password. I cannot tell you. Okay. You will see something that requirement
and ready satisfy. And you will see the URL for the dilatory where your
framework is install. However, I just want it for the, for the version of three. If I really want to get denies any style it in
the right, in the, in the, in the right attorney, in the right version of Python. All that I need to do
is to check that here. I'm going to type, delete it
where it's supposed to be. My my broad framework. Everything that you
have to do here is to go to your, to your library. You're surely it should be CD. You can't use the quotes. And users. Your name, usually the name of Usha that you'll
sweat users, Sorry. My cases. Lagging stone Castillo. And after that,
the slash m here, you can type library. And then you can add
another slash am. The only thing that
changed is this, the name of the user, this case minus this one. Here we are in there in
the, in our dilatory. You can tie open that and
that will open our finder. What happened here? You had that seven version and the
three that eight version. If you type, if you
clip on the bean, you should see this robot. Here you had instead
in the version three, the ROD Framework Program. So make sure you actually
have that version in DC. This version, diversion of Robert
install on this directory. Otherwise it should be
in to that seven being, you should see here something
that says draw both, okay? No worries. If it is here, it means that your broad
framework is going to run. That seven version is not. For me. I don't recommend
you to run it there, but it's not, it's not gonna be a big problem for this class. However, I really
want it to be here. And thank you. We need this data story. One of the things
that I do is if you, if you put your mouse, if you move your mouse
on the bin folder here, you can drag these
to your terminal and you will see
the whole dilatory. These are the three
we needed for the, for the path, the path of a variable
that we use in Mac. If I type echo path, gonna see my path variable is
already set in my computer. Because I had been working with broad framework before,
but no worries, I'm gonna show you how you
can edit your path variable. Here's what we're going to do. Fair thing. You had to tie echo. Path should be in capital
letters, breeding capitalism. You will see here
all the directories that are for the path. If you see here, you will see that my my URL for my Python
is already added. That maybe in your
system is not there. We had to complete zone
and smaller steps here. First one, we need to use
this command sudo nano. And after that, we are going
to edit the file for the S. For the TSH. We need to type. All these commands are in the
description on the video, so no worries, you can
just copy and paste. You type this. You had to add your password
for the computer and again, security for you. There, you should add
another line that is sport path and copy. It's actually the place
where your robot framework is that you open a
new window here. The third is the one that you
had to copy and then paste. Everything that you have to do here is you go for
the last line. You and you tie a support. Padding, capital
letters equals quotes. Padding in capital
letter column. Then cheer, you had to the
directory that you have here. Remember that should be
the Detroit where you see these robot execute file. Everything that
you do is you copy this and paste it here. And it should be this way. If you see, I already did that. So it's here. So there is no need
of repeating that. I already had my directory
in the path variable. And after that, what
you have to do is to press at the same
time the Control key. And it's going to ask you if you want to say modify both buffer
and you had to say yes. It's an asked you what is the file that you want to write? You have to let it
exactly the way it is. Don't touch anything. It should be something
that as HRC file. So you just press
Enter and that's all. After that. The last thing that
you have to do is to reload all those values. And on the you need
to do is to type source and then use your file. Should be. And
suddenly this one. And you type Enter. And after that, you are
ready, you are ready to go. Remember these commands are
gonna be in the video so you can't just copy and paste
them on your terminal. This is not really complicated, but the only way
that you are gonna know that you did it dry is when you type robot and do
the robot dash version. And you will see the
version of your row. Here. We aren't going to work with broad framework for that one, that three, that's the
version we're going to use for this class,
for this video. If you reach this part, congratulations, you are ready. You already installed Road
framework in your Mac. So let's continue with
the rest of the steps.
5. 03 B Installing Python and Robot Framework Windows: We'll just start to start
using broad framework. We're gonna need to
use Python three. If you had a window. Window or parity system
is not minutes or Mac. This is not necessarily to
see the previous video. This is the way we
are going to work. In the other videos. Don't think so much about this test that I performed in the
last video for Mac, because those are specific
for Mac and Linux. And in case of window, there are some things
that are easier. The first thing I want you to do is to look for Python three. Do download Python. You type Google.com. You can reach this website. Python m. Please download the latest
version for Windows. Make sure that you are downloaded
the version for window. If you, if you tie here, you just need to
allow the computer to download version,
download Python. And then you will
see when we start to start installing Python
on your computer, if you had a Mac version, you can actually
skip this video. But here there are some things that are
important for you. I'm not gonna install these
because I already did it. But one of the thing I
want you to do is to select this one is
starting now that it's going to include
the documentation. The EDL is another one
that we're going to use, but it's good to have
in your computer. But also please check this one. Python, three dots to the path. We're gonna need python
added to the past. If you don't know how to do it, I'm going to show
you how to do that. Actually, it's gonna be
easier if you do it here. You don't need to
do anything else to prefer any extra step is to just check this part
of the installation wizard. Then you just click on Install. Now you're gonna perform
these because as I told you, I didn't really install
Python three, my computer. So it's not gonna be necessary
for me to run this step. Once you type out here, just waiting until
the Hole Wizard install Python on your computer. And when you receive
the success message is gonna be the time to
continue with the resources. The other thing we aren't
gonna need is ROD Framework. But relative framework
works with Python. So again, it's going to be
necessary to have Python on your computer before moving
on with the other steps. Just type robot thing that come once you have
that surgery that, or it's not that kind of
sad or just make mistakes. Here is Road framework, framework for g. Here you will see all
the documentation of our Road framework. If you start Python three is not gonna be necessary to
perform any other state. Rather than run this command. You just click on here, copy and go to your
terminal here, you can type CMD. You will see your terminal here, all that you need to type the command that you
copy from the website. Install broad framework. Once you have that, once
you do that, you gonna see, in my case, you
see that I already had the programming
styling my computer. This message is about
It's about upgrading. Might Pete, I should
do it in the future, but it's not a big deal. I can work with the one that
I had here is not a problem. However, this is the only
thing that you need to run. After that, you just type in this command robot
dash, dash version. You should receive the version
of your Road framework. So it should be
something that I've robot dash entered and you
will see something like this. Once you have that is unnecessary to
perform any other step, you add the row of framework
installed on your computer. You are ready to go. This is the only
thing that you have to do to install a
broad framework. Next step is gonna be
two instead the EDL, where we're going to start. One that we are going
to use for this course. So I see you in the next video. However, all the commands eight years in B's
in this video. All the commands that
you need to time in your terminal are gonna be the
description of this video. So no worries. I will see
you in the next video.
6. 03 B EXTRA: In case you didn't check the "Add to Path" in the wizard: Well, should we get
an extra step in case you didn't check
on the Python three. We saw that
installation process. You'd never check on the ACT to pass a checkbox on that
you need to do is simple. You are going to
type here variable. You're gonna see this, edit the system and
vitamin by the walls. Here you will see a minimum. Invite them, meant by doubles. On there. You will see
two different paths. Variables. You will see here in
system, but it was, you will see the pathway
levels and hearing the users, you will see another path. Longitude do for example, if you click on Edit here, you will see all the URLs. Where are they located? In case you didn't. You didn't add Python, the Python, the Python
data to your path. You don't need to do it here. It's not gonna be
necessarily to do it here. Just close here. Because the part that you have
to edit is the one that is upper sets shown is the one
that is here. Edit here. And you can't, you can only add a new path, a new directory. You have to do is just
click this button. Here. You will add the
one for your Python. If you see here I had all my Python directory
already added. For the samples Euclid here
you see the Python scripts. I had everything and
really added to my path. Here I had the Python's
version on race style. But if you want to add the path for these
binomial random variable, you need to do is
to type Python. When you see Python in the
list of your, of your matches. Don't open it. Don't do what I did. Just type Python because you're gonna see that a couple
of options here. I want you to type on this
one, to click this one. So it's going to open the folder where Python
is, is the following. We need to add for the, for the path variable. If you see here, I got the
scripts and thank God, for example, the pirate 3832. That is exactly this one, is the one if you
see see you, sir, Winston Castillo, app
data roaming, Microsoft. Maybe it is a little different, but my recommendation
is to use this one. So after that, you
just read on here, copy this, then go
here and add it here. You just type on
new. Pass it here. I'm not gonna, I'm
gonna add anything. But you had to. After you do this, you need to do is
to tap on, Okay. After you do that, you can just you can just
click on. Okay. I think it's
different, this one. So I'm going to add
it just to make sure that and having
the Python variable. However, it's not gonna be necessarily for
me, as I told you, I already configured
all these variables, so it's not I didn't
need it at all. Once you've finished with it, just click on, Okay. Okay. Yeah, that's all. You're already at. Python to your path. Again, if you don't
check that on your, on your installation process, you have to perform these
manually so you don't need to remove our only started
everything any style. Again, you just need to
run this extra step. If you under David, No worries, You
don't need to do is. So see you in the next video.
7. 04 Installing the IDLE: Pycharm: Hello again, shear. We are in the Google website and now we're going to download the EDL we will use
for ROD Framework. Let me try to make it clear. The EIDL is not going
to not going to produce any different
effects or resolve. The arrow is to make
us work better or easier to run or our
scripts and do some things. So in case you cannot
install some other things, I'm going to recommend
you or suggest you to do. You are free to use
any other tool. The only thing that
you had to keep or to be careful about
is about the wage. You type the keyboards. Because the keywords are the most important thing
on broad framework. Remember this is give, give your behavior framework. That's the only thing
that is gonna be really important to us. The result, the
things I'm going to use do this because it's one of my it is easy to
meet. You understand? And that's the reason
I prefer to use it. Okay. No worries at all. If you don't use it, you can use a blind
test that is editor. You can use your text editor. It's not a big deal because in case of fraud
framework in Python, you don't need to compile
that code that you create. However, please try to use
PyCharm is a good one. So all that you need
to do here is to type pie chart. By chance. When you click pie
chart, you can also, you can also add in
your search community. Because that's the
one we are going to use the community version. Why we are going to use the
community with version? It is because it's
free to download it. You are looking at my
width signing in Spanish, That's my first language. Switch to English is gonna
be closer to the website. You're gonna see, yeah, it's gonna be something like this. So please use this one, the community version,
just click on here. And then after Euclid on here, it's going to lead
you to this website. Try to download the file. And I'm gonna need
to download that because I already had PyCharm
installed in my computer. But all that you
need to do is to download the PyCharm
version and you will see virtually this one
for the community edition. So that's all that
you need to do. Please download the file
and then clip on here. And you're gonna be
guided in all the process to install pie chart
in your computer. That's all. Once you already had pycharm, you just need to run this. Just gonna show you
some screen by Hub. You can do it by your own alone. You want Hello? Yes. Yes. And it's gonna it's gonna lead
you for the whole process. This is only working on next. Next, next, you will
install the product. You want to quit. Once you are in PyCharm thing, I highly recommend you just start using an editor who help you to a plugin to help
you to create your test. Your broad framework called albedo because pie chart
takes a little while to load. But yeah, one of
the things about the evils is that you are gonna have a lot of things
happening on your screen. That's the recently,
it is easier. I do prefer to use them because it's gonna be easier
to util understand the rope, the framework, the framework. Necrosis, sorry. Well, isn't it any easier
to do to understand the framework structure here
you will see some things. So please don't pay so much attention on
this because we are going to start creating our
own project for this class. I'm going to explain
you earlier of the screens and you
are going to see here in case we can see, all, all of us can
see the same thing. Major that you had a screen. Just write this. You should project files here. You should see the It's
something like this. On displays. Here you will see
the terminology. Does a reasonably do prefer
to use the EDL every change, the Jupyter for here, you can run it immediately. You don't need to vote to any other way to
do anything else. You can do everything
here in the evil. We're going to
create our ones and it's going to be easier
to use to see how to create a robust framework and why it is easy to do
with Robert framework. And what are the things
that he already that the framework does for you. Gonna see the differences
with cucumber for example. However, let us, let us start, but before starting, I'm going to ask you
to go to settings. Here in plug-ins type drug. Once you go here, there is a plug-in that is called Robert
framework support. Support is the one that
I need you to install, measure that the other author
of the plugin is valid. You Angeline. Click on Install. So again, it's already
starting my computer, so I don't need to run
any of these steps. Very high, highly
recommend you to run those steps before
continuing with the rest of the
beauties of the class. Once you have these
unready done, we are ready to go, but there are still two more steps that
you had to perform before continuing
with the course and with the things
we are doing here. Again, we are gonna need new edition on the
path variable. And in case you are a Mac, I'm gonna create a
video to explain you how to do that in your computer. And again, it is
necessary to perform all these steps before
continuing with the videos and trying to
replicate any of their steps and letting you here so please
follow all of them. I'm gonna see you in
the next video. Bye.
8. 05 Download and Install SeleniumLibrary: And yet here we are in my
website when stone Castillo, that cone slash
rover cell anion. Here we will do some
things to understand concepts on frameworks,
on automation frameworks. What we have here
is we are going to try to create an automation
and simple automation. Understand all the concepts
that we studied in the first section of the
class of the videos. I am going to do here
is to go to Contact Us. The fourth weren't
going to test. Maybe these foreign is going
to change in the future. So maybe when you
see this class, you return to this form and
maybe it could be different. But no worries. The 4%, what I want here is to create different
users and tried to say in this contact
form at least ten times and feed it out with the information with
a different file. But this thing here
is that we are going to test a user-interface
from a website. The web applications we got in the world during the internet
and you want to test them. The best way to test
n is with Selenium. Robot framework also
had Selenium library. We can use Selenium to
perform all these steps. This selenium is a library is totally different
to having a framework. Even if you use
Selenium with Java, we're going to use
it with cucumber. Selenium is only a library, and selenium only provides, provides you some methods to test user interface for a
website or a web application. So if you want to test an API, or if you want to
test, for example, an application, an
app for your form. You are gonna need
other libraries, other files, other things
in order to do that. Remember this. One of the things that I wanted
to spring here is that having a library in your
framework is going to, going to make you
easier to work. Those are one of the
aspects you should have in mind when you are
selecting your framework. It should provide you a way
to change between libraries. It means that you don't need
to learn a new framework in order to create an automation for an application
for your phone. For, for an API endpoint. You should be able to
use the same framework. Here. What we are going
to do then is to download the download that library. In order to achieve that, we need to go to the
road finger website. And we will have
some disruptions how to download the library
we are going to use. Again, this route, we are
going to use Selenium because we are going to test
web application. If you go here, there
shouldn't be getting started. Resources. There should be a perception
about the libraries we got. We had here, we got
some libraries that are built or there are other
libraries that are not, are not included when you
install your broad framework. Here we got a couple
of libraries. If you click on buildings, you don't need to solve
any of these libraries. Maybe we aren't going
to use these libraries. But if you go here, these are external libraries. If you want to see
more, you just click on Show More and
you're gonna see it all the libraries that are available to use
withdrawal framework, for example, this
one Albion library is to test Android
and ios testing. We got the for many, many, many different, diverse. Again, the one that we need
is this one selenium library. Again, when you want to test
something with a library, you had to download that data
library in your computer. And that's what we are
going to perform now. Everything that we
had to do is to run this command indeterminate. So let's run this copy. We open a terminal in Mac. Remember if you had a
Mac just type terminal, you will be able to see the terminal or the
common problem. But in window, because
I'm working with window, I'm gonna run CMT. Here. You need to do is to paste. That command. Doesn't work. I'm gonna do it again. It says that it's
set for install. I should not be I should, I should not had any
problem with the library. This is a pretty thin
that you had to download. Sometimes it is
showing these kind of warnings based on the things that are happening with Python. However, if you want
to see what are the things that you
already started, you just need to run this bit. It's going to provide you all the things that
are installed. If you see ROD Framework, Selenium library, those
are already style. You don't need to do
anything else. That's all. Let's go for the next step is the last one we need to do in order to start creating our
automation for this class.
9. 06 Download the Driver: So we reach the final step
for to perform this one. Cop this stat into videos. The first one for the driver, and the second one
to edit your path. Why I decided to split this
class into two videos. This step into videos. It is because it's going to be different in window
the way that we, that we modify the path. And they way that we modify the path in
math is different. So this is step is exactly the same even in math or window. However, the browser we're
going to use to perform all the videos in this class
is going to be Chrome. However, again, gonna be necessary to use in
order to understand the benefits of having a framework to be able to
change into crown and be able to change to
five-fourths foreign sample and run the whole
the whole code. But that challenge
is going to be for you once you reach
the third section, the only thing that you
have to do is to download the five-fourths and look
for the five-fourths driver, then change it everything. However, I'm gonna
provide you soon as steps to prefer that option. However, here we are trying
to download the Chrome, the Chrome driver for Chrome. The first thing that
I need you to do is to create down here and go to help clear them
about Google Chrome. Once you click on
About Google Chrome, you are going to see the version that you
had for your computer. This is extremely
important to know because once you go to Google, that can Euclid on here, for example, Chrome
driver download. You are going to be in a repository of different
versions of the Chrome driver. But you had to look
for the one which matches with the version
of your Google Chrome. You had 96040 seats. I think it's this one. I think. You see that here. I had the 9271 and
maybe that could be, you know, maybe you think it could be a
problem but no worries. At least these
three should match. Maybe the one that I'm
looking for is this one. I want to download this one. Everything that I need
to do is to download the depending of the
version that he had. For example, this theory two or in this case I just had it. Once I have the Chrome Driver, I need to strap this file. I got a special folder
here in data, the data. I'm going to create a folder
for my, for my browser. I'm going to create
a new folder. I can do it here. That is going to be on. The Chrome Driver is
absolutely there. If I go to that folder, I'm gonna try to
open that folder. Let me check it out. Here. Data browsers for drivers, for browsers, I think
that's the name. I'm gonna look at that
one driver for browsers. Yeah, it's this one. Here. I had the Chrome driver. The next step that I'm
going to explain you, the next video is
to add these you, this directory location
to my environment. Variables in vitamin,
vitamin butter. Well sorry. That's
the final step. Again. It's different
in window than in Mac. So that's the reason I
decided to split this video. So this is everything
that you have to do. You already download the
version for your Google, for your Google browser. And the last step
is to add these to the path bottom will see
you in the next video. If you add window
and if you had Mac, go for the Mac video
for this step.
10. 06 A Editing the PATH variable in Windows: Well, how we are going to modify the path here in window that I need you to do is to
copy this directory, the directory where you actually strategy electron
driver that adds, maybe it's different for you. This is the one that is for me. Everything that I had to do
is to copy this and type here variable and go to Edit sustaining vitamin
environment by nobles. Once you are here, click on environment variables. In, here in the user. Just go to the Path. Click on edit. Here in the last one. Type of new location. And the salt run ready
modify the path variable. So let's go to start
using ROD Framework.
11. 06 B Editing the PATH variable in Mac: Here we are in the class
to edit the bathroom mat. And to be honest, it's not so much that
you have to do to edit the path and run this command. Sudo nano already here. Do you need to just to run it? I don't know what is the name
of this symbol in English, but it will provide you light the root of your directories. Once you are here and
you use the word pseudo, it is because you are
going to do changes in an admin level. In Mac. You just taught, you
just type on Enter. You had to provide
your password. After you provide your password, you're not gonna see that nothing is changing
in a determiner. That's not among you, is you are not writing, but do you do then hit Enter
after you put your password, after you write your password. And here's the step
depart when you need to add the directory where
you had the drivers, for example, one
of the directory. The auditory when I had my my divers is this
one, drivers browser. So if I just go to the driver, to the folder and
click on the name, and I got that to the terminal. I can have the root. But these rules is already
added in my computer. If you see here, users,
Winston Castillo, library, documents and
drivers closer than this one, if you see, it's not
necessarily true either. But for you, if you
had another URL, please just type export path equals you make the batter will path to like keep the order. The other stories that
are already added, then you're on your
own, you're dealt. My recommendation or
your directory, sorry, my recommended
recommendation here is to add that new one
in the last line. For example, here. Once you added all
that you need to do, I'm going to add anything. Again, it's already here
so I don't need to add it. After you finish just
here on control. And it's going to ask
you to modify the file, just type and y. And then stat just going to ask you the file
to define a into right? Keep it the way that it is
is this file cs h, r, c. And just hit enter. That's all. After you've finished the last, the last step is to run the search with the name of the file that
you unready modify. Because it's going
to load the changes. You just type search and
hit enter, and that's all. Your path is already
there if you want to, we want to prove or
can prove that you actually modify the path
variable, just type equal. And after that, go to that in capital letters
and path capital letter. And you're gonna see all
the directories that are already are at your path. That's pretty much all is you. If you follow these
steps, you know, now how to modify
your path in Mac.
12. 07 Creating the base code: So here we are. We are going to start
with robot framework and really happy to have this class. And what we're going to do is we are going to go
for these wet sky. We will click on Contact Us. And after that, we are going to fill out these forms, k1 summit, and then we will return
to main website. To the main page. Yeah, that's all that
we are going to do. The first, the first
thing we will do is to create a
simple automation. And the first thing you had to open the Selenium
library documentation for robot framework. The Selenium library
documentation is here. And I highly recommend
you to use it. When you are creating
your information. It's really difficult to remember all the
keywords are right here. So all that you need to do is to read the
documentation of all, for example, this
these keywords. You want to assign ID
to our main keyword, wherever you will have here, and that's no commendation
to start using it. So feel lucky because at this point we got
huge documentation about everything and
all the keywords that were used for
Selenium library. We will start creating
our cold right now. The first thing, go
to your pie chart. Once you are here,
maybe you are not going to see the projects
that I had here. No worries about it
is not a problem. So please done. Take too much time to
emulate the same screen. Not necessary. What we are going to do is
to start a new project. So the first thing, the first step, go here
and create a new project. Here is one of the things for
the idle to have in mind. A asked you to create a built-on environment with
your, with your project. Maybe this one is the default selection
for your, for you. But what we're going
to do is to create a project for ourselves
to rot framework. These things about creating a weird one machine
where you can have all the computing
vitamin with libraries and everything for Python. But again, we are going to
work with throat framework, so we'd need to use Python, but we are going to use the robot framework
environments to create our, create
our framework. I'm gonna repeat this steps. Do you have to go here
and create a new project? Once you are here, you had to use to select the
directory when you want to, to save your project. In my case, I create a folder that is called
frameworks rabbits. And I'm going to create
a subfolder for this. Here in the neck,
create, assume folded, and I'm gonna call
wins turn Castillo. Store. Here. I'm gonna have my project. And I think that's OK here. And I'm not going to
use a new environment. I'm going to use an interpreter because I already installed Python three, you
might computer. I'm please make sure you
don't have this option check. It should not be checked. So it should be uncheck. Create onCreate. Here, I'm going to ask
for a new window in my case because I want
to my project here. I'm gonna move this right away. You can do it in the same
window if you don't have any other projects
under the append. So it's not going to be
necessary to create a new one. Here is our folder,
Here's our project. The next step is to
create our first file. To do that, you just right-click
and then click on New. And you should be able
to see them fine. If you don't see
the option here, maybe it is because pie chart
is dating, so no worries. It's gonna be available after the PyCharm is already dated
and you had the robot file. However. All that we need to
change is instead a statue stem shown off the
file is not a big deal. But when you create it by here, you are going to have that
robot stem extension. So it's going to be
like, for example, fears automation that robot, so you can run it. However, what I'm going
to do here is to create a road file and here
I'm going to connect, create a serious one. After sometimes I'm gonna, I'm gonna let you know why
I created with that 001. I created. And I'm going to have a file just like this
one where I have the test case settings keywords that we aren't
going to do is to sample. My first automation
of the class. The library we are going to use is not order than
Selenium library. So we had to write it like
it's an anion library. That's all now we got all the keywords that we
got for Selenium library. We got them here. Hold those keywords
are unready here. Remember to use etc. The way that you see the name
of the library heat here, she'll be exactly the
way that you type it. Your library. Library here with
capital letters and everything
should be the same. Okay, so now what we're
going to do is simple. We are going to go
for my website here. After we open the website, we are going to
click on Contact Us. And then again going
to fill out this form. And that's all that
we are going to do. I don't think we're gonna
need the keywords for now. Our test type is gonna be 01. I'm going to create this case. It's going to be the first one. The second one is going to be sending information.
Let's start. Our tax is going
to be the tax are. As I told you, a good
framework provides you ways to run for the sample
specific test case. You don't need to run all the test cases when you
want to run an automation. So that's the purpose of having
tags for the automation. If you agreed here, for example, a smoke test that you
are going to run when you ask road to run the
test cases with the smoke, that is what the test cases
that are going to be run. You can use multiple tests is not not that you only
need to use just one. And that's one of the benefits
of having a framework. We are not building
the framework here. There are such a
multiple frameworks. And again, this one is
one of the easiest. For now, what we're
going to do is to use some keywords that are that belongs to
Selenium library. And the first one
is open. A browser. Browser is our our
fears keyword. If you see, we see all the possible
keywords and you can have some help
from the editor. You're LDH is the first
one thing that you had to send and then the browser. So you need to do is
to hit on top or get more than two spaces
and then you can use their URL is the first thing that you have to provide here. And the URL is going
to be stdio.com, Robertson, Control-C, Control-V. Then I'm going to hit
again on the top. And we can tell Chrome
browser we are going to use. We also can use CC,
sorry, Google Chrome. This is another way to
define Google Chrome. Or we can use crown. If we want to use
five-fourths for the sample, we use five-fourths
when we need to have the drivers for five-fourths. We also can use
Edge is up to you, but now we're going
to use contract. Google Chrome. We are, their nets thing
we are going to do is we will check that
the title is Latina, that we can stronger CTO. Okay, So title should
be used today. I'm going to use I think it's
not with capital letter. Let me shake it out. Yeah. We know capital letters. Capital letter, Castillo. Next one is Focus two elements. Here I'm gonna provide
they're located, they are located or is link. Links. I can use older kind of located. Located is contact. I can use the link, I can use the Add spot, the class, whatever I need. One of the things
that you had to do to provide the locator on a website that you create, you just make a right-click on the element and you
click on Inspect. There you will see a
window just like this one. Click on the arrow here. And if you click there, you going to see kind of
highlighted in the elements. That highlight is to show you what is the
element you are selecting. For example, if I create here, I clicked here and right-click
in the inspector window. You can copy. The path is tight spot, spot. You have different
ways to provide information of the element
for the US and they scream, for now I'm going to use the
link that is Contact Us. So simple, it's easier for me, so I'm going to use that. And then I click on Link. Link element could be. Here, is this one. If everything is okay. We should be the
second test case. And the second test case is
sending the user information. First thing is titled should be. If I clicked here, I
click on Contact Us. I shouldn't read window
that is called Contact Us. Tab on top or get more than
two spaces and contact us. The next thing I
should say in here, some of the information I shouldn't say
and the info here, here, here, and then
click on Submit. I think that's all my
test case about taught here. Plus two elements. And here I'm going to use
focus on these elements. Is this something here? So here we got the
ID input name, so I can use that one. And this one is
also input email. And if I go to the last one, input in, those are the IDs. So I can't use that in Road framework
when I use the ideas, I don't need to provide
any, anything else. But not all the elements
in our website. Having ideas. This is something that most
of the developers should do, but sometimes they
don't. Worries. Not a big deal. But luckily, here
we do get the ID, so I'm going to use the IDs. And then I'm going to
create with the Summit, I'm going to delete
this element. I'm going to use
another locator. I'm going to provide you
the opportunity to see how to see different locators. Set focus to elements. The element is input name. Dash nine. I wanted two types of
information on input. One I'm going to do is input. Test more than two spaces, in more than two spaces. And here I'm going to provide input. This one is input name. Here. It should be input Gmail, e-mail that come. And next is input test. I'm going to use It's me to send. I'm going to, I'm going to print print screen on this one. I'm going to print here. I want you to show you
all the things that I type because everything that's on that
happen really fast. Maybe we are not going
to see what we are doing with the automation here. What, the next thing
we are going to do is to take a previous screen. Go for library and PNS
clean inscription, that's, that's the day keyword. Captured. Pages screenshot. We are going to do is I'm going to use another
locator for the army. If I'm doing this to provide you different
ways that you can locate, that you can locate an element
in the user interface. So here we have it. You see this is not having
an ID like the rest. So what I'm going to do is right-click copy
and copy it spot. You can use full
at spot or spot. The difference between
them is that one is coming from all
the whole route. That's what I'm gonna
show you that right away. Go copy full spot. If I copy the full ads
spot for the sample, I'm going to see here. He said complete routes
for the elements. This is not orange, you can use it is not
thought is not a problem. But some of our
engineers believe that those are really long
names that so that could ruin your automation because
you're going to use a lower dose of tests to
locate your elements. So honestly, for me
is not a problem. I don't care a lot. One of the reason is I do prefer to use these alarm at spot, because if something changed
in the user interface, I'm gonna know right away, I'm going to know
that right away because my automation
is going to fail. So I'm gonna be able to
detect if something is wrong. However, that's
the reason most of the automators are the
engineers who automate things, who automated test cases. They prefer to use the show one because sometimes some
elements on the west side. They only change the position or they changed from
a group or they change the way we
access elements, but they are still there. If you provide the
shore spot is less possible that your automation wholesale because of something that's changing the
user interface. It's up to you. The last word is in your hand. No worries, It's up to you. However, I'm going to
go for the short one. Here, it and copy spot here, I'm going to paste it here. Something that you had
to add here is to put the word path column. That's all you got
here, the red spot. And finally we are going
to close the rows. That's all. Now, if you go here, you need to do is to type robot. The name of your file, 001. If you tap, if you
press on the top key, the task is going to complete
the name of the file. If you don't have
anything that is similar to the file
that you are writing. So you just need to
write 001 and hit tab. And you are going to
see the whole name of the file that say, let's run it. Past. Here are the important things. The framework created for you. Report HTML file, lock HTML5, and output ML file. What are the importance here? The report and locked HTML. If you open the report for the sample HTML, Let's open it. You're going to
receive that report of all the test cases that pass. And you see they open in the wet side and Sandy user information bottles
of them passed. And you can see the
task that you had here, for example, the smoke. So you will see all the
test cases that had there is smoke tag,
the small tag. If you see here the
opening, what scientists, the only one that is smoke, but they're sending
user information. It doesn't have the attack. So you don't see in the report, you see here the suites. We got only one that
is 001 automation. Yeah. I think that's pretty
much all for the report. But the other thing that is important that you create with the with the framework that is provided by the
framework is log file. If we open the log
file, for example, when we aren't going
to see here is complete execution
logs where you can't, but it's step-by-step the thing that you did on your test case. So you see here and you
see here, and for example, if I want to see the
screenshot, I have it here. You see? That's all. Maybe you think, yeah, I did it. This is a great animation. But this is not the way we usually work on their real work, on the real world
and the real work. So yeah, here's the
thing We had to step up. This automation, we
had to make it better. And to achieve that, we need to complete
a couple of steps. We already had the
lot output and report what we had to divide these layers and create a better information
in order to make it easier to maintain
this automation. Now with simple, we've got
123456789101112 steps. So maybe you mentioned
your or you think this is really simple
to maintain and, and you know,
unchanged, unmodified. But in the real world, you are not going to have
this kind of automation. You aren't gonna have
Dao sense of files. You had to be careful the way you create all your animation. In the next step, the first
thing we're going to do something that we call
page or logit model. We are going to be by
all the automation in a liar when you can get the elements on the
options in another file. I will see you in
the next video.
13. 08 Let's do Page Object Model (POM): And here we are. We are going to do some changes. We are going to start
doing some improvements. Automation. Well, I told you that the first one is
going to be page often model all the articles that
I'm gonna start doing. Gonna be able to
see all the steps. Then I'm going to start
doing in our repo. I'm going to load so you
can download the code also. And you can also check out if you are following
all the steps. Now that we need to do
is to start creating wires to divide the framework. As I told you. The first
thing you have to do is to create liars and make everything easier to maintain
in the future. We actually had some things that our framework
created for us. The thing is that we are going to start creating more folders. Here when we're going to
create a new directory. The first one, then I'm gonna create test cases directory. Here. I'm going to put all
my automation here. Is fired Griffith. And we had the test cases here. Now we need to
create the locators. We need to clean all our code. So here, we should not
have these kind of things are not going to be part of the test
cases any longer. The reason behind that
is because if you had multiples test cases
or new one too for somebody's this
bottom change, the locator or anything on this, you have to go for
all the test cases. Will Europe use that element
and modified it one-by-one? So we usually create
with page object model, we create different locate the locators for all the pages. For example, if we
go if we go here, I go for the homepage,
for example. Let me try to hear all
these elements. You can. It started sending
the information from the locators
for these elements, these elements in just one file. So it's something changed here. You go directly to that file
and you just modified it. You don't have to
do anything else. That's what we're going
to start creating. We're going to create a new data directory is
going to be called blockade. It should not be here, sorry, immediately that it was going
to do it. The first level. Just go here to the store and get a tree and locate torques. We got it. Now we need to do another thing is we are going to
create the elements. We can do it this way. Here we're going to create
a file that is gonna be gonna see these warnings. And it is because you are not, you are not using good for your version than doing it
in order to provide you, to provide you in the future. For those people who
wants to access the code. I just want to create
tracking session where you can have all the files
that I am creating. Those match, matches with the file matches with the class, but you are current DC. So no worries about those warnings that
I'm receiving it is because of the elements. I'm going to start by
identifying my elements. What are the elements
that I use here? I just go to the Contact Us. That's the only element that
I use here. I click here. Here, that element, I didn't define the
element by this copy. Here I'm going to create these signs just help
you to create comments. So this is going to be it nor by this isn't gonna be ignored by the language. What do you do here is to put some comments and it's going to help you do less than what, what did you do in the past? Because most of the time
you are going to create automation when you're not
gonna see that in our IOT. I highly recommend
you also to create comments for your
automation that's part of having roles framework. Okay, so here I'm going to create the contact equals. Here I'm going to add in quotes. Located. Thing about Python is
that you don't need to put a semicolon at the end of each line. For example, we had
to do that with other languages like Java. But this one is not necessary. Remember that Isn't, it was not created for programmers by term. Proceed. That's the great
thing about using title. We have it. That's all. That's the only one
that we use for the, for the Hong element. Let's go for and another fine. On the Python side. This one is going to be contact. We have it here. Here we use more elements. My input name, input,
email input required. And this one that I
think is Submit bottom. Yep. I think that's all not
we're going to add here. So again, use comments here. Again, I just adding the 1s, those those elements
that we interact with. And I'm gonna add anything else because it's going
to take you longer. That's the reason
I'm using those. First one is e-mail. E-mail. Everything that we need to start moving. Names for, email. Email. One of the things that
are light is light. You see this red
line or something. So it helps a lot. That's the other
benefit of needle. Here we're going to
face something great. And it's a good
opportunity to show you. Spot is having quotes. I want then to be
interpreted literally. I had to do here is to add
some slash before the quotes. I'm going to add it here. Now you see that they are
interpreted correctly. The other thing is that you
are going to receive like an ad buys these lie icon. You can reformat file. Supposed to be reformat. However, here we have it. Those are all the elements we
are going to interact with. Nets. Thing we had to do is the
page page audit per se. The beach object
is besides having the all the elements
in another file, the other thing that you
had to do is to create the absolute divide the options that you do on your
website, on your code. In the test cases, everything that you
have to do is to look for those keywords. In case something changed, in case something
needs to be date it. You know that you had to go to the page object model
and modify that. We had the locators. And now we need to create
another directory. Here. We had to create the page. We're going to do. It's actually the
same that we did with the order elements files, degree one for the home and
one for the content page. And it's something changed
with the interruption. We go directly to that file
and we just modified it. Doesn't resume, we
create these folders. And maybe it could be
time-consuming or you think why I'm gonna do that
is a lot of work. In the future. You are gonna be really happy to have all your code divided. This is a good practice. You are going to create really high level frameworks and really high-level
automation. Because all your code
can be maintains easily. Again, here in the index page, I'm going to create a
new road framework. File add in here. We are going to create
the homepage one. Let us remove the test cases. We have not going to need this. Now we're going to emulate
the principal documentation. I'm going to add here. Yeah, we're going to create
a bunch of keywords. By the first one is
we want to verify the homepage title. Title. That what we do is
titled shouldn't be. I forgot something to add
the library or otherwise, he's recognizing and
then everyone is going to be here, shouldn't be here. I need more than anything
that I had to to also load. Here is the variables. Are the variables. Variables are 11 folder behind. And then I go to the locators
to go one folder back, or I need to do is to
use that dot slash. So there we go. Two locators. Match. Going to use here. Homepage page elements. Let me go. The other thing is we conduct what we had set focus to elements. Here I'm going to use
the name of their body. And this is the mean
of the bottom one. I'm going to hit Control C. Paste it. But I need to dollar sign keys quarterly. We had here, this is the way then we use a
damp fleet element. I'm going to use
this same binding. Because here we are
referring to these elements. And anyone with the link, with the link cut that that's all that we need to do here is
not really complicated. For now. We already had all the page object
elements already done. But we need to change that here. In order to change it. We also need to load here. Defines where we
are working with. Those files are going
to be called resource. That's the way we
call file that we load to load variables. We use research that lash
because it's interest case. I need to go back and
then project, then slash. And here I'm going to
use the home page. I need to respect even
the capital letters for the name of the file. Okay. And yet we have a tear. Everything is caret thing we
will do these two remote, this is not gonna be called
this way is going to, we're going to use a keyword here is the one that is
going to be called here. We remove this bar. Thing is that we had to
remove these two lines. What we are going to
type there any space well, let's see here. And yeah, that's
pretty much all. Let's verify that everything
is working as expected. Now I can't run robots. And one of the things
that I can do here is to tell the name of the folder. I don't need to type the
name of the file here. If I had a bunch of
different test cases here, I just need to put the
name of the folder. Robot is going to interpret
that everything that is having a relative
framework extension is going to be run test cases
in less than a folder. And let's see. Everything is okay. The test case is going to pass. That's what happened. Okay, we are done. We did the, most of the
based off yet model. Here I want to challenge, you can just change the rest
of the test cases here. The race of the code here. Stop the video and try to do it. Now I'm going to do it for you. Here. I'm going to create a new
file and you wrote file. And these one is going
to be Contact Us page. Now, the race that I had to
do is pretty much similar. Seem in order to these keywords. Here. The only difference
is that I'm not going to blow up the home elements. I'm going to have low
contact page. Yep. The keywords, I'm
going to be different. They wanted that I create. Because here I am
going to verify Title VII title to be The title to be
capital letters. Is we are going to take a picture dict keyword where I'm going to use here. Captured patient screenshot. When I went to send information. We instead we send the info. Here. What we are going
to do is basically we will fit this into
contact pages, these ones Contact Us page breaks here. I think we are pretty much done. But we also need to
test input testing. We got to do this. Maybe we can paste it here. It is tied name, e-mail, sign only, type ink pen. More decided. I think that's pretty much o. Now we need to
change this, right? We should have here, this is the last one. We have it. Here. I can't modify these
keyword for title. Just means step. We're going to do
here is this cure. Let's go here. Capital, they're here. I think it's gonna be better to remind school here
and we paste it here. Now. It doesn't matter if the
keywords are not order. The way that we show on a test case where I
really like to do it. It seems to me to create more organized
these cases type name. One is tight email. Email type inquiry. Comes picture. I think that's the keyword. Peter. I think they'd picture and send information
is the last one. Information. Yeah. I think that's
pretty much all. We unready change everything and the only thing that is
missing that we should change. This one worries, we are going
to do some final touches. And at this point
what I want you to do is to run test cases, made sure that
everything is still working with no problem. And that's all we unready
case, something happened. Let's see. Verify content time. I make a mistake
with this keyword. Let me see. I know what is happening. I need to load here
the Contact Us page, but I want you to
show you something. Let me check contact sits this. I'm gonna show you something
if you go to your file, just type block HTML, you can go here and
see what you see. You see here now keyword with name verifying
content type file. The reason it is because I'm not exporting, exporting
the research. I created all those keywords. The test case is failing
because of this. It's not telling you that
it is because you forgot to add the file where you
create all the keywords. It provides you a clue
of the things that could be ground with your automation. So make sure every time
that your automation fails, measure to review the log
file. The automation. And let's move, sorry. Vote here and hit Enter. You should see here, okay, and still having problems. And second, Chet, contact us. I know what is happening. Control C, I need the homepage, but I also need the contact us because I'm running to the
frame Contact Us page. Now, I already had the
keywords that I created for the homepage and the ones that I created for the Contact Us page. Okay. Now, after that, I can
draw my test case. Go here. The good thing about failing
is that you should see the things that maybe you will face when you create
your own automation. So no worries, this is something that the time it
happens all the time. So far we already created
a page object model. We create a lot of
things here and we modify our code to
make it better. But we are still on the halfway. There are still two more
steps that you have to perform for your information. The first one is what happens
if I want to do, you know, to send different
different names and I want to fill
out multiple times. So I'm going to create these lines over and
over different times. Going to create every
time that I need to, I need to run the automation. I'm going to create a code
for one of the steps for each one of the user's name
that we want to type. Because if you see here, and just able to create
the contact page and just can send one
name, one email. And this is hardcore. Hard to avoid hardcoding. Your automation is
not a good practice. It is necessary to save
your data from your, from your whole automation. You can create itself file. There are ways that you can
use your data and create your data in another
file and then read that data from your
automation and make it, make your framework to use
that data in your test case. In case something is added, you can go there and
just add it in the file. That's the last thing we're
going to do is to create that and to set all
the resonance with folders for the right folder. For now we are pretty much done. We unrelated things
with our animation. And again, it's a love of work, but it's a high level
information and it's gonna, it's gonna help you to create great things with
dirt automation. So I highly recommend
you to follow these guidelines because they are going to help you
with your automation. So let's move on
for the next topic.
14. 09 Data Driven Testing: And yet here we are. We are going to
start trying to send multiple data to these forums. And wherever they
wanted to do is to be able to do this without how choline and what
is how coding itself. If we go here, for example, all the things that we did
in our automation here, we are inserting certain
directly all our data. This is not a good practice. We are to avoid these. And the only way we can do
this is through libraries. And the library we're going
to do here we're going to use in this video
is data driver. And these library
allows you to read that file and try to incorporate that data
into your test case. For example, I'm going to give you this data that I
created before the class. Let me lower it. Before. I think. Here. What I'm going to do
is I'm going to insert this into my form, the form that I had here. Once I click on this, I'm going to click on
Submit for example. And when I click Tom it, I'm gonna continue it. And what it's going to happen is I'm going
to be ready to head to the homepage and then I'm gonna restart
or the process. The first thing
you had to have in mind when you are
creating data driving testing is what
are the steps that are repeated in all
the automation? And then you can modify your, your automation into
a better framework. You can modify the data in case you need to
change some things. One of the things I'm going
to do, as I told you, is to insert this data
into the automation. In order to do that, I'm going to create a
folder with my dad. Gonna save this into
my automation here. My folder, I'm going
to create a new one. So let me use Samin. And here I'm going to create
a new one that is going to call that folder. I'm going to add my Tesla. If I go here now
to my automation. I'm gonna see that folder. And I'm going to see the test that I'm going to do
here is this step. You don't need to do it. And doing it because
I'm creating, they get version for you. You're going to use GTE. Manner should be in green. Now, y is not in green. That's the one that
I need to. What is about that step because you're not doing control version
for your automation, but I am doing it to provide you these automation
in the repository and provide them for this video. Well, now that we
got the test data, the paint that I had to do is
to insert the data into my, into my test case. We're going to modify
the leader, this goal. The first thing we are going to modify is that we
are going to create another test case and it's
gonna be at that data reader. It's gonna be two on
the racecar reader. And here, what we
do here actually is to read the data
from the automation. For these, we are going to
use another library that is not only the one that we
use here in the automation, I'm gonna, I'm gonna
copy or these lines. And I'm going to
paste them here. Okay, so we're going to
need selenium library, but we also going to
need another library. As I told you, this
is the good thing about using same words. And you had to use libraries to perform different
options of automation. So in this case, we want to read some data
flow nets, cetera file. So we are going to use another
library to that purpose. Here. We're gonna need the
data Driver Library. And in case you don't
know how to install it, that you need to do is
to go to our Google. As usual. In everything we do that
we do in our job is to go to google.com. Here we aren't going to just type Driver thing or installed. Go to the first result. You're going to
receive this command, and this command that
you need to do is run it into the
terminology here. You don't need to
move anything, any, any word else that you need to do here
is to copy and paste. You are going to receive
a successful message. And that's pretty
much all with that. Say, you already have the library install
on your computer. Next step be added to the automation data driver that's the librarian gonna use. Then I need to provide a file, one to use data from data slash data. Next thing is I need to
provide a template for all the steps that are going
to be repeated in all day, in all my automation, for example, every time that I, that I try to input the data, I need to go to the username field and
input these and these, and these are all the steps that we got for the
Contact Us page. And these are exactly
the same here. So what I'm going to do is
I'm going to copy control C. And I'm going to go for my data. I'm going to create my keyword. And that keyword is
going to be entered. Information. What we can do here, We can do that directly. Here. That's going to create
a new keyword here is cold. We need to provide
some arguments. Those arguments, I will not
be taken from the fire. You have to be careful with the names of the
arguments because they should match with
your sales. Remains. Here we are going
to use our itself. I see. I'm going to move here. Then here. Drones will be saying here, they should be at sadly
this same counter. Now I'm going to
just paste it here. Instead of FirstName, I'm
going to use this argument. Instead. Until see. Here. They use e-mail. I am going to use here. Yeah, I think
that's pretty much, oh, really change my automation. These are the steps are
gonna be unique and are gonna be the
same thing that we, that we did in the past. But as I told you, there are other steps that
need to be in bold here. Those steps can be
also taken from here. This point, what
I'm trying to do here is I'm going to
copy this information. Because what's going
to be easier to me? I'm going to go for
the data reader. Here in the Keywords Paste. It was easier for me to do it this way because it's easier for me
to visualize everything. You don't need to do it. It's actually like
me moving here. Maybe it is better light moving directly
from here to here. But here we've got the three steps that we are
going to take the information from the from our itself. The other thing we are
going to do is to take a picture. We finish. Let's go here and
we paste it here. Take a picture. The other thing is
send the information. Go for the countertop
space and information. Base it here. And then I need to click on
continue that bottom. If you see it was not
included in my in my automation because this is a new element
that I had not seen. In the contact page elements. I'm going to add that bottom. I'm going to call
that bottom subsets. And that's gonna be equals to. Something I like to do is
to create a link column. And here I'm going
to use the word continuous because it's
the word that I see here. So that's all done. I'm gonna do Dino. So this is my success. In my Contact Us page. I'm gonna create another, another keyword that is gonna, I'm gonna call this one, I'm going to do is
to wait until enemy, the enemy, the space vehicle. And what is the element that I want to see that it's visible. Gonna be, let me
dollar curly brackets. It's going to be these elements. This, it says bottom. And I'm going to use it here. This button is visible. When I'm going to
do is split element is going to be successful. That's all. That's
pretty much all. Let's return to the data reader. And I'm going to now clean, clicked on Tina. Lead. After that thing, we should
also verify the title. But first we need to
verify the homepage. Homepage. The homepage. So I can't verify
homepage title. Contact. Contact these to
return to the contact. I M Finally, I'm going to
adjust the content title here and trying
to make sure that every time that I run my
test case is going to, He's gonna return to the forum. Those are the things
that I'm providing here. Finally, the test
case in this library, you just need to create
one, this case n. What? I'm gonna make sure that
all the information, that same information may find that these for the
right user, an email. So I'm gonna copy
this Control C here, insert information while
I highly recommend you to do is to provide your,
provide the username. So don't add more than
two spaces in this line. So what I'm going
to do is to say the information to username. So here I'm going to verify that the username is the one
that I'm trying to say. We did email. Just one space more. Yeah. This is for tracking
better my automation. Now here in the homepage. Sorry, in the first test case, the automation one, I'm going to remote some things because. These days. And also these
gonna be necessary any longer. All those sets are
being performed here. And finally, I'm
going to need that. They're this case a simple
one to close the browser. Let's do ROD Framework. Core browser. I don't want to
over-complicate things, so that's the reason
I'm doing this. This way. I'm going
to copy maybe this. Yes. Throne. See here in the test case, I'm going to place
almost everything. Did I already say?
And I'm gonna need selenium and the test case, I'm going to call this closing. The browser we need here is just one simple keyword and then it's gonna be close. And yeah, that's pretty
much all we are done. Let's see is this is working. Let's close our, let's cross our fingers because that's
all that we need to do. Let me type here. Robot test cases. Test cases. Let's see. Something failed. Me see Not test template. Here. I never provided test template. I need to provide the
test template here. Because I'm gonna, I'm gonna
tell the library what are the steps that it needs to
repeat every time that he reads align here
in the Excel file. So that's the only one problem. I forgot to do it. So now we are pretty much done. Let's see, 12345. And that's all everything past. And one of the thing I wanted
to show you now is that if you just open the Log, going to see all the test cases that were not already passed. And hidden data razor, you can see, send the
information Maria Gonzales, Peter seen son get some
parliamentary roles, bought Christian man, Mansfield. And here you will see
everything that you unready in these files, in the data file. So I'm going to do something really quick
and I'm gonna show you the benefits of having
these Control-C Control-V. Here, for example, I'm going
to add Winston Castillo, wind stem students. I'm going to stand here. I'm going to use
this to students, and here it sits seven. I'm going to save this. If I run everything again, or I decided to remote
everything here. And I'm gonna, I'm gonna
have the same result. Mine is gonna be
wrong seven times. And that's the purpose of
having a robust framework. You can do. You can modify your code. Sorry, you don't need
to modify your code. You had to modify the file
when you had your data. And that is going to
provide you the opportunity to make it better and to provide to do simple things and create a better animation. That's the reason we usually use the data
in another file. We are almost done. We almost half done at robots. Complete framework. We still need to do more. Modifications are a couple of things at tiny things
we need to do. But after that we
are almost done. We are done with
broad framework. So I'd see you in
the next class. We are going to have this class already provided for
you in the repository. So just go to the link. Yeah, that's pretty much all
see you in the next video.
15. 10 Final touches, create a base file and directories: And finally we reach
the last part of the automation we need to
create for the framework. After that, I'm gonna show
you the same template in Cucumber spring you later
things about cucumber, how to install it. We will use Marvin to create our project
in cucumber butt. That's gonna happen
in the next video. However, now we are going to finally reached
the last thing. You had to make sure you create in your automation.
Are you ready? Now we've got these
different folders. But if you see here for example, we see that all the screenshots are like in the same directory. So this is not great,
is not impressive. We're going to fit that. That's the first
thing we will fit. The other thing is we are
going to create a common file. Include all the
common resources. Finally, we will run some
test cases, that information. Let's start there. I'm going
to create a new folder here. The kind of folder for your new screenshots,
screen shots. I'm going to move all my
screenshots to that folder. Now if you see and then we close this opening all of them. So I want to open them. Let's go for the test cases. If you see here, you see that this structure
is clean and it's easier to understand where is every
of the things we create. The other thing is
that I'm gonna create another folder that I'm
gonna call that folder base. Here in the code base. And here in the base folder, I'm gonna create a
new growth file. That's fine. It's gonna be researchers. Wanted to make sure that
I think that I did. Framework, common resources. We had everything. Recommendation I'm
going to put here. We'll cases. What we want here is to
head up place where we can easily modify some
things from the automation. Selenium. I already is gonna
be our library. Here. We are going to create
a couple of variables. What are those variables? The first one, that is almost, we are almost going to
always different kind of ways to run our automation
is with the browsers. So we're going to create a
variable called Browser. For now is going to be Chrome. The other thing is that you have in your automation
and environment, because when you are working
in a team for so far, the battle for
them, sometimes you run in an environment
that could be, for example, QA that we
installed Castillo that cone or death that
Winston Castillo.com, another environment could be staging that witnesses
on stdio.com, all of them has a kind of
the same the same system, the same, the same application. But what we do is for
sampling the death state in the data and vitamin we got all everything related
with the development. So we got to know more
data or trash data. And in the QA and
vitamin for example, we had some information that
is closer to the one we will find in the
staging or production. The purpose of having
being able to change the environment needs to provide the ability to your
framework to run. Everything again, isn't going to isn't gonna be a problem if you change
the environment. But now we got only
one environment. That is, that is this one. When we run our automation, this is hard code. We should not do this. So that's the reason
I'm gonna copy this. Put it in vitamin. The last thing that
we usually do is we can have different folders
for the screenshots. So I'm going to
create a variable that I'm going to
call that variable is clean data to me is
the common case. Here. What I'm gonna do is for now and then they use
the same scream. Screenshots. Gonna be my folder
where I'm gonna, I'm gonna include
all my automation, my screenshots from
the automation. I mean, yeah,
That's all for now. And however, you
can have different like different
resources that could be shared along your automation. It's up to you. This is just an example. So the next thing we have to
do is with our automation. Now I'm going to create
a test case by 000. I'm gonna call this,
this case that said, I'm going to attack this as an smoke smoke too. The other thing
that I'm gonna do is I'm gonna run that keyword. And that is called set
screenshot directory. I'm going to use that thing that I'm going to do is
I'm going to use them, vitamin C. Use it
here, control V. And then I'm gonna
do is the browser. That's pretty much all
that I had to change. And the other thing
is that I had to include this file
into the resources. So I'm going to copy
this one, paste it here. I'm going to replace page
object because it's not in the base of the base folder. Find this common resource or common resources that
I think we are, right? I, now, if I go here
and I run my automation with robot cases, I hit Enter. Everything is on
the run as usual. We got here, everything
is pretty cool. That's all. But the great thing about the framework
is that, for example, you just want to run those those test cases
that only had the smoke. You run this command, robot, dash, dash include. Then you just, you
just type test and you see everything that is going
to run the test cases which has tak tak smoke. If you see, it never
runs this one. Let's go for the test cases. They close browser doesn't run the rest of the
test cases without the The attack. But for example, if I
want to close the browser and I include this Control C, to close the browser. When sample here. I tried to run everything again. Now it's going to be
close the browser itself. You see, that's all. It's completely easy, but
let's assume we don't want to. The other thing, if you
see all the screenshots, the new screenshots went
directly to this folder. Another thing we should
do, for example, if I want to change the browser, I don't want to change it. I don't want to use Chrome. I want to use, for
example, edge. But I want, this is one of the challenges you had to
find out how to solve. It is to run it with
with another browser. As I told you, you should have the driver for that browser. If you see here I had
the Chrome driver. But if I wanted to
run it with age, I am ready at my path
for this folder. I got the driver here. For example. The driving force is this one, EMS edge driver. But that's gonna
be your challenge. Do you have to download the driver and tried to run
it with another browser. But the thing here is I just
want to change for Chrome, but I didn't do not change
anything in the file. I'm gonna do it directly
with them with the command. And it's something simple
and just type robot. And then I just say national level and I
provide variables. I provide the name
of the variable. I want to modify his
browser and use column. Here I'm going to use the way that row and recognize
another browser. For example, if I wanted to use, I just write edge. If I wanted to use Firefox, I can type death, death, or if those are the way you
can change the browser. However, I came too
hard to find out how to download the driver and
just copy that driver in. The folder that
you already add in your path is not
complicated and you can go to the video when I
did that with Chrome is exactly the same but with
the driver for edge. Now I'm going to put H
here and test cases. And then around it. You see, now it is being run by h. That's all that I changed. I didn't do anything else. So that's one of the benefits of creating good
automation and robots. Automation, you
don't need to change a lot of things
when you are trying to run your automation with different browsers or
with different vitamins. It's supposed to be
simple to you because the automation is created
with that porpoise. That's everything. Now it's time to racism things
with relative framework. What we're going to do
with Gutenberg is to overview how we can create it. Automation in
Cucumber and explain everything as I explain
the product framework. Because I really want you to
understand why I decided to go with the different
things that I am going to do
in the automation. I really want you
to analyze what are the reasons you decide to create your code in a
way that you create it. As I told you, this is a model when you
create different layers for your automation and put
everything in the same file. That's not really cool when
you are creating code. Most of the developers call that spaghetti code because
everything is mid set. That is not great, that it doesn't provide a great impression about
your skills with automation. So here we got the
different things that you can use for animation. I'm going to show you how
to replicate this cucumber. And after that, we will go for some questions and
the final challenge to you, I hope that you
enjoyed this class. We had been working for too long hours and I hope that you have
enjoyed the class. Let me know how you
feel creating this. And I will see you
in the next video.
16. 11 Compare with Cucumber First Part: Here we are. Now it's time to do it subtly, the same things that we
did with broad framework. Now we are going
to whip cucumber. So the challenge
here is that I'm not going to spend three
more hours teaching you. Not, you should include your automation and
the way that you have to create your
framework with cucumber. Because I think it could be time-consuming to understand
everything about to convert. This is not a class
to show you how to use glucose at all, is just an example. And I really wanted to compare
both tools and how you should create from
now your automation. What are the aspects I
want you to care about? When do you create automation? The thing about Gutenberg. Gutenberg is a tool that is more behavior
thriving framework, behavior driving framework. What we tried to do
with cucumber is to understand the
business perspective. And we try to put that
into our animation. Here when you see, for example, the things that we did
with ROD Framework, we usually create our test cases for an input tests
and information. We use keywords to help to understand what are the things
we do on our animation. Those keywords are
usually actions that we've been farmed on
the, on the code. But in case of cucumbers, we are going to see behaviors. First, we need to download Java. So my advice to download
Java is because of legal, let's say legal Terrence because Oracle, after
yada. Absolutely. Both. What are called both
Java and everything that article created to
how to pay for that. And here you don't
need to pay anything. If you download a
version less than eight, you can use your
code free, freely. And you didn't need to pay anything in the products
that you create. As a developer, you don't
need to pay anything. You are creating a product. But when you create a problem, when you actually then compile that code and
create a product, you have to pay. We are trying to avoid that. That's the reason I recommend
you to download Java. Gdk. You can download
whatever you want, but I really hide. I highly, highly recommend
you download this one. To download you just
go for this website. I usually take Java, is decay. I can download it here. All that you need to do is to go and download the
version for your computer. Not gonna download it
because I already have it. Either I'm gonna recommend you
is either forum for thumb. This is a four term that
also work with Java eight, that absolutely Stella
one, that eighth. But from the version 88 and
I had from that version, they removed the first
number than one. And you just know about Java, java ten, but it's absolutely
Java one that night. Java one that ten. Things that happened in
their development work. However, just go
and to increase it. That's the e that we are
going to use for cucumber. And after you download a cliff
and you download the Java, made sure you add Java. Just go here. And you can type Java sample. And in the configured
Java, for example, you can open file location. You can go here and open
it with the Java location. With this location, you are going to need it and
add it to your path. If you don't know how to
add up vital environment, you can go to the video
where I explain that. But I need you to actually
Java to your path. Make sure you aren't ready
at Java to your path. You. Once you have that
you're going to do that you are successful. Because when you
try to open them, are going to be able
to open it because you're already includes yellow. If you don't or you had
questions about these, please let me know. Please make a comment in
the comments of the video. I can create another
class explaining this. But it shouldn't be something easy because you already did it. You already added
the path variable. It should not be
difficult for you. So for now, once you get everything in your,
in your computer, what we're going to do to
start using a converter is we are going to
create a new project and we provide you the
structure for your automation. And again, what we are going to do is to
compare what are the steps you have to do in order to
create the same automation. But we could convert framework. The challenge here is
that it's gonna be up to you the way that you are going to create everything. Now, what we are
going to do is this. We are going to, you should now the first
time that you open your cleat say you should
not see anything of this. But we're going to
do is to go here. You are going to give up right-click and you're going
to create a new project. But before clicking in
everything, go to order. Here. What I want you to do is to create
a modeling project. Marlin. I want you
to create Marvin. Select the last one here. Played on nets. Here, I want to create
a simple project. You create a simple project, you can skip archetypes. Archetypes selection
is going to provide you the whole structure. But we are not
going to use a lot of time providing
details about this. Again, what we're going to do is to compare
withdrawal the framework, how difficult it could be to use cucumber and what are the
differences about using it? These instead of ROD Framework. That's all that I had to do. Once you do that, you
can click on Next. Now you have to
provide a group ID and the ID, the group ID, we're going to say
something by automation. The artifact ID is gonna
be the ID for this. Let's say for this project, I'm going to write
here Skillshare class. After that, I'm going to
click on Finish. Here. We got the projects. Everything. When you were
creating enrolled fingers, did you remember that
in the space when you actually add all the libraries
that you are going to use. Here, you have to do the same. You have to add the libraries
to your project and add the libraries for b to be
able to work with cucumbers. Before continuing, you are
going to go for the help menu. Once you go here, you had to go to the
athlete's marketplace. Here. We are going to download
a plugin to work with Cuk converter because it's gonna make easier to everything. It's gonna be, it's gonna make
it easier the way that we create our, our files. And it's going to give style and it's easier for
you to create an automation. Having in mind that when you
are going to do is to title. After that, you just hit Enter. You're gonna see this plugin. It's already installed
in my computer. You should see something similar to this one
like install just, you'll see it here and
just install that. I don't like this one natural 0 that night a lot because
he's not that great as this plugin that provides
you a lot of callers and guidance with
the automation. Just click on Install, and that's all for now. Well now we need to
add the libraries. This is going to
be easier to you. No worries on that you need
to do is to go to Google. Let me open here. I'm going to download cucumbers. I want to tell you that you
are going to need two things. The first one is cucumber, GBM for Java and Gutenberg DBN JUnit because cucumber is also
inspiring JUnit, the same light, for example. And there are another framework that also provides you some steps that is called
test and G that we use. Rarely use that
with, with Selenium. And it's more similar to ROD Framework the
way that we use it. So that's the reason I didn't
use test because I really want you to compare with
behavioral driver framework. Here, for example, we got, we need to add this library. I always recommend you, maybe when you see this class, you are going to see
more numbers here. But I always highly advise
you to use is tabled version. If you see that here you have vulnerabilities or say something that maybe the version is not installed and it's
a beta version. I don't I don't recommend
you to use that. Tried to use a
Starbuck versions. And in this case I'm going
to use this last version. Everything that you
need to do is to copy this, copy to clipboard. You see here you had
to add dependencies. And to do that, you need to do is to add
dependencies, dances, okay? Then you need to close
that in these ponds side. Then the thing about
using edit first, I'm going to paste a copy. That's all that I need
to do to your library. Once you add a library, please clip onto the
project and made sure that bill automatically
is check. It wouldn't be important
because all these libraries I'm going to be downloaded
once you save your file, is going to start the process
to download the library. Now we got it already
download the cucumber Java. Now we need the other
one, that is gutenberg, a unit conversion unit. Let me go there.
Convergent unit. I'm going to use JUnit two. I don't see that
the unit is here. I'm gonna need it to run. Welcome back onto me. Out here. Junit. I'm gonna need
that unit. Unit. This one is the one
that I'm going to need for malware unit. I think. You'll see it here. Let me check it out. Dependency. Dependency. I didn't know. They didn't concern about these. Get out that the library
is correct. Unit API. Sadly the same one, the j q and the version. You'll need. Let
me check it out. This one. Yeah, this is the
one that I want Control-C because APIs
and other things, so I'm not going
to use that one. I'm going to remove this. I'm going to add one. We already had this. And I think that
pretty much o and last one and the last library
I'm going to use Selenium. And you're going to this one. I've already
downloaded it for you. Most of the things I'm
going to be a challenge, too hard to create
the address of the automation because
one I'm going to give you here is the structure. You had to figure it
out with selenium. However, if you feel that
this is really complicated, what I'm going to do
is to provide you the whole the whole automation
already done for you. And you aren't gonna
be able to convert. Here. You also provide
the Selenium library. I think you got everything here. Just save. Once you save everything, the next thing you have to
do is to go to the end. It's ARC test Java. Down this folder is where you have to create
all your automation. This is because you
should integrate this with the project that the
developers aren't going to do. In this case. That's what
I want you to understand. All the automation that
you are going to create is going to be incorporated to the work of the rest of the team will be rows
because of that reason. First thing here, we
are going to do etc, the same things that we did
in our broad framework. Automation. But here we don't
need to create a torus. What we are going to do
here is to create packages. The first package I'm going
to create is gonna call, I'm gonna base, you know, what are the things that
you had to create there. And then it's package, we're going to create a
package for the Cuckoo, cuckoo bird to be run. So I'm going to create
that convert runner. And here I'm going to create
the class to run everything. Dollar package I'm
going to create is feature package and
step definition backlash. That's where is the
biggest difference is one I'm going to explain
here in this class. We are going to do is to create a new package that we are
going to call feature. Features. We can just make
it like feature. Others. Again, thinking what
would be the base name, but you aren't going to. I think it's better
to do with the S and the N features finish. And what we usually do the features is going to be
really simple to you to do. If you actually
download the plugin. Here, what we do is to create the things that we did with the, with the keyword
like the test case. But here we are going to do language that is
called Jerry chins. If you get right-click here and you just create a new file, you're going to be able
to create a future files. Remember, go here rightly new
and try to create an order. And after Euclid on order, try to look for future of file. Gonna show something here, but it shouldn't
be. Your salary. To create the future
file that you need to do is feed in new, just great on file. And here you can
do something like, for example, the homepage, that future without the
once you click on Finish, we went to receive that kind
of template like this one. So I'm going to explain this
as plain as fast as I can. Include the tabs. You already know what
is attack about, what examples you can use, functional or
something like that. And it's gonna run everything
that you see here. But we are not going
to use a dot here. The future process, a
suite of test cases, is the way that we create the sweets in Robert
framework here. The future. Sadly, a set of test cases. You can have different scenarios on the SNR is I'm going
to be the test cases. So in the future we can hear cases for homepage. Hearing the tag, I'm
going to use functional. In the title off
of the scenario. I'm gonna dive here going from Page. And I think that's the value. Here is the biggest change with the way that we
usually do things. And robot framework, because we use here at
business language, is more about behaviors,
more than options. For example, given I want
to I want to grab a step. Would break condition.
Given with side BC turn. What happened when
when I see contact? Okay, I can remove this. Then. When I see the content link does something here
because I think doing, obviously, I see
the content link. The wind is going
to be the option. I see the content link. Wayne, Contact Us. Form. That's what we do
on our test case. Here. We had everything
that is related to the test case per cent. This is a biggest change
withdrawal framework. We usually create everything from the behavioral perspective. We can do exactly the same
with the Contact page. I'm going to save
this in the future. I'm gonna create another, another feature that I'm going to call that
future might contact us. Finite is going to be
contact that future. Finish. And again, any
hot the template here, I'm going to change
the things earlier because we are not
going to use Control C.
17. 12 Compare with Cucumber Second Part: Control C. I don't want
to use a scenario. I'm gonna use that
scenario applying. The great thing
about these is that the framework also provides you ways to include that
driving testing. You don't need to
like create another another file when you had to load that file and
interpreted it with code. Everything you have it here. So that we create. What you have to do is to
put all the data here. That's one of the benefits
of using cucumbers, that is, thing it was thought to provide, to provide you tools to create
that arriving tests into. The biggest influence
we had been receiving because of the
time we are spending with quality is that all
many of the frameworks out of being created to
solve some problems. That's the great thing about
our career, about computers. When there is a problem, there is always a solution. And that's what we do
with the Gutenberg. It provides tools to
make it easier to understand your
automation. For now. Going to do in the contact line is providing the
future something like here we create automation. I'm going to remove this
line and the scenarios. I'm going to use this Control C. Let me share. What I do is given
in the contact page, when I see the foreign and fill the information
for username, user email with
the user in quiet. Then I send the
information and I returned to the Contact Us page. I see different sides for n. I'm going to them. So the other thing that
you can do here, now, it's going to be easy is
to change the vowels here, so it's not gonna be name
is gonna be username. For this example would be, it's not gonna be,
it's gonna be bottled, it's gonna be useful email. And it's not gonna be,
it's gonna be this one. Let's see. That's pretty much all. We also can my load. The data that we create for. It tells you everything that
you have to do here is to replace these data
from the sample name. And the email could be quite, it shouldn't be
something more like ten, there's some charts. I think when I went to Central, anything with this one. Again, remember that
this is data arriving testing and you
should be aware of what is the purpose of having
this copy and put it here, b, c, d, and tonight use here twice. Dan and sender. We can fill it out with more data here so we
get fun examples here, the data and it should
match with here. Mostly we had most
of the things. These are absolutely
things that you had to program absolutely. Create. To create those, you
are going to need another package that is called a step definitions or steps. That's a package. I'm going to create this
step, the free nation. One other thing I
wanted to tell you is Java was zoned for developers. So it's gonna be completely
different to use in Python. Because Python is it was created for people that were not really involved
with programming. And that's the reason it's
highly used in testing. But Java is strong language
and it about classes and objects and
programming with jets. It means that you shouldn't have that really strong
value per mindset. This is not something
that is going to happen in one class for three hours. Sometimes it takes longer. At the core of learning
for Java could take light one year and a half. So no water if, if this is really complicated
for you, that is suspected. But the reason that
we use that anti to teach you in this class
how to work with cucumber. I really want you
to understand that it doesn't matter the
tools that you use. What it matters is the way
that you create your code. Here we got the step
definitions and here we need to do that instead
definition file. What we can do here, for example, we
do and again new. And here you can
actually create a class. But I think if you, for example, go to order here, you can tie cucumbers. Not here. I saw Euclidean instead
definition class and you can create that
54 step definition class. So once you create a
state definitions, you can absolutely
create a name. Scripture. Going to, I'm going
to step description. You can click on Finish. Here. You had to describe what
are these steps about. A tool that is always
useful and come handy to know is called tidy gherkins. Gherkins provides you the code and all that you
need to do is to type tidy your chins. You can download that from your app is kind
of an obligation. Once you download tidy 13, you actually can your
obligation in here. So you can go like in the application and all
that you have to do is to, is to copy the tiny thing that feature that you
create for to convert, you just copy here. Control C. You can paste it in
the application. So minus from tiny brush. You can type it here and
make it in Java steps. And all that you need
to do is to copy this. It simple is gonna be
easy to do to create it. So copy everything here. You'll finally have the steps that you are providing
for your GPU convert. Just copy here Control C, and go to your state
definition file. Here, definition
file and paste it. Control D. One of the things that
were happening to me, The bomb, i fits it. Fits it is that I changed
my version from cucumber and change it to the seats that 11 that 0 to both of them. Because it seems I
is not present in any problem with the libraries. I highly recommend you
to use that version. So let's continue here with the. There. Instead definition. Here I'm going to import Given
going to import the class. And here I'm going
to import the wind. Then. This is something that
you had to do every time that you are
working with Java, you have to import
all the classes. This class, something that
I'm trying to figure it out. How to how to fix it. Maybe I don't need TCT. Here. It seems like it fits it. I'm going to remove this. Also. Provide any, anything
else to my animation. Also, I'm gonna remove this. Here is everything
that I need to do remote the round with, not gonna be necessary here. But however, we are
going to use it in another file that
sine is going to be here in the cucumber runner. Okay, so the other thing
that you have to do, for example, is with
these features, is also to create another, another jerkiness with
this scenario outlined. Everything that you
have to do here is like coping definition. Here. You have to copy all of these Control C and then go to here and try to base it here. You're going to
receive the order. I'm trying to show
something for you. This not this great hard to see here. Trying to mold and to show
you that I want ID here, let me go to the first
line that you had. This. You just paste it here. Then you have all
the given here. You can copy, paste it. Basically in this definition. You can paste it here. Remove again on this. Because in this part you
are going to include your code for this test that
needs to be done by code. And again, this is something
that you are going to be able to find in
the repository. And the biggest concern here
is she will be describing the behaviors because that's
the reason we use converge. With this done, we
already done this. The next step here have
to be cucumber runner. In the cucumber runner, we create a test runner class. We create new. And here the mean
is gonna be test. Here's where the magic happens. It is rather Spanish. What do we do here is simple. We create the round width, one that I was not using before. What we do here is
we use the tag. This is something we
call injection. In. Mostly. Here we can use the convert,
convert that class. That's something that
we need to do here. We need to actually
import the wrong. Then we can import the Cucumber. You see that you get rid
of the error I have I was having but here I need to give to provide a
cucumber options. One I'm going to do
here is my options. They could convert
options will give users convert input. Options. It will give to our
framework what is the principle and the
dose at the steps. So here what we are going to do, we create in futures, we need to provide word are
the features which are, where do you start information
for your programming? You put here, like
me. What do you see? Here? You put here
dance ARC slash. Then it comes tests,
stretch, Java. And then you provide
word our futures. And you put here in-depth case you can find the features and where
their behavior is. Grading. Now here you use glue. The glue you will
provide where are the steps definitions
for that unit? Use the name of your package. So you just use here munitions. And after that, you need to do this step notifications
that this final step. It is because I really want
to see if everything goes well when I run
my, my framework. The standard definition, we
are going to set it to true. And we are going to receive
a report of the way that my arrow mention
was run or was run. Everything that I
need to do here, right-click and run as JUnit. And once you do that and I
need to save my older files, I'm going to click on Okay. What I'm going to
receive is this panel, when they'd receive if I receive an error or if something failed. At this point, I don't
have any any of the code. This is the template for the
things that you had to do. The different thing
is that you are now working with Java. And it's much longer different
than working with Python. Again, we had this structure. It can be trickier, complicated, but no worries in the
repository you are going to have all
the information you need for these classes
and under gonna be dated these class
with your comments. And if you had anything that looks really
complicated for you, don't hesitate to ask me to ask for more explanation,
clarification on this. So see you in the next video.
18. Extra Step Mac: After installing Java, configure the JAVA_HOME: A quick thing you can
do with your Java Han, because this is
another anestrus step that you had to do in Mac in order to make
run your athletes. So what you're going
to do here is just to tap window is space. And then you can type terminal. The other way that
you can do this is through these magnifying glass. You just click on
the Search icon, the magnifying glass,
then open the terminal. You need to know
where it is Java. So you can type which Java. Here you are going
to have the exactly where the where the Java
Security file, please. After that, what
do you have to do? It simple, It's sudo nano. Nano. Then you are going to add these command to access them file to add
the Java home fire. The fancy thing we
do with window, where we, where we actually
at the vitamin variables. That's what we do here. What do you have
to do is to type this command as port Java under a scout harm
equals you had to do it. It's aptly with the with the location that
you receive from, from the which Java command. That's all that you had to. You had to include the
Java home variable, then you just press comment and I think
human control it, sorry. Yeah, I think that's all. I think that's all
that you had to do for your set the Java home, by the way, that's all
that you have to do. There is not any extra step. You are going to
verify that you can really make it correctly. Just typing echo,
dollar sign Java, capital letters, java code. You should have received
this or something like this. That's all that you have to do. So now we are ready
for the next steps.
19. Extra Step WINDOWS: After installing Java, configure the JAVA_HOME: After you install Java, the next thing you have
to do is to verify your Java home valuable. For now. The only thing that you
have to do if you don't see the Java home viable
is to edit by here, just type on New
and you can add it. Then you had to type
here, Jabba underscore. Underscore is, it is here. After that you have to type here where it suddenly Java EE is. If you want to know,
Java is all done, you need to do is
to type here Java. And you will see
this brown command. But you can actually
open the file location. Once you hand the
fight location, you can copy this location, copy and paste it here. And I'm going to
do that process. I'm going to cancel
it because I already had my Java path variable here. Is there anything
that you have to the other step that you have to do after you install
Java and you know how to, how to access the
system vitamin, right? In any case, you can
just type m by enable. You will see it by edit the
system environment variables, variables and allegedly to do is to go to vitamin variables. And here you will see
the option to edit it. That's all that you had
to do after installing Java in your computer
to make it run.
20. 13 Creating the selenium code to integrate with cucumber: Okay, now what we are
going to do is to create the simple animation with Selenium library
and then the mature a lot of their way I am
created the framework. What we're going to do now is to create a class and
run the automation. And then, then it says step
that you have to do is to create the good practices
for anonymization. So what we are going to
create a simple code here. I'm going to create
a new package. Package. Here I'm going to
use test cases. Test cases. This is the package. Finish. I'm going to create
a temporal science. This is supposed to
be modified by you. We're gonna add all day coal to make my automation
word and do a satellite. And same things that we did in our last automation with robot. We clip and we are going
to create a new class. And in order to make it run with and without having
the whole stroke is structural base classes
and put everything running. The same word. Asked us to do it. I'm going to create our public
class program for Java. And I'm going to call
this my homepage. Let me sanding. I'm going to call this
class information here. But we are going to do is to add all my code inside on this. Here's where we add the commands for automate
everything in Selenium. The first thing is we need
to ask the system property to let know where the driver is. This is kind of the way that we usually set that I were to work. This location is where you actually save all your diverse. If I go here, let me show you
that in my unit D, I had a folder that is called
driver parent omega Doris. There I have the drivers.
They will plan on. I have it here from drivers. So I had to keep all the
location, the whole location. For Java, everything
that you had, this slash, Jew had
to add two of them. That's the way that Java is
going to interpretation. And it's going to
understand that this is referring to 11 only a slash. This is the way we
do it with Java. There is not any
other explanation. The next thing we are
going to do is to create with our driver, that is the web. And it's gonna be the driver
we're going to work with. This is new. This is new. This is a way that you actually instantiate
objects with Java. My gosh, let me change
this to Spanish. Maybe that tell me. Currently I am because I'm
siding with the keyboard. Normally with Java. We need to every time
instance CAR class, we had to import the
class to our code. So what we're going to do is
to import the web drivers. And then the crown drivers. Drivers should be with a
capital letter when indeed, one of the things here
that I want you to tell you about Selenium, selenium incorporated
or smell things you knew ASL and saying
things to make possible when you are
working with gaba to access different
methods of the classes. This is not a class
about, about Selenium, but we are going
to use Selenium. If you are interesting
in knowing more about Selenium with Java or Python, I can create a class for you, but this time is only
about being robust. With our automation,
about robustness. Don't care so much
about the Linnaean. What I want you to do is to
create a robust framework. Here when we aren't
going to do is to import also the class for
the Chrome Driver. And after that, the driver
to open the website. So I'm going to use get. That's the methyl to
open, to open up. One of the things that I
liked the most is why from using idle is that every time you aren't going to
receive some suggestions, what are the methods for the, for the object that you
create and instantiate it. This is really, this isn't anything about
object programming. Java is all about programming, so that's a mindset, that's a way to program. And also is the way that you had to program everything insulin. We're going to do here is we will going to provide the URL that is going
to be this one. With that, our automation is
going to open this website. The next thing we're going
to do is we aren't going to do an answer to
verify that actually, the title of the window is gonna be kinda
Winston Castillo. In case in case. The title for the window is not that one where I
went to receive an error. That's the reason we
use assets. Okay. So that's going to do is
an ulcer through here. I'm going to add my condition. So here I'm going
to deprecation. Yeah, I think so. But it should not because
maybe this is referring not to not to, not to Selenium. But however, I'm gonna
go to dinner with my code and then I'm
gonna fit States worries. What I'm going to do
is driver get title. That equals. Again here, I'm gonna add stdio. We are done. This is because these taken
the assets from JUnit. That's the reason it's saying
that the assets duplicated. What we're going to do
here is we are going to add the assets for remove this. One I'm going to do is to add
the assets for tests and G. Using assets because I
learned one to verify that the title is that is
the one that I need to. Do. You know how to add a library? So what we're going to
do here is to go to Google and we're
going to type test. Angie. Don't care so
much about, about these. Again, because this is we
are creating this code just to use that pole
one, not this one. And I use this without not
too much vulnerabilities. I'm going to copy this and I'm going to add it
in the form fine. Here. After the JUnit, maybe. I'm going to do
these only to create an automation more common. With what we do with Python. We are going to only use this
AND gate for the assets, but not for anything else. Okay. Here we go here. And then I'm gonna see that we want to be
able to use the assets Frontex and import
access from JUnit. I don't want I want to
import axes front test, NG. So we get rid of the error that we are going to
do here is to prove that the title for this is I think that's pretty
much all for now. Let's continue with more of their more of the
steps we are doing. Let's move on. Next thing we are
going to do here is to the Contact Us link, right? So we will do exactly the
same driver find element. That's the way we find
things on our website. Again, we will buy. Then we type blink test. What is the intent we use in our robot framework automation? Contact Us. Thing we will do is to make
sure we are on the right. Our title for the for the for the window
is Canada's driver. That title. Title then equals. And here we will do contact
us pretty much all. Then we will send
some information to the four that we see. So driver find element. Here is Bye id name. Do you remember this input? And after that limit of
the methods since key. Here we type what we're
going to send 01. So let's sample is fine. L. When I went to use input email. All right, I'm
going to copy this. Put it here. And here is input. Email me, I'm going to send here is
the user and the e-mail. I'm going to type here. Cr email theme we are
going to do is to That's sine element by ID, IDEs. And then I'm going to send keys. Same keys less than metal. I'm going to use. What are
the keys that I'm gonna send is this is an inquiry from
more than ten charters. Habits here and assignment. We had to sand the that information
clicking on the blue tone. Here what we are going to driver find element by its path. Here I'm going to
use the expression, going to reinsert spot here. This is not the path. The classes. Can we build this? This is the input. Okay? Yeah, that should be all. Let's run this. See if that works. If open then actually this open our
automation description. The mirror image of
this because I think the problem here, save this. Here sending information, you should not see any error here. Save it. After that, let's run
it to see if this work Run As Java Application. What we're going to see is
our automation working. This is working and you
can prove that this is gonna work and it sends
all the information. But this is not the best way
to create another rotation. So here's the challenge for you. If you are able to do it, That will be great. Otherwise, you can see the results of the
videos and you will see how to solve
this step-by-step. But at this point, what I want you is to
move all this code and created better adding here
the beach off debt model, then also the base class. And make possible with the cucumber runner
to run this with different by different ways and create a report log file to
see what are the results. This is everything
that you had to do, but in case you cannot do it, you can continue with the class. I will teach you how gender
is pretty much all for now.
21. 14 Dividing the code in layers: Well, here we are. We need to now create the
liars and everything. We need to set our
framework with cucumber. Yeah, The first thing we
should do is to create the packages where
we are going to incorporate our new files. So you should create a base repository for
the pitch of the model. In this definition, we
will introduce all day a different kind of steps we
prefer in the automation. Make sure that you
are already at, in your poem because
you're gonna need it. You add JUnit that
you at Google. And also test NG. That the right way to
pronounce that it's cucumber. Yeah. I think we
are already set, so I'm going to try
to create that really create base file for you. Let's just start with it. Here. What we're going to do is
to create a new class. And we're gonna call
this class base because it's our base class. And again, the reason to
creating a base class is to be able to provide our way
everyone's true words. Your automation, also use
always the same automation, the same variables
and everything. Okay, so first we will create the driver. We will create our drivers. Driver we're going to use. Let me change here to
Spanish. The keyboard. Mistakes. Yeah, okay. I need to import driver. I'm going to import
Selenium WebDriver. Done thing. We are going to this
protected stream. I am using a string
or protected. It is because I'm going to use these variables in different
parts of my automation. Because I'm going to
access these bottles in different files and I need
to set them as protected. Here I'm going to
use my default. Again. Something that
you're I DO provides you is a way to
create the getters and setters and also
is going to add is going to provide you
the way that you can also create the
constructor class. But we're going to do is only
the getters and setters. You go here for soldiers, search, generate
getters and setters. Going to use a gerund serif or diver and browser generate. What we are going to do here is I'm going to
remove they want that. I'm not going to use. For example, here in set driver, I don't think we will
absolutely use a driver. You should not touch this, but this one absolutely. Going to try to do the code
for the different browsers. I'm going to copy and
paste my code here. I'm going to explain
you as fast as I can. Control-c, Control-V. Here. What I'm going to do is to create a different
kind of browser, depending of the vows
Her am going to use, for example, here
on using Chrome. But for example, if
I change it to five for H sat in here, what will be done in each case? These are simple code and here what I'm trying to
do is to set the browser. Now after I said the browser, I can receive a
different browser. Yeah, that's all I'm doing here. I'm going to import Chrome. Board five-fourths. I'm going to pour primary. I'm going to show
you how different cool worth depending
of the browser. But that's all that
you had to do. We actually. The getters. We absolutely set
this set driver. We should have asset browser. Yeah, nice one. In case I
want to change the browser. All I need to do is to, is to change it in my code. In any case. I think that's all for now. Next thing I had to do
is with repository. But before that, the repository, we are going to the
definition file here. At these files should match with my features content
us on homepage. That's exactly the same thing
we will do with the with the, with the repository. In case of repository, we wouldn't need to
create the friends fives. The first one is for homepage, and we will call this
one homepage element. I'm going to use homepage
element elements, okay? And I'm going to add
this class here. Finish. The second one is gonna
be the contact elements. Contact. Is it Saturday, the
same thing that we did with broad framework? We are doing doing
the same thing here. Didn't cucumber, not a big deal. Hearing their homepage means what we aren't going to do is to create a homepage elements that we absolutely
interact with. For this, I'm going to
use my WebDriver here. I'm going to need it. Needed here. In all the object model, we need to use what driver? Driver. Because we are going to take
elements from the WebDriver, is something that we
call the beach factory, is to set all the
elements on the homepage. It's going to be part of
the page of your model. Here you can use
search and you can generate constructor
from the superclass. Generate. Absolutely, you can
remove this part. Here. What you aren't
going to do is to ask the driver because it's the
only one thing you are mine. And then you had to create
your base page factory. If you want deeper class
about pH optimum model, I can create one in my, in my classes here on
Skillshare or wherever. This is not a class about
creating a page of your model. What I'm trying to
explain, just say admin touch to have your code
divided in different parts. So that's the reason and
copying and pasting my code. In case you need more
explanation on this, I think you should go for one of the classes for
page of your model. This is highly years
in the QQ a word. This is a way to create
liars and everything should be easier to modify
in the future. So I had to say here in the
in the Contact Us page, I'm going to use for
the Contact Us element. I had to do etc, the same thing in contact. I just wanted to make sure that the homepage elements are okay. I just did it from the
homepage elements. This is okay. Because the Content link that is the homepage here in
the Contact Us element, I'm going to paste all the Contact Us
elements we will use. Here. We need to import all the classes, the
content elements. Remember, we are working with Java and Java worlds
completely different. Definitely Python, where
everything is easier. For example, to do the
same things here in Java, you need two lines of codes. What I want here is to show you how you're absolutely sure. Automation will look
like I think we are done with the Contact
Us and net description. So we got the contact page, I click on the Contact
Contact Us page, I see the contact link. We need to transfer these, all of these into this
steps descriptions here. One of the things that you
are not going to see in the absolutely anything
related to related to Cuckoo, cuckoo number is that
you won't be able to see how to create base
classes or every cell. So once you create a base class, that you need to do is
to create an assumption. You type instance. And after that you can type
the name of your class base. Then you will import. You'll need to import
the base class. So in that case,
everything related to the diver driver browser, you can also use it in
this definition class. Definition class. I highly recommend you to use one class that
is called before. One class at is called after. Under. What you are going
to do is to set all your drivers
and for example, the beach of jet elements. Here, you can absolutely
set the browser. What I'm going to do here
is use your browser. That is the, is the variable
that we use here in me, save this set description. And then I use important after. Everything here from before
and after is going to be run. Every time that we run all
of these kind of everything. Every time that we run a given. It's going to run
these after, before. That's the reason
I create these. Sanding the driver to my driver
and the homepage element, I need to also import this. Maybe it is because creating. So what I'm going to do here
is to create the variables. The beginning here, homepage element that is going to
be object from the class. Homepage elements and
Contact Us element is going to be an objects
in the repository. Yeah, That's all that
we had to do here. We have the before, the after, and then we need to
move the extents that we have here
into each of the each of the staff
definition we got here in the before Friday to create
all the variables you are going to use here. And doing the beach often model. In each of the sets
while I incorporate are the steps for one,
describe with veins. Yeah. I think that's pretty much all. I want you to run this. And one important thing is that in the base,
for example, here, when you actually asked for the gate driver and you copy this code, make it gratefully. I did it on the, the browser. The browser is only the name of the browsers you
are going to use. So it will return crown or the one that you
actually right here. Here it is absolutely
the driver. What is going to return. You are going to be able to
reach these code on the, on the repository that I
create for this class. The good thing about
these is that you have everything
divided in layers. After that. One I'm going to do is to run from cucumber runner. I run As JUnit tests. If you see, you are going to see that everything is
running correctly. Is also divided correctly in this class is
only about robots. Again, if you want to go deeper into cucumber or
robot framework, you can go to order
of my classes. And the great thing
here, for example, I tried to run it
after with age. You are going to
see that I don't need to do anything else. Then just type in a new
name of their browser. You see, it was run
everything with Chrome. And now I'm going to do it
with H here, type edge. And I'm gonna save safe. And here in the Package Explorer when they tried to run it again with not run as a JUnit test. And you're going to see that
it's going to be running H. Let's see. We got, we have it with
other with other browsers. And yeah, that's the beauty. The beauty of having
everything in ages. Unimportant thing is when you are working with
page object model, be careful, but all the
other fine elements with selenium are
in the same file. You should not see it. Find elements for the sampling. In the state definition file. All the elements shall
be in the same side. So in case something changed, you can go directly to the page of elements repository
and change it. That's all I hope that
you enjoyed the class and this is what I got for
you for dividing the code. Remember that you
had access to all of these material on
internet and I, and adding the links
for the repositories, you can download the code and
make a second look on this. And yet, that's all.
22. 15 Thrid Part: Questions and Challenge for you: Before running the last
and final section, let's answer some questions
about the class today. So let's play a leader non-linear
or omission framework. Do you need to know how to code? Will be the answer? Yes. No. I got good news for you. No, it's not necessary
to know how to go if you are working in a linear or
a mentioned frameworks. And the reason behind
that is because these canyons frameworks record your testing when you are performing your
testing manually, and then you can and do
that and replayed in. So it is not necessary
to know how to code. And, but those have those types of frameworks
also have their benefits. And also some say contrasts. And yeah, not going to provide you the
opportunity to create an ROS
framework, for example. Some of them provides you and
the structure two, modify. That's not the reality
for the majority of them. Let's move on to
the next question. Is ROD Framework behavior
driving framework? So once your answer yes or no, the answer is no. Relative framework is at
keyword driving framework. Set by the age of code
in ligers will make it easier to maintain
it in the future? Answered yes. No. Being kicked twice? The answer is, of course, yes. That's one of the guidelines
you have to respect the framework in the way that you create your
framework because the future is going to
be easier to separate. So to maintain and
modify those files, which contains the elements
you have to modify, that it's easier to maintain
your code in the future if you decide to sit about
aided in eight years. Move off to the next question. To make your automation
grown on work, it isn't necessary to respect the guidelines of
the robustness. What do you think? Yes or no? The answer is no. And maybe you are confused. You are thinking, why
might the answer is no. I'm going to answer
you that really fast. Then resume behind that is that you don't need
to create wires and self-care your data
and tried to lock your your your
reports and log wife, but he's failing your elevation. Your automation is going to run. Even if you don't respect that, is not a good practice, is not the best way that
you can do your work. But at least it's gonna run. But we know that that's
not enough when you are working with pro people with you and working with
professionals and in a team, you should provide
solutions that are able to be adopted
for the whole team. So that's the reason
it could run. My doesn't mean that
it's good enough for for for our senior team. So try to keep
that in your mind. Let's move on for
the next question. In this question is, I got the framework
requires a good design. When do you think
about that question? Yes. I don't know. The answer is yes. It is necessary
to have the sign. So I hope that you answer all of the questions with
the right answer. And let's move on. How did it go? Did you answer all the
questions correctly? I hope so. In any case, you can re-watch this class as much as you need. If you feel ready, we can start with
the last step shown where you will
find the challenge for you is time for the
leader challenge for you. It's just something simple. So feel confident you can do it and isn't gonna be
something really complicated. And here's the challenge. In the, imagine we did in class. The first thing
you have to do is download the driver
for another browser, save it in a folder and ready, You ready in the path. You add that folder in
the path and make your automation run in
another browser without touching their code. That's all that you have to do. That complicated,
It's not hard to do. Good luck. And it's time for you to
modify what we did in class. We are set. Did you enjoyed the class feeling ready to
create more automation? Do you already feel confident with cucumbers, with Robert? Let me know your thoughts in
the comments and feel free to watch any of my other
class and comment often, I am recording some
of paying again, so it will be handy to consider your feedback when I
work on the new videos, See you in another class.