持续交付加速产品迭代V2
悦库经历了过去一年快速功能迭代,文件管理业务逐渐丰富,为了确保在快速开发迭代的同时保证产品质量,今年5月份我们在现有持续交付流水线V1基础上进行升级,增加自动测试任务以帮助悦库实现稳定质量的可持续发展。
计划
自动化测试主要包括单元测试、API测试、UI测试、系统测试、性能测试等,每一种测试方法都针对不同工程维度,全面覆盖需要大量的人力,我们在资源有限的情况下,需要首先解决当前面临的优先级最高的测试问题,然后根据我们产品个性,制定一个中长期的实现愿景。
悦库每次发布前,必须要做的工作是安装和升级测试,要确保新用户首次安装和老用户升级后基础功能可以正常使用,但做这项测试工作需要在多平台下(Window、Linux X86/ARM64)人工完成,很费时费力,所有平台做一次测试需要至少2小时,且人工测试过程很难在各个平台中全面覆盖基础功能。
我们首先实现对多平台部署测试自动化,然后对服务端主要API进行自动测试覆盖,测试任务实现后立即加入持续交付流水线。
迈出第一步
我们选择使用基于Python的pytest测试框架,简单易上手,辅助Copilot AI结对编程,提升了不少工作效率。
自动化部署测试分为首次安装测试和升级测试,需要分别对Windows、Linux X64和Linux ARM64三个平台进行测试,基本流程如下:
首次安装测试:
-
保存当前测试机原有环境。
-
获取流水线构建好的安装包,命令行运行执行安装过程。
-
登录测试,验证服务安装有效性。
-
使用yshell(悦库命令行客户端)执行新建、上传/下载、删除等基础用例,确保基础功能有效性。
-
还原测试机环境。
升级测试和首次安装测试差别在于需要先使用yshell从悦库内盘存档中下载当前平台上一次发布包,部署安装并执行升级后验证基础功能有效。
以下是构建流水线中的安装/升级测试任务:
如果测试任务失败是这样的:
直接点击出错任务节点,查看原因: