CN116383090A - 一种用于麒麟系统迁移工具的自动化测试方法及平台 - Google Patents

一种用于麒麟系统迁移工具的自动化测试方法及平台 Download PDF

Info

Publication number
CN116383090A
CN116383090A CN202310613793.3A CN202310613793A CN116383090A CN 116383090 A CN116383090 A CN 116383090A CN 202310613793 A CN202310613793 A CN 202310613793A CN 116383090 A CN116383090 A CN 116383090A
Authority
CN
China
Prior art keywords
verification
migration
test
result
rollback
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Granted
Application number
CN202310613793.3A
Other languages
English (en)
Other versions
CN116383090B (zh
Inventor
杨清玉
李金丽
李轩
李笑迎
黄科岩
王丽君
王宇琦
冯策
陈雨晴
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Kirin Software Co Ltd
Original Assignee
Kirin Software Co Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Kirin Software Co Ltd filed Critical Kirin Software Co Ltd
Priority to CN202310613793.3A priority Critical patent/CN116383090B/zh
Publication of CN116383090A publication Critical patent/CN116383090A/zh
Application granted granted Critical
Publication of CN116383090B publication Critical patent/CN116383090B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/36Preventing errors by testing or debugging software
    • G06F11/3668Software testing
    • G06F11/3672Test management
    • G06F11/3688Test management for test execution, e.g. scheduling of test suites
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/36Preventing errors by testing or debugging software
    • G06F11/3668Software testing
    • G06F11/3672Test management
    • G06F11/3692Test management for test results analysis
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/455Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
    • G06F9/45533Hypervisors; Virtual machine monitors
    • G06F9/45558Hypervisor-specific management and integration aspects
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/455Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
    • G06F9/45533Hypervisors; Virtual machine monitors
    • G06F9/45558Hypervisor-specific management and integration aspects
    • G06F2009/4557Distribution of virtual machine instances; Migration and load balancing
    • YGENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y02TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
    • Y02DCLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
    • Y02D10/00Energy efficient computing, e.g. low power processors, power management or thermal management

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Software Systems (AREA)
  • Computer Hardware Design (AREA)
  • Quality & Reliability (AREA)
  • Debugging And Monitoring (AREA)
  • Measuring Or Testing Involving Enzymes Or Micro-Organisms (AREA)

Abstract

本发明提供一种用于麒麟系统迁移工具的自动化测试方法及平台,包括以下步骤:S1、获取迁移工具和自动化测试脚本;S2、设置当前测试轮数i=1;S3、修改测试配置文件,恢复虚拟机初始快照;S4、下发迁移工具和自动化测试脚本至虚拟机中;S5、执行自动化测试脚本,判断自动化测试脚本执行结果,若成功,则进行S6,若失败,则进行S7;S6、虚拟机上传测试结果,测试时间和关键文件,然后进行S8;S7、获取测试结果,测试时间和关键文件,然后进行S8;S8、创建虚拟机结果快照,获取总的测试结果,生成测试报告,判断是否需要重新测试,若是,则设置当前测试轮数为i=i+1,返回S3,若否,则结束。

Description

一种用于麒麟系统迁移工具的自动化测试方法及平台
技术领域
本发明涉及一种系统迁移工具的自动化测试,尤其涉及一种用于麒麟系统迁移工具的自动化测试方法及平台。
背景技术
随着国产化操作系统替代需求的日益增加,在不影响原系统中的业务运行的基础上,将CentOS或RHEL系统原地替换为麒麟操作系统在很多市场项目中被提及和应用。麒麟系统迁移工具能够满足这个需求,但是源系统CentOS和RHEL系统有6系列、7系列、8系列,目标系统有多个版本的麒麟操作系统。迁移测试的组合多,迁移场景复杂,有的还需要部署各种不同的应用,安装不同的第三方驱动,如果每个迁移组合都采用手动测试,需要耗费大量的人力和时间。
发明内容
针对上述问题,本发明提供一种用于麒麟系统迁移工具的自动化测试方法及平台;通过中心控制机组织测试,批量对不同的源系统原地迁移到不同的目标系统进行测试,对测试失败的组合进行反复测试,排除环境因素的影响。通过快照恢复实现初始环境的一致性,通过快照创建保留测试环境。对各个阶段的结果进行验证,多方面多角度验证迁移的正确性。该平台操作灵活,提高了测试稳定性和效率,能够进行反复测试,降低了人工成本。
为实现上述目的,本发明的一种用于麒麟系统迁移工具的自动化测试方法,包括以下步骤:
S1、获取迁移工具和自动化测试脚本;
S2、设置当前测试轮数i=1;
S3、修改测试配置文件,恢复虚拟机初始快照;
S4、下发迁移工具和自动化测试脚本至虚拟机中;
S5、执行自动化测试脚本,判断自动化测试脚本执行结果,若成功,则进行S6,若失败,则进行S7;
S6、虚拟机上传测试结果,测试时间和关键文件,然后进行S8;
S7、获取测试结果,测试时间和关键文件,然后进行S8;
S8、创建虚拟机结果快照,获取总的测试结果,生成测试报告,判断是否需要重新测试,若是,则设置当前测试轮数为i=i+1,返回S3,若否,则结束。
进一步的,所述S5具体包括:
S51、准备环境,包括:备份日志文件,系统信息检查文件,测试结果文件,安装脚本执行依赖,卸载冲突包,准备迁移的白名单和黑名单,安装第三方驱动;
S52、安装迁移工具,记录安装时间和安装结果,判断是否安装成功,若是,则进行下一步,若否则结束;
S53、迁移初始化,记录迁移初始化时间和迁移初始化结果,判断迁移初始化是否成功,若是,则进行下一步,若否则结束;
S54、迁移评估,记录迁移评估时间和迁移评估结果,判断迁移评估是否成功,若是,则进行下一步,若否,则结束;
S55、评估报告检测,包括版本信息检测,主机名检测,IP检测,新增包列表、删除包列表、替换包列表、保留包列表检测;
S56、实施迁移,记录迁移实施时间和备份时间,记录迁移实施结果和备份结果,判断迁移是否成功,若是,则进行下一步,若否,则结束;
S57、迁移报告检查,包括迁移报告中新增包、删除包、替换包、保留包的情况是否与系统中存在情况一致;
S58、对评估报告和迁移报告中的内容进行对比,检查内容是否一致,包括新增包、删除包、替换包、保留包列表检查;
S59、迁移后配置,记录迁移后配置时间和配置结果,判断迁移后是否配置成功,若是,则进行下一步,若否,则结束;
S510、系统重启,记录重启时间和重启结果;
S511、迁移后系统验证,包括版本信息验证、内核版本验证、UKUI验证、授权包验证、centos/redhat包验证、特定包验证、第三方驱动验证、业务系统验证,记录迁移后系统验证结果;
S512、迁移回退验证,记录迁移后回退时间和迁移回退验证结果,判断迁移回退验证是否成功,若是,则进行下一步,若否,则结束;
S513、系统重启,记录重启结果,备份数据清理,完成后,检测是否存在残留,记录清理备份数据的结果。
进一步的,所述迁移后系统验证包括,版本信息验证、授权包验证、centos/redhat包验证、内核版本验证、UKUI验证、特定包验证、第三方驱动验证、业务系统验证,具体的:
版本信息验证:获取配置文件中设置的源系统和目标系统设置,查看迁移后系统版本信息,若系统版本信息中包含了从源系统迁移到目标系统的内容,则版本信息验证通过,否则,版本信息验证失败,记录版本信息验证结果;
授权包验证:执行授权检查命令,若授权检查命令执行成功,则授权包验证通过,否则,授权包验证失败,记录授权包验证结果;
centos/redhat包验证:执行rpm -qa centos、rpm -qa redhat命令,若不存在centos或redhat包,centos/redhat包验证验证通过,否则,centos/redhat包验证验证失败,记录centos/redhat包验证结果;
内核版本验证:使用uname-a查看内核版本,若内核版本与配置文件中设置的相同,则内核版本验证验证通过,否则,内核版本验证验证失败,记录内核版本验证结果;
UKUI验证:执行rpm -qa|grep ukui,查看是否包含UKUI相关的包,若包含,则UKUI验证通过,否则,UKUI验证失败,记录UKUI验证结果;
特定包验证:根据配置文件查看特定包,若特定包与配置文件中配置的一致,则特定包验证通过,否则,特定包验证失败,记录特定包验证结果;
第三方驱动验证:执行lsmod|grep xxx查看系统中的驱动,若存在安装过的第三方驱动,则第三方驱动验证通过,否则,第三方驱动验证失败,记录第三方驱动验证结果;
业务系统验证:使用业务系统,若业务系统正常运行,则业务系统验证通过,否则,第三方驱动验证失败,记录业务系统验证结果。
进一步的,所述S512的迁移回退验证具体包括:
第一次回退,执行回退命令,验证回退是否成功,若成功,则进行系统重启,若否则验证失败;
系统重启,验证重启是否成功,若是,则进行第一次迁移,若否,则验证失败;
第一次迁移,执行迁移实施命令,判断迁移是否成功,若是,则进行第二次回退,若否,则验证失败;
第二次回退,执行回退命令,验证回退是否成功,若是,则进行第二次迁移,若否,则验证失败;
第二次迁移,执行迁移实施命令,等待指定时间后,中断迁移过程,进行第三次回退;
第三次回退,执行回退命令,验证回退是否成功,若是,则进行第三次迁移,若否,则验证失败;
第三次迁移,执行迁移实施命令,验证迁移是否成功,若是,则回退验证通过,若否,则回退验证失败。
进一步的,验证回退是否成功具体包括:软件包列表验证、第三方驱动验证和业务系统验证;
软件包列表验证:执行rpm -qa查看系统软件包列表,若软件包列表与源系统软件包列表相同,则软件包列表验证通过。
进一步的,所述步骤S8具体包括:
创建虚拟机结果快照,保存测试环境,基于总的测试结果,判断各阶段测试结果是否均通过,若是,则测试结果为通过,若否,则测试结果为不通过;
根据测试结果生成测试报告,测试报告包含测试配置文件内容、各阶段测试结果、总的测试结果和测试过程中各步骤的执行时间;
判断是否需要重新测试,若测试结果为不通过,且当前测试轮数小于最大测试轮数,则设置当前测试轮数加1,更新测试配置文件,去除测试成功的虚拟机,从新对未成功部分进行测试,直至所有虚拟机测试成功或当前测试轮数等于最大测试轮数,结束测试。
一种用于麒麟系统迁移工具的自动化测试平台,具体包括:
中心控制机和多个测试服务器,所述测试服务器上部署了多个虚拟机,所述中心控制机中设置有测试配置文件,所述测试配置文件用于配置最大测试轮数、本轮测试使用的服务器IP、测试服务器上的虚拟机名称、虚拟机初始快照名称和虚拟机IP、自动化测试脚本执行命令;
中心控制机获取迁移工具、自动化测试脚本,并下发到虚拟机中,执行测试,中心控制机对服务器上的虚拟机进行初始快照恢复和测试完成后的快照创建,测试完成后,虚拟机主动上传或中心控制机获取测试结果、测试时间、关键文件,设置总的测试结果,生成测试报告。
本发明的一种用于麒麟系统迁移工具的自动化测试方法及平台的有益效果为:通过中心控制机组织测试,批量对不同的源系统原地迁移到不同的目标系统进行测试,对测试失败的组合进行反复测试,排除环境因素的影响。通过快照恢复实现初始环境的一致性,通过快照创建保留测试环境。对各个阶段的结果进行验证,多方面多角度验证迁移的正确性。该平台操作灵活,提高了测试稳定性和效率,能够进行反复测试,降低了人工成本
附图说明
下面结合附图和具体实施方式对本发明作进一步详细的说明。
图1是本发明的自动化测试方法流程示意图。
图2是本发明的自动化测试脚本工作流程示意图。
图3是本发明的迁移后系统验证流程示意图。
图4是本发明的迁移回退验证流程示意图。
图5是本发明的回退成功验证流程示意图。
图6是本发明的自动化测试平台结构示意图。
具体实施方式
下面结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述。在下面的描述中阐述了很多具体细节以便于充分理解本发明,但是本发明还可以采用其他不同于在此描述的其它方式来实施,本领域技术人员可以在不违背本发明内涵的情况下做类似推广,因此本发明不受下面公开的具体实施例的限制。
如图1所示,为本发明的自动化测试流程,中心控制机获取迁移工具、自动化测试脚本,修改测试配置文件。对待测试的虚拟机进行初始快照恢复,下发测试工具和脚本到待测试的虚拟机中,执行测试。测试完成后,虚拟机主动上传或中心控制机获取测试结果、测试时间、关键文件。对虚拟机创建快照,保留测试环境。设置总的测试结果,生成测试报告。如果需要重新测试,自动更新测试配置文件,去除测试成功的虚拟机,重新启动下一轮测试。具体的:
(1)中心控制机获取迁移工具,中心控制机从版本库中获取待测试的麒麟系统迁移工具。
(2)中心控制机获取自动化测试脚本,中心控制机从代码库中获取最新版本的自动化测试脚本。
(3)设置当前测试轮数为1。
(4)修改测试配置文件,该配置文件用于设置本轮测试使用的测试服务器IP、测试服务器上的虚拟机名称、虚拟机初始快照名称、虚拟机IP、自动化测试脚本执行命令等。
(5)虚拟机初始快照恢复,根据测试配置文件中配置的内容,登录测试服务器上,使用对指定虚拟机恢复初始快照。该步骤初始化虚拟机测试环境,保证了每次测试的环境一致性。
(6)下发迁移工具和自动化测试脚本到虚拟机中,根据测试配置文件中配置的虚拟机IP,拷贝迁移工具和自动化测试脚本到虚拟机中。
(7)执行自动化测试脚本,根据测试配置文件中的自动化测试脚本执行命令,登录测试服务器上的虚拟机,后台执行自动化测试命令。
(8)测试脚本执行结果包括两种:
1)测试脚本执行成功,虚拟机主动上传测试结果、测试时间、关键文件。
2)测试脚本执行失败,中心控制机获取测试结果、测试时间和关键文件。
测试脚本执行过程中生成的测试结果包含各阶段测试结果:工具安装、迁移初始化、迁移评估、迁移实施、备份、迁移后配置、重启、迁移后系统验证、回退验证、备份清理。测试时间包含测试脚本执行过程中重要步骤的执行时间包括:安装时间、迁移初始化时间、迁移实施时间、备份时间、迁移后配置时间、重启时间、回退时间。关键文件包括评估报告、迁移报告、迁移输出文件、迁移日志、自动化测试脚本执行日志。
其中,迁移输出文件、迁移日志是迁移工具(即被测产品)生成的,迁移输出文件主要用于迁移工具生成评估报告和迁移报告;迁移日志是迁移过程中的细节记录;
自动化测试脚本执行日志,为测试脚本执行过程的输出文件,主要包含迁移工具在执行过程中的界面输出,验证结果
(9)远程登录测试服务器,创建虚拟机结果快照,该快照可以保留测试环境,以便后续查看现象,分析问题。对于测试失败情况,更为重要。
(10)设置总的测试结果:如果测试脚本执行过程中生成的各阶段测试结果均通过,总的测试结果为通过;否则,总的测试结果为失败。
(11)根据测试结果生成测试报告,测试报告包含测试配置文件中的内容、测试脚本执行过程中生成的各阶段测试结果、总的测试结果和测试脚本执行过程中统计的重要步骤执行时间。
(12)判断是否需要重新测试,如果当前测试存在失败的组合,且当前测试轮数小于最大测试轮数,设置当前测试轮数加1,更新测试配置文件,去除测试成功的虚拟机,重新启动下一轮测试。如果没有测试失败的组合,或者当前测试轮数等于最大测试轮数,结束。
判断测试失败组合的原因在于,进行测试,有可能是本身迁移失败,有可能是网络等环境因素导致迁移失败,对测试失败的组合进行反复测试,是为了排除网络等环境因素的影响;
中心控制机可以通过是否存在测试结果文件以及测试结果文件中的内容判断组合是否测试失败,如果各阶段的测试结果都是通过,则测试成功,如果存在某一阶段的结果为失败,或者测试阶段不完整,则测试失败。
不存在测试结果文件的情况:例如重启系统失败,中心控制机也无法访问虚拟机,也就无法通过scp拷贝了,导致不存在测试结果文件。
测试阶段不完整的情况:例如迁移实施超时了,中心控制机从虚拟机获取测试结果文件,就没有后面的迁移后配置的结果、迁移后回退的结果、迁移后系统验证的结果。
如图2所示,为本发明的自动化测试脚本工作流程,包括环境准备、工具安装、验证工具安装是否成功、迁移初始化、验证迁移初始化是否成功、迁移评估、验证迁移评估是否成功、评估报告检查、迁移实施、验证迁移实施是否成功、迁移报告检查、评估报告与迁移报告对比检查、迁移后配置、验证迁移后配置是否成功、迁移后系统验证、迁移后回退验证、备份清理。具体的:
(1)环境准备,包括备份日志文件、系统信息检查文件、测试结果文件,安装脚本执行的依赖,卸载冲突包,准备迁移的白名单、黑名单,安装第三方驱动等。
(2)工具安装,安装麒麟系统迁移工具,记录安装时间,记录工具安装结果。
(3)如果工具安装成功,则进行下一步;否则,结束。
(4)迁移初始化,记录迁移初始化时间,记录迁移初始化结果。
(5)如果迁移初始化成功,则进行下一步;否则,结束。
(6)迁移评估,记录迁移评估时间,记录迁移评估结果。
(7)如果迁移评估成功,则进行下一步;否则,结束。
(8)评估报告检查,包括版本信息检查、主机名检查、IP检查、新增包列表、删除包列表、替换包列表、保留包列表检查等。
(9)迁移实施,记录迁移实施时间和备份时间,记录迁移实施结果和备份结果。
(10)如果迁移实施成功,则进行下一步;否则,结束。
(11)迁移报告检查,包括迁移报告中新增包、删除包、替换包、保留包的情况是否与系统中存在情况一致等。
(12)评估报告与迁移报告对比检查,对评估报告和迁移报告中相同模块的内容进行对比检查,查看是否内容一致,例如新增包列表、删除包列表、替换包列表、保留包列表检查。
(13)迁移后配置,记录迁移后配置时间,记录迁移后配置结果。
(14)如果迁移后配置成功,则进行下一步;否则,结束。
(15)系统重启,记录重启时间,记录重启结果。
(16)迁移后系统验证,迁移后系统验证包括系统版本验证、内核版本验证、UKUI验证、授权包验证、centos和redhat包验证、特定包验证、第三方驱动验证、应用场景验证,记录迁移后系统验证结果。
(17)迁移回退验证,迁移后回退时间,记录迁移回退验证结果。
(18)如果迁移回退验证成功,则进行下一步;否则,结束。
(19)系统重启,记录重启结果。
(20)备份清理,清理备份数据完成后,检查是否还存在备份数据,记录清理备份的结果。
如图3所示,为本发明的迁移后系统验证流程,包括版本信息验证、授权包验证、centos/redhat包验证、内核版本验证、UKUI验证、特定包验证、第三方驱动验证、业务系统验证。具体的:
(1)版本信息验证:获取配置文件中设置的源系统和目标系统设置,查看迁移后系统版本信息,如果信息中包含了从源系统迁移到目标系统的内容,则版本信息验证通过;否则,版本信息验证失败。记录版本信息验证结果。
(2)授权包验证:执行授权检查命令,如果授权检查命令执行成功,授权包验证通过;否则授权包验证失败。记录授权包验证结果。
(3)centos/redhat包验证:执行rpm -qa centos、rpm -qa redhat命令,如果不存在centos或redhat包,centos/redhat包验证验证通过;否则,centos/redhat包验证验证失败。记录centos/redhat包验证结果。
(4)内核版本验证:使用uname -a查看内核版本,如果内核版本与配置文件中设置的相同,内核版本验证验证通过;否则,内核版本验证验证失败。记录内核版本验证结果。
(5)UKUI验证:执行rpm -qa | grep ukui,查看是否包含UKUI相关的包,如果包含,则UKUI验证通过;否则,UKUI验证失败。记录UKUI验证结果。
(6)特定包验证:根据配置文件查看特定包,如果特定包与配置文件中配置的一致,特定包验证通过;否则,特定包验证失败。记录特定包验证结果。
(7)第三方驱动验证:执行lsmod | grep xxx查看系统中的驱动,如果存在安装过的第三方驱动,第三方驱动验证通过;否则,第三方驱动验证失败。记录第三方驱动验证结果。
(8)业务系统验证:使用业务系统,如果业务系统正常运行,业务系统验证通过;否则,第三方驱动验证失败。记录业务系统验证结果。
如图4所示,为本发明的迁移回退验证流程,迁移回退验证包括三次回退和三次迁移实施:第一次回退是用于验证迁移实施后,能够回退成功,第一次迁移实施是用于验证回退后,能够迁移实施成功;第二次回退,实施迁移,迁移实施过程中中断,是用于准备迁移实施中断的前提;第三次回退是用于验证迁移实施中断后,能够回退成功,第三次迁移实施,是用于验证迁移实施中断后,回退后,能够迁移实施成功。具体的:
(1)第一次回退,执行回退命令,完成后记录回退时间。
(2)验证回退是否成功,包括日志中是否存在回退成功的内容,回退后系统是否恢复到迁移前的状态:软件包列表与源系统软件包列表相同,存在源系统安装过的第三方驱动,业务系统正常运行。如果回退成功,进行下一步操作;否则,回退验证失败。
(3)重启系统。
(4)如果系统重启成功,进行下一步操作;否则,回退验证失败。
(5)第一次迁移实施,执行迁移实施命令。
(6)如果第一次迁移实施成功,进行下一步操作;否则,回退验证失败。
(7)第二次回退,执行回退命令,完成后记录回退时间。
(8)验证回退是否成功,包括日志中是否存在回退成功的内容,回退后系统是否恢复到迁移前的状态:软件包列表与源系统软件包列表相同,存在源系统安装过的第三方驱动,业务系统正常运行。如果回退成功,进行下一步操作;否则,回退验证失败。
(9)第二次迁移实施,执行迁移实施命令,等待指定时间后,中断迁移过程。
(10)第三次回退,执行回退命令。
(11)验证回退是否成功,包括日志中是否存在回退成功的内容,回退后系统是否恢复到迁移前的状态:软件包列表与源系统软件包列表相同,存在源系统安装过的第三方驱动,业务系统正常运行。如果回退成功,进行下一步操作;否则,回退验证失败。
(12)第三次迁移实施,执行迁移实施命令。
(13)如果第三次迁移实施成功,回退验证通过;否则,回退验证失败。
如图5所示,为本发明的回退成功验证流程图,回退成功验证包括软件包列表验证、第三方驱动验证和业务系统验证。具体的:
(1)软件包列表验证:执行rpm -qa查看系统软件包列表,如果软件包列表与源系统软件包列表相同,软件包列表验证通过。
(2)第三方驱动验证:执行lsmod | grep xxx查看系统中的驱动,如果存在安装过的第三方驱动,第三方驱动验证通过;否则,第三方驱动验证失败。
(3)业务系统验证:使用业务系统,如果业务系统正常运行,业务系统验证通过;否则,第三方驱动验证失败。
如图6所示,为本发明的自动化测试平台结构示意图,中心控制机与测试服务器之间配置了免密码登录,中心控制机与虚拟机之间也配置了免密码登录。中心控制机中有一个测试配置文件可以用于配置最大测试轮数、本轮测试使用的测试服务器IP、测试服务器上的虚拟机名称、虚拟机初始快照名称和虚拟机IP、自动化测试脚本执行命令等。中心控制机获取迁移工具、自动化测试脚本,并下发到虚拟机中,执行测试。中心控制机可以对服务器上的虚拟机进行初始快照恢复和测试完成后的快照创建。测试完成后,虚拟机主动上传或中心控制机获取测试结果、测试时间、关键文件。设置总的测试结果,生成测试报告。
本申请通过中心控制机进行管理,能够批量对不同的源系统原地迁移到不同的目标系统进行测试,能够对测试失败的组合进行反复测试,排除环境因素的影响。能够实现初始环境的一致性,能够保留测试环境,能够对迁移后的系统、回退的系统进行验证。测试脚本执行过程中能够设置各阶段测试结果,统计重要步骤测试时间,备份关键文件,便于问题的分析。该平台操作灵活,提高了测试的稳定性和效率,降低了人工成本。
显然,所描述的实施例仅仅是本发明的一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。

