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


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

浙公网安备 33010602011771号