Selenium 自动化测试

《Selenium 自动化测试实验报告》
一、实验概述
1.1 实验目的
阐述本次使用 Selenium 进行自动化测试想要达成的目标,比如验证 Web 应用特定功能的正确性、提高测试效率、发现潜在的 UI 缺陷等。

 

1.2 实验环境
软件环境:
操作系统:注明操作系统的名称和版本,如 Windows 10等。
浏览器:列举使用的浏览器及其版本,如 Edge 133.0.3065.92等。
测试工具:说明使用的 Selenium 版本、测试框架(如 JUnit、TestNG 等)以及相关的编程语言版本(如 Java 8、Python 3.8 等)。
被测应用:介绍被测 Web 应用为百度,版本未知,部署环境linux。
 

二、测试范围
本次 Selenium 自动化测试所覆盖的 百度搜索模块。

 

 

三、测试用例设计
3.1 测试用例设计原则
测试用例设计是确保软件质量的关键环节,遵循以下原则可提高测试的全面性、有效性和可维护性:

1. ​​完整性原则​​
要求测试用例覆盖所有功能和场景,包括:

​​功能全覆盖​​:覆盖软件需求规格书中的全部功能模块,包括正常操作、异常处理和边界条件。
​​数据多样性​​:包含合理/不合理、合法/非法、边界值(如最大值、最小值)以及极限输入。
​​非功能性需求​​:涵盖性能、安全、兼容性等非功能指标。
测试登录功能时需包含密码错误、空输入、超长字符等场景。
2. ​​独立性原则​​
每个测试用例应独立存在,避免依赖其他用例的执行结果或环境状态:
​​无顺序依赖​​:用例之间无需按特定顺序执行。
​​自包含性​​:通过初始化操作(如环境重置、数据清理)确保用例独立执行。
3. ​​可重复性原则​​
同一测试用例在不同环境或时间执行时,结果需一致:
​​固定数据与环境​​:使用预设的测试数据和配置(如硬件、软件版本)。
​​自动化支持​​:通过脚本实现标准化操作,减少人为干扰。
自动化测试脚本通过参数化输入确保多次执行结果相同。
4. ​​可判定性原则​​
测试结果需有明确的判定标准:
​​预期结果清晰​​:搜索模块运行正常
5. ​​原子化与简洁性原则​​
​​单一测试点​​:每个用例仅验证一个功能点或场景,步骤不超过10个。
​​模块化设计​​:复杂功能拆分为多个原子用例(如“添加商品”“修改数量”分开设计)。
例如,支付功能可拆分为金额计算、支付方式选择、超时处理等独立用例。
6. ​​场景化与用户视角原则​​
​​贴近真实场景​​:模拟用户实际使用流程(如网络中断、多设备切换)。
​​第一人称描述​​:以用户操作视角设计用例步骤(如“输入账号→点击登录”)。
例如,测试导航软件需包含隧道信号丢失、离线地图加载等真实场景。
7. ​​可追溯性原则​​
​​需求关联​​:每个用例需标注来源(如需求文档编号)。
​​缺陷追踪​​:与缺陷管理系统关联,便于问题回溯。
用例标识符可包含需求编号(如“REQ-001_Login”)。
8. ​​效率与优化原则​​
​​优先级划分​​:核心功能和高风险模块优先测试。
​​持续优化​​:根据测试结果迭代更新用例,补充遗漏场景。

 

3.2 测试用例详情(5条)

 

用例编号

用例名称

测试模块

前置条件

测试步骤

预期结果

实际结果

是否通过

1-2 百度搜索功能 搜索

1. 安装edge浏览器

2.登录百度

1. 进入百度网址;
2. 输入搜索的文字;
3. 点击“搜索”按钮
用户搜索成功,跳转至搜索回弹的主页 看到被搜索问题页面 通过


四、测试实现
关键代码片段
展示一些重要的代码片段,并对其进行详细的注释和解释,如元素定位方法、操作步骤、断言语句等。

 

