测试目标
保证每个版本发布完成后,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.部分网站有时跳转其他网站,页面结构发生变化
解决方法:定期维护脚本