Video Demo: https://youtu.be/2FYpvbXCQIw
Decision of the CS50P course, final project idea by Harvard: Automation tool that I use in Java programming language, at the end of the research. I decided to use Selenium package. I found a title called Automation CS50P. There was also a need for other packages to help me do this project. After Run, It automatically adds the browser driver to the project with the webdriver-manager package. pytest-selenium is a plugin for pytest and it allows to test the selenium based project. This project is to automation the course website using Selenium WebDriver.
In summary, any software or application has expected criteria. It is the process of testing them using an automation test tool. The goal is to compare the actual result with the expected result and find defects or bugs.
- To build bug-free applications.
- To satisfy end user and client.
-
- Accessing the member course site.
- Watching a course introduction video.
- See the weekly course materials.
- Accessing and seeing each week's problem sets.
- You can install request modules with their methods:
pip install -r requirements.txt
- Run automation program with:
python project.py
- Run your tests by executing:
python -m pytest test_project.py
- Installing a browser to work
- The second run method maximizes the browser window by webdriver method
- The browser goes to the course site
- Opens and closes the introduction video of the course in full screen
- Opening the elements panel to inspect on browser, then creating locators by using the
find_elementmethod- The time has been set to wait for the web pages to be opened by until method of
WebDriverWait class- Click on the course weeks material page
- Click on the problem set page for the Week 0
- With for loops,
find_elementsof week problem set- Every problem page of the first week is checked by Improving with User Input >
while True:- Write the problem sets list of each weekly lesson in a
txt filewith for loops- This file is printed by
- These procedures are done to write in the order of weeks
- Control so a member can access all materials
- All of the functions on the main function are running in the correct order
- In particular, I took special care to create dynamic for looking at problem sets and weekly courses.
Automation is done in approximately a few minutes, but manual control takes more time. There is a possibility of manual user error.
Used to check whether all the functions in the code are working as expected. The pytest-selenium plugin provides functionality with browser work for tests.
These are the tests implemented:
def test_url():- Showing Welcome page
def test_week0():- User should be able to click on Week 0 Functions page then check
def test_problem_set_page():- User should be able to click on Problem Set page then check
def test_problems_of_week():-
Check each problems on:
Week 0
def test_week1():- User should be able to click on Week 1 Conditionals page then check
def test_week2():- User should be able to click on Week 2 Loops page then check
def test_week3():- User should be able to click on Week 3 Exceptions page then check
def test_week4():- User should be able to click on Week 4 Libraries page then check
def test_week5():- User should be able to click on Week 5 Unit Tests page then check
def test_week6():- User should be able to click on Week 6 File I/O page then check
def test_week7():- User should be able to click on Week 7 Regular Expressions page then check
def test_week8():- User should be able to click onWeek 8 Object-Oriented Programming page then check
def test_week9():- User should be able to click on Final Project page then check
Currently working through CS50P, Intro to programming with python.
Completed each weeks problem set on here:
Weeks
WEEK 0 : Functions, Variables
| Problem Set | Completed |
|---|---|
| Indoor Voice | indoor |
| Playback Speed | play |
| Making Face | faces |
| Einstein | einstein |
| Tip Calculator | tip |
WEEK 1 : Conditionals
| Problem Set | Completed |
|---|---|
| Deep Thought | deep |
| Home Federal Savings Bank | bank |
| File Extensions | extension |
| Math Interpreter | interpreter |
| Meal Time | meal |
WEEK 2 : Loops
| Problem Set | Completed |
|---|---|
| Camel Case | camel |
| Coke Machine | coke |
| Just setting up my twttr | twttr |
| Vanity Plates | plates |
| Nutrition Facts | nutrition |
WEEK 3 : Exceptions
| Problem Set | Completed |
|---|---|
| Fuel Gauge | [fuel |
| Felipe's Taqueria | taqueria |
| Grocery List | grocery |
| Outdated | outdated |
WEEK 4 : Libraries
| Problem Set | Completed |
|---|---|
| Emojize | emojize |
| Frank, Ian and Glen’s Letters | adieu |
| Adieu, Adieu | adieu |
| Guessing Game | game |
| Little Professor | professor |
| Bitcoin Price Index | bitcoin |
WEEK 5 : Unit Tests
| Problem Set | Completed |
|---|---|
| Testing my twittr | test_twttr |
| Back to the Bank | test_bank |
| Re-requesting a Vanity Plate | test_plates |
| Refueling | test_fuel |
WEEK 6 : File I/O
| Problem Set | Completed |
|---|---|
| Lines of Code | lines |
| Pizza Py | pizza |
| Scourgify | scourgify |
| CS50 P-Shirt | shirt |
WEEK 7 : Regular Expressions
| Problem Set | Completed |
|---|---|
| NUMB3RS | numb3rs |
| Watch on YouTube | [watch |
| Working 9 to 5 | working |
| Regular, um, Expressions | um |
| Response Validation | response |
WEEK 8 : Object Oriented Programming
| Problem Set | Completed |
|---|---|
| Seasons of Love | seasons |
| Cookie Jar | jar |
| CS50 Shirtificate | shirtificate |
WEEK 9 : Et Cetera
| Final Project | Completed |
|---|---|
| Final Project | project |
Mustafa Kul: mustafakulkulf1@gmail.com
LinkedIn : linkedin.com/in/mkulf1
GitHub : mu5tafacool