from selenium import webdriver
from selenium.webdriver.common.by import By
from selenium.webdriver.common.keys import Keys
import time

# 想要测试的网址


url = 'https://www.baidu.com/'
# 定义浏览器,默认打开Python文件夹下的msedgedriver.exe
bowser = webdriver.Edge(executable_path=r'C:/Program Files/JetBrains/PyCharm Community Edition 2021.3.3/bin/msedgedriver.exe')

# # 设置Driver 路径
# driver_path = r"C:/Program Files/JetBrains/PyCharm Community Edition 2021.3.3/bin/msedgedriver.exe"
#
# # 启动浏览器
# driver = webdriver.Edge(executable_path=driver_path)

# 设置浏览器大小
bowser.maximize_window() # 全屏
# 其他大小
# bowser.set_window_size(500, 500)

# 调用网页
bowser.get(url)

# 定位网页中的元素,百度搜索框输入 ID为KW:百度的搜索输入框
input_box = bowser.find_element(By.ID, 'kw')

# 输入搜索关键词
input_box.send_keys('pycharm')

# 按下回车键进行搜索
input_box.send_keys(Keys.ENTER)

print(bowser.current_url)
print(bowser.title)
print(bowser.name)

# 回退操作
bowser.back()
time.sleep(3)

# 设置自动关闭
# bowser.close()

 

 

五、测试执行情况
5.1 执行结果统计
测试用例总数:1

通过用例数:1

失败用例数:0

通过率:100%

5.2 失败用例分析
对失败的测试用例进行详细分析,包括失败原因(如元素定位失败、页面加载超时、业务逻辑错误等)、可能的影响范围以及相应的解决方案。

六、测试结论
6.1 测试总结

 

​本次测试已完成百度搜索模块的核心功能验证,但需针对动态页面、兼容性及异常场景进一步优化。建议结合 CI/CD 流程实现自动化回归测试,降低维护成本。

6.2 测试评价

​​优点方面​​,网页版百度展现了全面的功能覆盖,整合搜索、资讯、视频等核心模块,满足用户多样化需求。其搜索算法通过关键词联想和语义分析优化结果相关性,优先展示权威来源内容,符合百度白皮书的质量标准。界面设计简洁直观,操作友好,搜索框与功能入口分区明确,并支持键盘快捷键提升效率。技术兼容性较强,适配主流浏览器和操作系统,基础功能可访问性良好。

​​不足之处​​主要体现在广告干扰问题。页面广告占比过高,部分广告与自然搜索结果混淆,影响用户体验;广告内容与搜索意图关联性不足,降低可信度。性能方面,弱网络环境下页面加载延迟明显,未压缩图片和冗余代码导致资源占用较高,动态元素(如异步加载广告)影响自动化测试稳定性。移动端适配不完善,部分页面显示错位需手动缩放,响应式设计待优化。此外,存在少量死链未及时清理,权限限制页面缺乏明确提示,导致用户跳出率上升。

​​改进建议​包括:优化广告策略,限制广告占比并明确区分广告与自然结果,利用AI算法提升广告精准度。技术层面建议压缩图片为WebP格式、精简代码,结合CDN加速资源加载,目标将最大内容渲染时间(LCP)控制在1.2秒内,同时通过显式等待机制增强动态元素稳定性。移动端需升级响应式设计,实现全设备自适应布局,增加手势操作支持。完善可访问性管理,定期扫描死链并通过站长平台清理,对需登录内容增加预览片段。用户体验方面可引入基于历史数据的智能推荐模块,同时提供“无痕模式”选项加强隐私保护。最终建议参考百度网页质量白皮书,结合AI与大数据技术迭代升级,巩固搜索引擎竞争力。

七、附件
测试截图:

 

posted @ 2025-05-28 13:29  不言a  阅读(40)  评论(0)    收藏  举报