对于学生课题,自动化测试的目的是提升回归测试效率,而不是追求100%自动化。
自动化框架选择:
桌面应用(Windows):PyAutoGUI(根据图像/坐标,简单但脆弱), pywinauto(根据控件属性,更稳定推荐)。
桌面应用(Java跨平台):Swing/AWT应用可用 AssertJ Swing。
Web应用:Selenium WebDriver + Python(pytest)/Java(TestNG) 是行业标准。
移动应用:Appium(跨平台)。
实践:
使用Page Object方式:将每个GUI页面封装成一个类,页面的元素定位和操作作为类的方法。这极大提高代码可维护性。
稳定的元素定位器:优先使用id、name等唯一属性。避免使用绝对途径或根据位置的定位。
加入等待机制:使用“显式等待”(WebDriverWait)等待元素出现或可操作,而不是固定的sleep时间。
数据驱动:将测试数据(如用户名、密码)和测试脚本分离,从外部文件(CSV, Excel, JSON)读取,便于扩展用例。
需求分析阶段:确定GUI的功能规格和非功能要求(如支持哪些操作系统)。
测试计划和设计阶段:制定测试计划,编写详细的测试用例(建议使用Excel、TestLink或Allure等工具管理)。
测试执行和缺陷管理:
执行测试用例,记录结果。
使用 GitHub Issues、Jira或禅道 等工具管理缺陷。一个合格的缺陷报告应包括:标题、环境、重现步骤、预期结果、实际结果、截图/日志、严重等级。
回归测试和报告:在开发修复缺陷后,执行回归测试。生成测试报告,总结测试活动、缺陷统计、风险分析和最后质量考虑。