Claims (7)

1.一种用于麒麟系统迁移工具的自动化测试方法,其特征在于,包括以下步骤:
S1、获取迁移工具和自动化测试脚本;
S2、设置当前测试轮数i=1;
S3、修改测试配置文件,恢复虚拟机初始快照;
S4、下发迁移工具和自动化测试脚本至虚拟机中;
S5、执行自动化测试脚本,判断自动化测试脚本执行结果,若成功,则进行S6,若失败,则进行S7;
S6、虚拟机上传测试结果,测试时间和关键文件,然后进行S8;
S7、获取测试结果,测试时间和关键文件,然后进行S8;
S8、创建虚拟机结果快照,获取总的测试结果,生成测试报告,判断是否需要重新测试,若是,则设置当前测试轮数为i=i+1,返回S3,若否,则结束。
2.基于权利要求1所述的一种用于麒麟系统迁移工具的自动化测试方法,其特征在于,所述S5具体包括:
S51、准备环境,包括:备份日志文件,系统信息检查文件,测试结果文件,安装脚本执行依赖,卸载冲突包,准备迁移的白名单和黑名单,安装第三方驱动;
S52、安装迁移工具,记录安装时间和安装结果,判断是否安装成功,若是,则进行下一步,若否则结束;
S53、迁移初始化,记录迁移初始化时间和迁移初始化结果,判断迁移初始化是否成功,若是,则进行下一步,若否则结束;
S54、迁移评估,记录迁移评估时间和迁移评估结果,判断迁移评估是否成功,若是,则进行下一步,若否,则结束;
S55、评估报告检测,包括版本信息检测,主机名检测,IP检测,新增包列表、删除包列表、替换包列表、保留包列表检测;
S56、实施迁移,记录迁移实施时间和备份时间,记录迁移实施结果和备份结果,判断迁移是否成功,若是,则进行下一步,若否,则结束;
S57、迁移报告检查,包括迁移报告中新增包、删除包、替换包、保留包的情况是否与系统中存在情况一致;
S58、对评估报告和迁移报告中的内容进行对比,检查内容是否一致,包括新增包、删除包、替换包、保留包列表检查;
S59、迁移后配置,记录迁移后配置时间和配置结果,判断迁移后是否配置成功,若是,则进行下一步,若否,则结束;
S510、系统重启,记录重启时间和重启结果;
S511、迁移后系统验证,包括版本信息验证、内核版本验证、UKUI验证、授权包验证、centos/redhat包验证、特定包验证、第三方驱动验证、业务系统验证,记录迁移后系统验证结果;
S512、迁移回退验证,记录迁移后回退时间和迁移回退验证结果,判断迁移回退验证是否成功,若是,则进行下一步,若否,则结束;
S513、系统重启,记录重启结果,备份数据清理,完成后,检测是否存在残留,记录清理备份数据的结果。
3.基于权利要求2所述的一种用于麒麟系统迁移工具的自动化测试方法,其特征在于,所述迁移后系统验证包括,版本信息验证、授权包验证、centos/redhat包验证、内核版本验证、UKUI验证、特定包验证、第三方驱动验证、业务系统验证,具体的:
版本信息验证:获取配置文件中设置的源系统和目标系统设置,查看迁移后系统版本信息,若系统版本信息中包含了从源系统迁移到目标系统的内容,则版本信息验证通过,否则,版本信息验证失败,记录版本信息验证结果;
授权包验证:执行授权检查命令,若授权检查命令执行成功,则授权包验证通过,否则,授权包验证失败,记录授权包验证结果;
centos/redhat包验证:执行rpm -qa centos、rpm -qa redhat命令,若不存在centos或redhat包,centos/redhat包验证验证通过,否则,centos/redhat包验证验证失败,记录centos/redhat包验证结果;
内核版本验证:使用uname-a查看内核版本,若内核版本与配置文件中设置的相同,则内核版本验证验证通过,否则,内核版本验证验证失败,记录内核版本验证结果;
UKUI验证:执行rpm -qa|grep ukui,查看是否包含UKUI相关的包,若包含,则UKUI验证通过,否则,UKUI验证失败,记录UKUI验证结果;
特定包验证:根据配置文件查看特定包,若特定包与配置文件中配置的一致,则特定包验证通过,否则,特定包验证失败,记录特定包验证结果;
第三方驱动验证:执行lsmod|grep xxx查看系统中的驱动,若存在安装过的第三方驱动,则第三方驱动验证通过,否则,第三方驱动验证失败,记录第三方驱动验证结果;
业务系统验证:使用业务系统,若业务系统正常运行,则业务系统验证通过,否则,第三方驱动验证失败,记录业务系统验证结果。
4.基于权利要求2所述的一种用于麒麟系统迁移工具的自动化测试方法,其特征在于,所述S512的迁移回退验证具体包括:
第一次回退,执行回退命令,验证回退是否成功,若成功,则进行系统重启,若否则验证失败;
系统重启,验证重启是否成功,若是,则进行第一次迁移,若否,则验证失败;
第一次迁移,执行迁移实施命令,判断迁移是否成功,若是,则进行第二次回退,若否,则验证失败;
第二次回退,执行回退命令,验证回退是否成功,若是,则进行第二次迁移,若否,则验证失败;
第二次迁移,执行迁移实施命令,等待指定时间后,中断迁移过程,进行第三次回退;
第三次回退,执行回退命令,验证回退是否成功,若是,则进行第三次迁移,若否,则验证失败;
第三次迁移,执行迁移实施命令,验证迁移是否成功,若是,则回退验证通过,若否,则回退验证失败。
5.基于权利要求4所述的一种用于麒麟系统迁移工具的自动化测试方法,其特征在于,验证回退是否成功具体包括:软件包列表验证、第三方驱动验证和业务系统验证;
软件包列表验证:执行rpm -qa查看系统软件包列表,若软件包列表与源系统软件包列表相同,则软件包列表验证通过。
6.基于权利要求1所述的一种用于麒麟系统迁移工具的自动化测试方法,其特征在于,所述步骤S8具体包括:
创建虚拟机结果快照,保存测试环境,基于总的测试结果,判断各阶段测试结果是否均通过,若是,则测试结果为通过,若否,则测试结果为不通过;
根据测试结果生成测试报告,测试报告包含测试配置文件内容、各阶段测试结果、总的测试结果和测试过程中各步骤的执行时间;
判断是否需要重新测试,若测试结果为不通过,且当前测试轮数小于最大测试轮数,则设置当前测试轮数加1,更新测试配置文件,去除测试成功的虚拟机,从新对未成功部分进行测试,直至所有虚拟机测试成功或当前测试轮数等于最大测试轮数,结束测试。
7.一种用于麒麟系统迁移工具的自动化测试平台,其特征在于,适用于权利要求1-6的任一种用于麒麟系统迁移工具的自动化测试方法,具体包括:
中心控制机和多个测试服务器,所述测试服务器上部署了多个虚拟机,所述中心控制机中设置有测试配置文件,所述测试配置文件用于配置最大测试轮数、本轮测试使用的服务器IP、测试服务器上的虚拟机名称、虚拟机初始快照名称和虚拟机IP、自动化测试脚本执行命令;
中心控制机获取迁移工具、自动化测试脚本,并下发到虚拟机中,执行测试,中心控制机对服务器上的虚拟机进行初始快照恢复和测试完成后的快照创建,测试完成后,虚拟机主动上传或中心控制机获取测试结果、测试时间、关键文件,设置总的测试结果,生成测试报告。
CN202310613793.3A 2023-05-29 2023-05-29 一种用于麒麟系统迁移工具的自动化测试方法及平台 Active CN116383090B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202310613793.3A CN116383090B (zh) 2023-05-29 2023-05-29 一种用于麒麟系统迁移工具的自动化测试方法及平台

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202310613793.3A CN116383090B (zh) 2023-05-29 2023-05-29 一种用于麒麟系统迁移工具的自动化测试方法及平台

