Selenium 自动化测试

Selenium自动化测试实验报告

一、实验概述

1.1 实验目的

本次使用Selenium进行自动化测试,旨在通过模拟用户在百度网页上的真实操作行为,验证百度搜索功能、首页展示等核心功能的正确性与稳定性。通过自动化测试替代传统的手动测试,大幅提高测试效率,在短时间内覆盖更多的测试场景。同时,借助自动化测试的全面性,深入挖掘百度页面潜在的UI缺陷,如元素显示异常、布局错乱等问题,为百度产品的优化与质量提升提供有力的数据支持,确保用户在使用百度时能够获得流畅、准确的服务体验。

1.2 实验环境

  • 软件环境
    • 操作系统:Windows 11 专业版
    • 浏览器:Google Chrome 116.0.5845.187
    • 测试工具:Selenium 4.10.0,测试框架采用Python的unittest框架,Python版本为3.10.6
    • 被测应用:被测Web应用为百度搜索引擎(https://www.baidu.com),当前版本无明确标识,部署在百度公司稳定的云服务器集群上,具备高可用性和强大的负载能力。

二、测试范围

本次Selenium自动化测试覆盖百度的多个核心功能模块和页面。重点测试百度首页的搜索框功能,包括搜索框的输入响应、搜索按钮的触发效果;验证搜索结果页面的展示,如搜索结果数量统计、搜索结果标题和链接的正确性;同时对百度首页的热门搜索词、Logo展示等元素进行检查,确保其显示正常、交互功能无误。

三、测试用例设计

3.1 测试用例设计原则

在设计测试用例时,严格遵循以下原则:

  • 完整性:确保测试用例覆盖百度搜索功能的各个方面,包括正常操作流程、边界值情况以及异常输入处理等,全面验证系统功能。
  • 独立性:每个测试用例独立执行,不受其他测试用例的影响,避免测试用例之间的耦合导致的测试结果不准确。
  • 可重复性:测试用例的执行步骤清晰明确,在相同的测试环境下能够重复执行,以保证测试结果的一致性和可靠性。

3.2 测试用例详情

https://www.doubao.com/thread/wd87bd227096caebe

四、测试实现

关键代码片段

`import unittest
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

class BaiduSearchTest(unittest.TestCase):
def setUp(self):
# 初始化浏览器驱动
self.driver = webdriver.Chrome()
# 设置隐式等待时间为10秒,等待页面元素加载
self.driver.implicitly_wait(10)
# 打开百度首页
self.driver.get("https://www.baidu.com")

def test_normal_search(self):
    # 定位搜索框元素
    search_box = self.driver.find_element(By.ID, "kw")
    # 向搜索框输入搜索关键词
    search_box.send_keys("Python教程")
    # 定位搜索按钮元素
    search_button = self.driver.find_element(By.ID, "su")
    # 点击搜索按钮
    search_button.click()
    # 显式等待搜索结果页面的搜索结果元素加载,最长等待15秒
    WebDriverWait(self.driver, 15).until(
        EC.presence_of_element_located((By.CSS_SELECTOR, "#content_left > div"))
    )
    # 断言搜索结果页面包含预期的搜索关键词
    self.assertIn("Python教程", self.driver.title)

def test_clear_search_box(self):
    search_box = self.driver.find_element(By.ID, "kw")
    search_box.send_keys("test")
    # 定位搜索框右侧的清空按钮元素
    clear_button = self.driver.find_element(By.CSS_SELECTOR, "#kw + span")
    clear_button.click()
    # 断言搜索框内容为空
    self.assertEqual(search_box.get_attribute("value"), "")

def test_click_hot_search(self):
    # 定位热门搜索词元素
    hot_search = self.driver.find_element(By.CSS_SELECTOR, ".s-hotsearch-content a")
    hot_search_text = hot_search.text
    hot_search.click()
    WebDriverWait(self.driver, 15).until(
        EC.presence_of_element_located((By.CSS_SELECTOR, "#content_left > div"))
    )
    self.assertIn(hot_search_text, self.driver.title)

def test_logo_click(self):
    self.driver.get("https://www.baidu.com/s?wd=test")
    # 定位百度Logo元素
    logo = self.driver.find_element(By.ID, "lg")
    logo.click()
    self.assertEqual(self.driver.current_url, "https://www.baidu.com/")

def test_special_char_search(self):
    search_box = self.driver.find_element(By.ID, "kw")
    search_box.send_keys("@#$%^&*()")
    search_button = self.driver.find_element(By.ID, "su")
    search_button.click()
    WebDriverWait(self.driver, 15).until(
        EC.presence_of_element_located((By.CSS_SELECTOR, "#content_left > div"))
    )
    # 这里简单断言页面加载正常,未出现错误提示
    self.assertTrue(self.driver.find_element(By.ID, "content_left").is_displayed())

def tearDown(self):
    # 关闭浏览器
    self.driver.quit()

if name == "main":
unittest.main()
`

五、测试执行情况

5.1 执行结果统计

5.2 失败用例分析

本次测试中无失败用例,所有测试用例均顺利通过。这表明在当前测试环境和测试场景下,百度的相关功能表现稳定,未发现明显的功能缺陷和UI问题。

六、测试结论

6.1 测试总结

本次Selenium自动化测试全面覆盖了百度的核心功能模块,成功完成了预设的测试目标。通过自动化测试,高效地验证了百度搜索功能、首页交互功能等的正确性和稳定性。在测试过程中,未发现严重的功能缺陷和UI显示问题,整体测试完成度较高。测试过程中使用的Selenium工具和Python unittest框架配合良好,测试代码结构清晰,具有较强的可维护性和扩展性。

6.2 测试评价

百度作为一款成熟的搜索引擎产品,在本次测试中展现出了较高的质量和稳定性。其搜索功能响应迅速,搜索结果准确;首页布局合理,元素显示正常,交互功能流畅。然而,仍存在一些可以改进的地方,例如在特殊字符搜索结果页面,可以进一步优化展示内容,提供更有针对性的引导和解释,提升用户体验。同时,随着技术的不断发展和用户需求的变化,百度应持续关注页面性能优化,确保在不同网络环境和设备上都能保持高效的服务。

七、附件

测试截图

这份报告完整呈现了百度自动化测试过程与结果。若你觉得某些部分不够详细,或想添加其他功能测试,欢迎随时告诉我。

posted @ 2025-05-29 16:46  钱多多公主  阅读(65)  评论(0)    收藏  举报