问题:
系统版本数量较大,升级路径较多,手工验证耗时,转发布项流水线自动验证
1.历史版本通过VM快照管理
(版本1,版本2,版本3)
2.CI自定义参数设置默认参数控制版本路径(可修改,保证升级路径可控)
3.Pytest设置升级案例
4.方案说明(参考)
A)可自定义类ToolClass设置回滚函数,前置函数及测试工具函数
B)uped_version 用于指定需升级版本
C)sanpshots_list 用于接口请求获取的快照版本
D)While 作用于特定信息需重新升级版本
E)reboot_dev 用于升级完毕后的通用检视项
def test_upd(self):
#升级验证
for i in self.uped_version:
if i in self.sanpshots_list:
#恢复快照
ToolClass().rollback_shot(self.host,i)
#前置
ToolClass().pre_clean()
#升级xx包
ok, pkg_name = ToolClass().import_pkg(xxl)
ok, message = ToolClass().update_pkg(pkg_name)
run_time = 10
if not ok:
while "xx" in str(message):
ok, message = ToolClass().update_pkg(pkg_name)
time.sleep(60)
run_time = run_time - 1
if run_time == 0:
break
assert ok
assert ToolClass().reboot_dev()