Publications (2)

Publication Number Publication Date
CN116383090A true CN116383090A (zh) 2023-07-04
CN116383090B CN116383090B (zh) 2023-08-22

Family

ID=86969733

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202310613793.3A Active CN116383090B (zh) 2023-05-29 2023-05-29 一种用于麒麟系统迁移工具的自动化测试方法及平台

Country Status (1)

Country Link
CN (1) CN116383090B (zh)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN117555876A (zh) * 2024-01-11 2024-02-13 麒麟软件有限公司 一种基于虚拟文件系统的操作系统迁移评估方法及装置

Citations (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN105117346A (zh) * 2015-09-24 2015-12-02 上海爱数软件有限公司 虚拟化平台的分布式系统自动化测试方法及系统
US9495269B1 (en) * 2015-12-16 2016-11-15 International Business Machines Corporation Mobility validation by trial boot using snap shot
CN107168880A (zh) * 2017-05-31 2017-09-15 中标软件有限公司 虚拟机测试方法及工具
CN111796903A (zh) * 2019-04-08 2020-10-20 中移(苏州)软件技术有限公司 一种虚拟机的迁移方法、服务器和计算机存储介质
CN113110995A (zh) * 2021-04-19 2021-07-13 中国工商银行股份有限公司 系统迁移的测试方法及装置
CN113886220A (zh) * 2021-09-09 2022-01-04 麒麟软件有限公司 一种基于Linux操作系统的应用升级测试方法及工具
CN116048644A (zh) * 2023-03-30 2023-05-02 中科方德软件有限公司 一种系统迁移方法、装置和可读存储介质
CN116107993A (zh) * 2022-12-26 2023-05-12 北京万里开源软件有限公司 一种MySQL协议数据库中数据迁移评估方法及系统

Patent Citations (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN105117346A (zh) * 2015-09-24 2015-12-02 上海爱数软件有限公司 虚拟化平台的分布式系统自动化测试方法及系统
US9495269B1 (en) * 2015-12-16 2016-11-15 International Business Machines Corporation Mobility validation by trial boot using snap shot
CN107168880A (zh) * 2017-05-31 2017-09-15 中标软件有限公司 虚拟机测试方法及工具
CN111796903A (zh) * 2019-04-08 2020-10-20 中移(苏州)软件技术有限公司 一种虚拟机的迁移方法、服务器和计算机存储介质
CN113110995A (zh) * 2021-04-19 2021-07-13 中国工商银行股份有限公司 系统迁移的测试方法及装置
CN113886220A (zh) * 2021-09-09 2022-01-04 麒麟软件有限公司 一种基于Linux操作系统的应用升级测试方法及工具
CN116107993A (zh) * 2022-12-26 2023-05-12 北京万里开源软件有限公司 一种MySQL协议数据库中数据迁移评估方法及系统
CN116048644A (zh) * 2023-03-30 2023-05-02 中科方德软件有限公司 一种系统迁移方法、装置和可读存储介质

Non-Patent Citations (2)

* Cited by examiner, † Cited by third party
Title
宿睿智: "政务信息系统云迁移及平台的标准化建设研究", 《大众标准化》, pages 4 - 6 *
杨柳;卓必强;汪杨海;胡婷;: "基于云计算环境的业务系统迁移研究与实践", 信息系统工程, no. 04 *

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN117555876A (zh) * 2024-01-11 2024-02-13 麒麟软件有限公司 一种基于虚拟文件系统的操作系统迁移评估方法及装置

Also Published As

Publication number Publication date
CN116383090B (zh) 2023-08-22

Similar Documents

Publication Publication Date Title
US7392148B2 (en) Heterogeneous multipath path network test system
JP5535484B2 (ja) 自動ソフトウェアテストフレームワーク
US6789215B1 (en) System and method for remediating a computer
US7185335B2 (en) Programmatic application installation diagnosis and cleaning
US7734945B1 (en) Automated recovery of unbootable systems
US20090307763A1 (en) Automated Test Management System and Method
US8918780B2 (en) Automatic quality assurance for software installers
US20160132420A1 (en) Backup method, pre-testing method for environment updating and system thereof
CN107577597B (zh) 安装包自动化测试方法、装置、设备和存储介质
CN116383090B (zh) 一种用于麒麟系统迁移工具的自动化测试方法及平台
EP2008400A1 (en) Method, system and computer program for the centralized system management on endpoints of a distributed data processing system
JP2004514208A (ja) コンピュータハードウェア及びソフトウェアのオンライン診断
CN111273932B (zh) 一种部件刷新方法、系统及计算机可读存储介质
US11816499B2 (en) Transition manager system
CN111399862A (zh) Windows缺失驱动的批量安装方法、装置和计算机设备
CN115567392B (zh) 一种客户内部业务系统自动部署升级方法
CN111813683A (zh) 一种通用的软件测试环境自动同步方法
CN112764789A (zh) 一种分布式软件升级方法及节点
US11782800B2 (en) Methods to automatically correct and improve system recovery and replication processes
CN115373885A (zh) 一种故障修复方法、装置、存储介质及电子设备
CN111338678A (zh) 一种存储系统升级校验的方法和设备
US20040064784A1 (en) Document management system, method and computer program
CN112214407A (zh) 数据校验控制、执行方法及其相应的装置、设备、介质
EP3862884A1 (en) Device testing arrangement
CN117472756A (zh) 应用系统测试方法、装置、存储介质及计算机设备

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination
GR01 Patent grant
GR01 Patent grant