某项目自动化测试分享

发布于:2025-02-22 ⋅ 阅读:(18) ⋅ 点赞:(0)

测试目标

保证每个版本发布完成后,Top 100网站核心流程(访问—>解析—>下载)使用正常,减少手工回归

测试时间,提高产品稳定性

工具与框架

Behave+uiautomator2+Jenkins

选择原因

Behave

  • Behave支持行为驱动开发(BDD),允许编写具有自然语言描述的测试用例,让测试步骤易于理解和维护;
  • BDD结构使测试用例更加可读,可以帮助团队在测试设计阶段达成一致;
  • Behave完全基于Python编写,具备较大的社区支持,拥有丰富的第三方插件,可以增强测试功能(如数据驱动、报告生成等)
  • Behave测试覆盖面广,可以用于Web、API、数据库和移动端等多场景的测试

uiautomator2

  • uiautomator2是Android自动化测试的高效工具,支持模拟用户行为的多种操作,如点击、输入、滑动、截图等,覆盖大部分应用场景;
  • uiautomator2架构轻量,安装和配置简单,可以快速部署到CI/CD环境中实现自动化回归测试;
  • uiautomator2支持连接和管理多个Android设备,对不同系统版本和多设备兼容性测试友好;
  • uiautomator2执行效率高,适合频繁交互的应用场景,如快速滑动和页面跳转;

Jenkins

  • Jenkins可以高效地管理和执行CI/CD流程,支持自动化触发测试执行,并集成测试报告和反馈流程

测试用例设计

# language: zh-CN
功能: all1 top100网站回归测试

  场景大纲: P系列网站回归测试
    当用户在首页搜索框输入"<word>"
    而且用户向上滑动页面1次
    那么用户应该看到悬浮按钮亮起
    当用户点击悬浮下载按钮
    那么用户应该看到下载进度页
    当用户点击返回键
    而且用户在当前页面点击坐标(0.5,0.31)
    那么用户应该看到悬浮按钮亮起
    当用户点击悬浮下载按钮
    那么用户应该看到下载进度页
    当用户点击返回键
    而且用户点击底部工具栏主页按钮
    那么用户应该看到主页
    例子:
      | word |
      | url1 |
      | url2 |
      | url3 |

持续集成

执行策略:周一、周三、周五分设备分文件执行

报告与反馈机制

方案维护和扩展性

为保证方案长期的稳定性和适用性,将采用以下维护策略:

用例定期更新:定期检查Top 100网站列表,更新测试用例以适应可能的页面结构或下载链接变化

脚本维护:复用模块化脚本,定期检查和优化代码,减少重复代码,降低维护难度

定期优化:每月审查成功率、执行时长等测试数据,调整超时时间和脚本逻辑,确保测试高效稳定

所遇问题

1.自动化测试过程中会随机地出现下载完成弹窗和通知,导致某些步骤执行失败

解决方法:研发已协助增加开关屏蔽下载完成弹窗、执行脚本前关闭通知栏权限

2.自动化测试结束后,有时不发送测试报告到飞书群

原因:可能是本地搭建的Jenkins服务不稳定,导致触发不到某些流程

解决方法:本地执行脚本,Jenkins定时触发生成报告和发送报告到飞书群

3.自动化测试回归1次需要1个多小时,时间有点长

解决方法:原feature文件比较大,现在拆分3部分

4.Jenkins生成的报告ip不固定,只能局域网访问

解决方法:现在固定了ip

5.部分网站有时跳转其他网站,页面结构发生变化

解决方法:定期维护脚本