Merge pull request 'BUG430-Eden test script' (#70) from Eden-Testscript into Hui-Organize
Reviewed-on: mrlan/LRR#70Bug460-Malango
						commit
						162b347119
					
				|  | @ -0,0 +1,46 @@ | |||
| Sign-Up Automation Test Script | ||||
| Overview | ||||
| This script automates the sign-up process for a web application using Selenium WebDriver. It tests whether form values are retained correctly if the initial sign-up attempt fails and requires modification of the student ID before resubmission. | ||||
| 
 | ||||
| Prerequisites | ||||
| Python 3 | ||||
| Selenium library | ||||
| Chrome WebDriver | ||||
| A running instance of the web application on http://localhost:8080 | ||||
| 
 | ||||
| Configuration | ||||
| Web Application URL: Make sure the web application is running at http://localhost:8080. Adjust the URL in the script if necessary. | ||||
| 
 | ||||
| Update Element Locators: Ensure the IDs used in the script (signup_link, signup_form, full_name, student_id, email, password1, password2, signup_btn) match those in your web application. | ||||
| 
 | ||||
| Run the script: | ||||
| 
 | ||||
| Script Logic | ||||
| 
 | ||||
| Open the Login Page: The script navigates to the login page of the web application. | ||||
| Click the "Sign Up" Link: It waits for the "Sign Up" link to appear and clicks it to navigate to the sign-up page. | ||||
| Fill Out the Sign-Up Form: It fills out the form fields (Full Name, Student ID, Email, Password). | ||||
| Submit the Form: It submits the form and waits for the result. | ||||
| Check for Sign-Up Failure: If sign-up fails, it checks if form values are retained. | ||||
| Modify Student ID: If the form values are retained, it modifies the student ID and resubmits the form. | ||||
| Verify Retained Values: It verifies if other fields retain their values after modifying the student ID. | ||||
| Print Retained Values: If the second attempt is successful, it prints the retained form values. | ||||
| Close the Browser: The browser is closed at the end of the script execution. | ||||
| 
 | ||||
| 
 | ||||
| 
 | ||||
| The script provides the following output: | ||||
| 
 | ||||
| Sign-Up Successful: Indicates the sign-up was successful on the first attempt. | ||||
| Sign-Up Failed: Indicates the sign-up failed on the first attempt and checks for retained values. | ||||
| Second Sign-Up Attempt Successful: Indicates the second sign-up attempt was successful and prints the retained values. | ||||
| Second Sign-Up Attempt Failed: Indicates the second sign-up attempt also failed, suggesting further investigation is needed. | ||||
| Notes | ||||
| Form Field IDs: Ensure the IDs used in the script match those in your web application. | ||||
| Password Fields: The script intentionally does not print password fields for security reasons. | ||||
| Adjust Wait Times: Modify the wait times as needed depending on your application's response times. | ||||
| Troubleshooting | ||||
| Element Not Found: Verify the element IDs and update them in the script. | ||||
| WebDriver Errors: Ensure the Chrome WebDriver is installed and matches your Chrome browser version. | ||||
| Connection Errors: Ensure the web application is running and accessible at the specified URL. | ||||
| Contributing | ||||
|  | @ -0,0 +1,88 @@ | |||
| import time  # Import time module for waiting | ||||
| from selenium import webdriver | ||||
| from selenium.webdriver.common.by import By | ||||
| from selenium.webdriver.support.ui import WebDriverWait | ||||
| from selenium.webdriver.support import expected_conditions as EC | ||||
| 
 | ||||
| # New instance of the Chrome driver | ||||
| driver = webdriver.Chrome() | ||||
| 
 | ||||
| try: | ||||
|     # Step 1: Open the login page | ||||
|     driver.get("http://localhost:8080/lrr/lrr/admin.php")  # Replace with your actual login page URL | ||||
| 
 | ||||
|     # Step 2: Wait for the login page to fully load and locate the "Sign Up" link | ||||
|     sign_up_link = WebDriverWait(driver, 10).until( | ||||
|         EC.presence_of_element_located((By.ID, "signup_link")) | ||||
|     ) | ||||
|      | ||||
|     # Step 3: Click the "Sign Up" link to navigate to the sign-up page | ||||
|     sign_up_link.click() | ||||
| 
 | ||||
|     # Step 4: Wait for the sign-up page to fully load | ||||
|     WebDriverWait(driver, 10).until( | ||||
|         EC.presence_of_element_located((By.ID, "signup_form")) | ||||
|     ) | ||||
| 
 | ||||
|     # Step 5: Fill out the sign-up form | ||||
|     driver.find_element(By.ID, "full_name").send_keys("John Doe") | ||||
|     driver.find_element(By.ID, "student_id").send_keys("12345678") | ||||
|     driver.find_element(By.ID, "email").send_keys("john.doe@example.com") | ||||
|     driver.find_element(By.ID, "password1").send_keys("Password123!") | ||||
|     driver.find_element(By.ID, "password2").send_keys("Password123!") | ||||
| 
 | ||||
|     # Step 6: Submit the sign-up form | ||||
|     driver.find_element(By.ID, "signup_btn").click() | ||||
| 
 | ||||
|     # Step 7: Wait for the sign-up result | ||||
|     WebDriverWait(driver, 10).until( | ||||
|         EC.presence_of_element_located((By.TAG_NAME, "body")) | ||||
|     ) | ||||
| 
 | ||||
|     # Check if sign-up failed | ||||
|     if "alert-danger" in driver.page_source: | ||||
|         print("Sign-up failed. Checking if form values are retained...") | ||||
| 
 | ||||
|         # Wait for a few seconds (adjust as needed) | ||||
|         time.sleep(3) | ||||
| 
 | ||||
|         # Modify the student ID again | ||||
|         driver.find_element(By.ID, "student_id").clear() | ||||
|         driver.find_element(By.ID, "student_id").send_keys("87654321") | ||||
| 
 | ||||
|         # Verify if the other fields retain their values | ||||
|         assert driver.find_element(By.ID, "full_name").get_attribute("value") == "John Doe" | ||||
|         assert driver.find_element(By.ID, "email").get_attribute("value") == "john.doe@example.com" | ||||
|         assert driver.find_element(By.ID, "password1").get_attribute("value") == "" | ||||
|         assert driver.find_element(By.ID, "password2").get_attribute("value") == "" | ||||
| 
 | ||||
|         # Resubmit the form | ||||
|         driver.find_element(By.ID, "signup_btn").click() | ||||
| 
 | ||||
|         # Wait for the result again | ||||
|         WebDriverWait(driver, 10).until( | ||||
|             EC.presence_of_element_located((By.TAG_NAME, "body")) | ||||
|         ) | ||||
| 
 | ||||
|         # Check for success or failure after second attempt | ||||
|         if "alert-danger" in driver.page_source: | ||||
|             print("Second sign-up attempt failed. Further investigation needed.") | ||||
| 
 | ||||
| 
 | ||||
|             # Print the retained values | ||||
|             print("Retained form values after second attempt:") | ||||
|             print("Full Name:", driver.find_element(By.ID, "full_name").get_attribute("value")) | ||||
|             print("Email:", driver.find_element(By.ID, "email").get_attribute("value")) | ||||
|             # Password fields might be intentionally cleared, so they won't be printed here | ||||
|             print("Modified Student ID:", driver.find_element(By.ID, "student_id").get_attribute("value")) | ||||
|              | ||||
|         else: | ||||
|             print("Second sign-up attempt successful!") | ||||
|     else: | ||||
|         print("Sign-up successful!") | ||||
| 
 | ||||
|          | ||||
| 
 | ||||
| finally: | ||||
|     # Close the browser | ||||
|     driver.quit() | ||||
|  | @ -0,0 +1,6 @@ | |||
| Sign-up failed. Checking if form values are retained... | ||||
| Second sign-up attempt failed. Further investigation needed. | ||||
| Retained form values after second attempt: | ||||
| Full Name: John Doe | ||||
| Email: john.doe@example.com | ||||
| Modified Student ID: 87654321 | ||||
		Loading…
	
		Reference in New Issue