Showing posts with label robot framework. Show all posts
Showing posts with label robot framework. Show all posts

Wednesday, October 21, 2020

A fun case to automate cont.

A few month earlier I wrote an automation script in Robot framework which will go to bongobd and navigate to a specific section and play a video. Few days ago I tried to run it and found out it is failing. Upon further investigation I realize the whole section is removed from the site thus the locator is not able to find it and the whole case is failing. I decide to fix it to run it again.

When I was fixing it I feel the need to validate all category pages first so that I can find it in advance if any sections are missing or updated. Then search for the same video and play it. While updating I feel the need to redesign the code for the ease of maintenance, reusability and better understanding. So I decided to go for page object modelling (POM).

In order to design it in POM first I investigate which parts of the website is remaining the same across all pages so I can model them as page objects. Find out header navigation bar and footer are always remaining the same. So, created headerBar.robot and footer.robot objects.

After that as I am interacting with the search result page, I created another object called searchResult.robot and all my test cases were listed in bongo.robot like before. And also make sure that all validations are done here and no where else.

Project was running fine and notice that some actions need to taken at start and writing those action in test case file does not feel right to me. So, I created another object called initial.robot and call it upon setup. And put all locators and inputs in variable so future updates will be easy.

I know that there is still room for improvement but still I am satisfied with all changes I have done. I think it is much more maintainable and reusable than before.

Here is the git hub repository link,

github.com/wasiqul/robotframework_bongobd

Sunday, February 2, 2020

A fun case to automate

Github repository link: https://github.com/wasiqul/robotframework_bongobd

Test Case Descritions: User will click the free content,load the content & play it

Detail steps,
Step 1: Open the Chrome browser
Step 2: Go to https://www.bongobd.com
Step 3: Click on Classic
Step 4: Scroll till Most Watched section
Step 5: Click on Ontore Ontore film link
Step 6: Watch advertisement
Step 7: Play the movie
Step 8: Watch the movie for first 1 minute
Step 9: Close the browser

Expected result: The script that automates the flow should work without any errors


Different types of Asserts in Robot Framework

1. Builtin library:
http://robotframework.org/robotframework/latest/libraries/BuiltIn.html
2. Selenium library:
https://robotframework.org/SeleniumLibrary/SeleniumLibrary.html
3. Collections library:
http://robotframework.org/robotframework/latest/libraries/Collections.html

Monday, January 27, 2020

Different types of Waits in Robot Framework (Selenium Library)

1. Sleep
Waits for a specific given time.

2. Set Selenium Speed
Waits given specific time before each Selenium actions performed.

3. Set Selenium Timeout
Waits given specific time before throwing exception for each Selenium Waits.


4. Set Selenium Implicit Wait
Waits given specific time before throwing exception for each Selenium action's locator not found (only when locator is not found, if found it will wait default time).

Sunday, January 19, 2020

Configure Continuous Integration System Jenkins to build Robot projects

1. Download Jenkins

Go to https://jenkins.io/download/ and download it for your system.

2. Start and Setup Jenkins in you system

After download open command line window.

Write from command line
cd location_of_jenkins.war_file

Write from command line to run Jenkins in 8080 port
java -jar jenkins.war

Write from command line to run Jenkins in a specific port
java -jar jenkins.war --httpPort=port_number

Output will show Jenkins running status.

From browser, browse to localhost:specific_port_number (if specific port is given otherwise only localhost which will select port 8080 by default).

3. Add plugins and start

When Jenkins start select plugins and setup them after that restart Jenkins. Make sure Robot Framework plugin is installed.

4. Create and configure a new job in Jenkins

Select a Freestyle project and click on OK button. Enter Description from General tab. Select Git in Source Code Management tab, provide Repository URL and test it. In Build tab select Execute Windows batch command if you are running in Windows. Provide commands in Command box and Save it.

Windows batch command
robot_project_folder_location_drive:
cd robot_project_folder_location
robot -t test_name test_suite_name
echo BuildCompleted

5. Build - Robot Framework

From Jenkins project, select Build Now from drop down list, automation script should run when Robot project is building. Also robot reports should be available after successful build.

6. Robot Framework Reports

From Jenkins project configuration and navigate to Post Build Actions tab, click on Add post-build action button drop down list select Publish Robot Framework test results. Than provide location of robot test results file location in Directory of Robot Framework test results field and Save it. Build again to validate robot test results.

7. To overcome Opening Robot Framework report failed error in HTML reports

Search for Jenkins security policy. Go to JENKINS wiki/Configuring Content Security Policy navigate to Implementation section and copy code given in Unset the header: section. Than move to Jenkins > Manage Jenkins > Script Console > Paste copied code and click on Run button. If Result shown below than it is successful. Build again and click on robot results html links and observe that instead of error reports are shown.

Configure Version Control System Git in Eclipse for Robot projects

1. Create an account in Github

Go to https://github.com/ signup for an account. If you already have account than sign in.

2. Sign in and create a new repository

Create a new repository for your Robot project and remember the repository URI.

3. Git Perspective in Eclipse

Open Eclipse and navigate to Window -> Open Perspective -> Git.

4. Clone Repository in Eclipse

From Git Repository select Clone Repository, provide git repository URI and credential information in Source Repository window. Specify Branch and save it.

5. Share Project in Eclipse

In Eclipse, navigate to Project > Team > Share Project and share newly added repository.

6. Commit and Push from Eclipse

In Eclipse from Git Perspective select files for Staging, provide commit message and click on Commit and Push button.

Monday, December 30, 2019

Install Robot Framework

1. Check prerequisite of Robot Framework

Write from command line
    python --version

Output showed installed python version.

Write from command line
    pip --version

Output showed installed pip version.


2. Install Robot Framework

Go to https://robotframework.org/ and read instructions.

Write from command line
pip install robotframework

It will download and install Robot Framework.


If required to uninstall already installed Robot Framework.

Write from command line
pip uninstall robotframework


If reinstalled right after uninstalling it than it will be installed from cache library.

To install a fresh copy write from command line
pip install --no-cache-dir robotframework


In order to upgrade installed Robot Framework, write from command line
pip install --upgrade robotframework


In order to install a specific version of Robot Framework, write from command line
pip install robotframework==2.9.2


3. Check installed Robot Framework

Write from command line
pip freeze

Output will show all python library installed list.

Write from command line
pip list

Output will show all python library installed list in a tabular form.

Write from command line
pip show robotframework

Output will show Robot Framework details.

Write from command line
pip check robotframework

Output will show Robot Framework requirement status.

Tuesday, December 10, 2019

Robot Framework skeleton

  • Variable
    • scalar
    • array type
    • array with item name
  • Keywords (method or function like)
  • Settings 
    • Setup (test suite and test case)
    • Teardown (test suite and test case)
  • Tag
    • Default Tag
    • Set Tag
    • Remove Tag