 So hello everyone, Myself Pooja, I am from RedHack and I am also a member of PyLadies. So today I am here to talk about the Robot Framework. It's a smarter way to automate your stuff. So you can automate your application end to end by using the Robot Framework. So let me give you an introduction of Robot Framework. So it's a generic automation framework which uses the test libraries, different test libraries. Either we can use the test libraries which are inbuilt or we can use the extended libraries which we can build ourselves. So it's a generic test automation framework. It is used for acceptance testing and acceptance test driven development. Acceptance testing is a testing where we check whether the requirements and specifications mentioned to us are fulfilled or not. It has an easy to use tabular data syntax where we can define our data in a table format. So it is easy to maintain and we can modify it easily. And it utilizes the keyword driven testing approach. So keyword driven testing approach is an approach where you use the defined keyword and we give the data as an argument to the keywords. So the Robot Framework is hosted on GitHub. It is an open source framework where you can find the further source code documentation and issue tracker. It is released under the Apache 2 license. As there are different frameworks like JBehave, Cucumber. So why should we use but are the benefits of Robot Framework over the other framework? So first one is it enables easy to use tabular syntax for creating the test cases. So we can create our test data in the tabular syntax so that we can easily maintain it. And the test data is also easy to read and modify. It provides us to create usable high level keywords like if we download the Robot Framework there are inbuilt libraries. We can create our own keywords by using those keywords which are defined in the libraries. It provides easy to read reports and looks. So when we run the Robot Framework we get easy to read reports in HTML format as well as XML format. So after the execution of Robot Framework we get three reports. One is report.html, output.html and result.xml file. It supports Selenium for web testing and Goi. So we can use the Selenium libraries if you want to do the web testing and different libraries we can use in this. It supports the data driven test cases. Data driven test cases are those test cases which use the data to derive the testing. And it has built-in support for variables. So as in every language has variables. So in Robot Framework we can define our own variables and give them a value so that we can use it in our test cases. So let's discuss about the architecture of Robot Framework. It has a modular high level architecture. It uses the test data. Test data are defined in the test files. We can define the test data in test files and test file creates the test suits. So when we run the Robot Framework it executes the test data, passes the test data and executes the test libraries. Functions defined in the test library. Test libraries can be inbuilt or we can build it on ourselves according to our needs. Test libraries interact with the system under test either directly or with using any test tools like driver. So let's get started with the Robot Framework. So what are the preconditions for Robot Framework? So Robot Framework is implemented in Python and it can be extended with Java, IronPython or PyPython. So before installing Robot Framework one of our preconditions is we should have an interpreter Python. So if you are using Windows you need to install the Python. And if you are using a unique system like Linux it has pre-installed Python with it. So you need to install it. So we can install Robot Framework by using a simple command. We can install Robot Framework and can verify it by using Robot-Version to verify which version we have installed. So currently the latest was in Robot Framework 3.0 which is supported for Python 3. So you can install that one. So let's discuss about the test cases styles in which we can write our test cases to run the Robot Framework. So first one is keyword-driven style. So keyword-driven style is a simple style where we use the keywords given with the arguments. So if we want to write a simple test case to check the login page. So suppose we are giving a login page and we need to test it with different scenarios. So the keyword-driven approach will be like that we open the login page, input the username, input password. So these login, input page, input name, input password are the keywords and test-test are the arguments which we have given to them. So we will open the page, we will give the username, password will submit the credential and then web page should be login. So if the test will pass we will get a report in HTML format so that we can know whether our tests are passed or not. So this is the keyword-driven approach. So in data-driven approach, suppose we are giving a login page. So we need to test each and every possibilities with invalid username, valid password, invalid password, invalid username. So each and every condition we need to cover. So in data-driven approach we cover all those conditions with different sets of data. So this type of test style is used when we need to test same scenario with different sets of data set. So here invalid username we define the different arguments in the table so that we can use in our test scenario. Next is behavior-driven style. This style is used when we need to make understand our stakeholders who are non-technical that what are the requirements. So it uses a simple scenario like given when and then syntax. So in given we specify the condition that what is given to us. Like given login page is open. Then what should happen? Then what should and then is the expected result we should be outcome of the test. So in given if the login page is open and when we enter the valid username and password the submit credential then web page should be open. So then is the expected result. So this is the jerken style. Basically it is used by the BDD behavior-driven development. So what are the different test libraries which we can use for robot framework. So it has three set like one is a standard library. Standard libraries we don't need to install it. It comes with a robot as we install the robot framework they are by default installed with it. So we don't need to install it. They are like operating system date time libraries. Next is external libraries. They must be installed if we like if we have a web application and we need to test it. Then we need to install an external library Selenium 2 library which is used for web UI testing. So we can install the external libraries also to meet our requirements. Next is other libraries like if you are given a project to test and you need your own functions and libraries. So you can create your own libraries and then can import in the test cases to use those function in your test suits. So we can as I have told you that we can use the variables. So we can define the variable in variable test tables. So this is a syntax to define the variables like if we want to test a test case for different browser like browser Internet Explorer Firefox. So we can just put the browser as a variable and can change its value and can use in our test suits. So like login URL which login URL. So this is a generic test in this is a generic variables defined. So you can also just define the test set up and test year down. So test set up are the test function that are executed before a test case and test year down are the steps which are executed after the test execution. So you can define our we can define our test set up and tear down in the setting key in the setting table like test set up open application. We have need to open the application before and test suit and we can we need to close our application. Our every test is executed. So there are a few steps we need to remember while following the robot framework that we need to give at least two spaces between our keyword and the arguments. If we will give one spaces it will consider a keyword and it will throw an error that it is invalid keyword. So make sure you give minimum two spaces but we can use two to four spaces also between our keyword and the arguments. So it has also a benefit that we have clear reports and no like if we have we have executed our test cases. So by seeing the report only we can tell that our test cases are passed. So the background will be green if all the critical test cases are passed. So by seeing only anyone can tell okay the old test cases are passed now. And if any of the test cases fail the background will be red. So we can know came to know that our anything has gone wrong wrong. So our test cases has failed and it also has this execution log which is a detailed log which tells us if any of our test cases fail. It tells us at which point our test cases break and where we need to fix it. So it has a detailed execution log also. So let's see a demo now able to see this. So this is a simple test case which I have written to test the four C sharp page that whenever we open the four C sharp page is the same page is open. We have to verify it and check it whether it will open or not. So in the setting setting key table in the setting table we need to define the library which we want to install. So in setting we can define the which library we want to install either built in or external libraries. And in setting we also declare the test tear down or tear set up. So in tear down I have defined that we have to close the browser after every test case is executed. And in variable we need to specify the variable like I have used the browser for Firefox. So we need to test it against the Firefox URL is sttp fosatia page title. So after opening the page it should check whether the title is a fosatia or not. So we have to verify that. And so test cases in test cases table we define the test cases. So here the first test case is open fosatia page. So I have in the documentation you can name your test. Then open browser we have given the URL which is defined in the variable table. Then browser then we maximizes the window to check whether the maximize button is operating or not. I have set the selenium speeds are little delay so that we can see it. And then we have to verify the page. Then we are verifying the page whether the fosatia page is opened or not by using the keyword assert title. This assert title was not a defined keyword. I have defined it in keyword table. So we can create our own keyword from the higher level keywords. So I have created assert title which is title should be equal to page title. And page title is a variable which is defined in the variable table. So let's run it and see how it works. We can run it by using the simple command robot. So it is executing the test cases. So it is executing the first test cases. And the fosatia page should open. It should maximize it also. Let's see. So it basically saves our manual efforts which we do while testing. Now it's verifying that whether the fosatia page will open or not. So after the test cases has been executed, this is the format which we get. Like if the test cases are passed, passed, passed and failed. For every test case we have a dot which we have seen. Like if one of the test cases is passed, dot, dot. And if the full test case is passed, then the four. And we can see this on web UI also. Like Python. We can see the reports. So let's see the reports on web UI. So these are the reports which are generated after the execution of. So this is the log dot HTML where we can see the logs. And each test case is defined here with the keyword. That first was open fosatia page. Next we verified the page. So we can expand it and see what all the steps were executed in this. And they were passed. If any of the one would be failed, then it will show fail. And it will show the reason like open browser. But the steps were executed in this. So it gives us a detailed view of our test cases. So it is easy to just go across them. So next is. I told you about the report. So this is the report which is generated after the test execution. All of our test cases passed. So this is a green report which we got. Example format which is machine readable. So this is also an output of this. So for reference you can go to robordotframework.org. Or you can follow the quick guide or user guide for your reference. So any questions till now? We can also integrate our framework with like tools like Jenkins. Like in our day to day life when we are doing testing. It's a build over nightly or in a week. So we can integrate it with a Jenkins so that whenever a new build is triggered, we trigger our job on Jenkins and our test cases automatically run. So it reduces our manual efforts. Okay. Thank you. Thank you guys.