0


Web 自动化测试教程

Web 自动化测试通常使用 Selenium、Playwright 等工具来控制浏览器和进行测试。以下是使用 Python 和 Selenium 框架编写的详细 Web 自动化测试脚本教程。

一、前期准备

  1. 安装 Python:确保已经安装了 Python (版本3.7及以上)。

  2. 安装 Selenium

在终端中运行以下命令安装 Selenium:

  1. pip install selenium
  1. 安装 WebDriver:根据你要测试的浏览器下载对应的 WebDriver,比如 Chrome 使用 ChromeDriver。

• 将 WebDriver 放到环境变量路径或指定路径中,供 Selenium 调用。

二、编写测试脚本

1. 基本自动化测试脚本

  1. from selenium import webdriver
  2. from selenium.webdriver.common.by import By
  3. from selenium.webdriver.common.keys import Keys
  4. import time
  5. # 初始化 Chrome 浏览器
  6. driver = webdriver.Chrome()
  7. # 打开目标网站
  8. driver.get("https://www.google.com")
  9. # 在 Google 搜索框中输入查询
  10. search_box = driver.find_element(By.NAME, "q")
  11. search_box.send_keys("Selenium Python 教程")
  12. search_box.send_keys(Keys.RETURN)
  13. # 等待页面加载
  14. time.sleep(2)
  15. # 查找并打印页面标题
  16. print(driver.title)
  17. # 关闭浏览器
  18. driver.quit()

2. 详细解释

• webdriver.Chrome(): 初始化 Chrome 浏览器。如果使用其他浏览器,比如 Firefox,可以使用 webdriver.Firefox()。

• driver.get(url): 打开指定的 URL 页面。

• driver.find_element(By.<METHOD>, "<value>"): 根据不同定位方法查找页面元素。例如可以通过 By.ID、By.CLASS_NAME、By.CSS_SELECTOR 等。

• send_keys(): 模拟用户输入,如在输入框中输入文本。

• Keys.RETURN: 模拟按下回车键。

• driver.quit(): 关闭浏览器。

3. 自动化测试脚本示例:登录网站

  1. from selenium import webdriver
  2. from selenium.webdriver.common.by import By
  3. from selenium.webdriver.common.keys import Keys
  4. import time
  5. # 初始化浏览器
  6. driver = webdriver.Chrome()
  7. # 打开登录页面
  8. driver.get("https://example.com/login")
  9. # 输入用户名
  10. username = driver.find_element(By.ID, "username")
  11. username.send_keys("test_user")
  12. # 输入密码
  13. password = driver.find_element(By.ID, "password")
  14. password.send_keys("password123")
  15. # 点击登录按钮
  16. login_button = driver.find_element(By.ID, "loginButton")
  17. login_button.click()
  18. # 等待页面跳转
  19. time.sleep(3)
  20. # 检查登录是否成功
  21. if "Dashboard" in driver.title:
  22. print("登录成功!")
  23. else:
  24. print("登录失败!")
  25. # 关闭浏览器
  26. driver.quit()

三、Selenium 常用元素操作

  1. 查找元素

• find_element(By.ID, "element_id"): 通过 ID 查找元素。

• find_element(By.CLASS_NAME, "class_name"): 通过类名查找元素。

• find_element(By.NAME, "element_name"): 通过名称查找元素。

• find_element(By.CSS_SELECTOR, "css_selector"): 通过 CSS 选择器查找元素。

  1. 常见的元素操作

• click(): 模拟点击。

• send_keys(): 模拟文本输入。

• clear(): 清空输入框。

• get_attribute(): 获取元素属性值。

• text: 获取元素文本。

  1. 等待机制

显式等待:等待某个条件成立。

  1. from selenium.webdriver.support.ui import WebDriverWait
  2. from selenium.webdriver.support import expected_conditions as EC
  3. element = WebDriverWait(driver, 10).until(
  4. EC.presence_of_element_located((By.ID, "element_id"))
  5. )

隐式等待:等待指定时间,默认检查页面加载状态。

  1. driver.implicitly_wait(10) # 最多等待 10 秒

四、组织测试用例

可以使用 unittest 框架来组织和管理测试用例。

示例:使用 unittest

  1. import unittest
  2. from selenium import webdriver
  3. from selenium.webdriver.common.by import By
  4. from selenium.webdriver.common.keys import Keys
  5. import time
  6. class GoogleSearchTest(unittest.TestCase):
  7. def setUp(self):
  8. self.driver = webdriver.Chrome()
  9. self.driver.implicitly_wait(10)
  10. def test_search_in_google(self):
  11. driver = self.driver
  12. driver.get("https://www.google.com")
  13. search_box = driver.find_element(By.NAME, "q")
  14. search_box.send_keys("Selenium Python 教程")
  15. search_box.send_keys(Keys.RETURN)
  16. time.sleep(2)
  17. self.assertIn("Selenium Python 教程", driver.title)
  18. def tearDown(self):
  19. self.driver.quit()
  20. if __name__ == "__main__":
  21. unittest.main()

解释:

• setUp(): 每个测试用例执行前都会调用这个方法,用于设置初始条件。

• test_search_in_google(): 实际的测试用例。

• tearDown(): 每个测试用例执行后都会调用,用于清理工作,比如关闭浏览器。

五、常用的高级操作

  1. 处理弹窗

• 接受弹窗:

  1. alert = driver.switch_to.alert
  2. alert.accept()

• 取消弹窗:

  1. alert.dismiss()
  1. 处理多窗口

• 获取当前窗口句柄:

  1. current_window = driver.current_window_handle

• 切换到新窗口:

  1. driver.switch_to.window(new_window_handle)
  1. 执行 JavaScript 代码
  1. driver.execute_script("window.scrollTo(0, document.body.scrollHeight);")

六、扩展与集成

  1. 集成到 CI/CD:可以将 Selenium 测试脚本集成到 Jenkins、GitLab CI 等工具中,作为自动化测试的一部分。

  2. 报告生成:使用 Allure 等报告工具生成测试报告,或直接使用 unittest 的 TextTestRunner 生成控制台报告。

总结

Selenium 是一个强大的 Web 自动化测试框架,通过 Python 语言可以轻松地编写自动化测试脚本。结合 unittest 等测试框架,能够快速构建高效的自动化测试流程。


本文转载自: https://blog.csdn.net/Aizzz_1007/article/details/142139672
版权归原作者 不会技术的张同学 所有, 如有侵权,请联系我们删除。

“Web 自动化测试教程”的评论:

还没有评论