636 lines
40 KiB
Plaintext
636 lines
40 KiB
Plaintext
*** Settings ***
|
||
Resource ElementPath.robot
|
||
Resource ../RE0_Common/KeyWord.robot
|
||
|
||
*** Keywords ***
|
||
VM备份_保留一天
|
||
[Arguments] ${esxi_name} ${bk_type} ${bk_name} ${pipelineEncryption} ${pipelineCompress} ${pipelineDedup} # esxi名称|备份类型|介质名称|管道加密|管道压缩|管道重删
|
||
[Documentation] 进行VM备份,根据传入的esxi名称,备份类型,虚拟机名称,以及是否选择管道加密压缩重删创建备份策略并校验备份成功
|
||
...
|
||
... 备份集保留1天
|
||
...
|
||
... 增加备份集页面搜索操作,防止修改时间对备份产生影响
|
||
元素点击 ${CDM_dataProtect} 副本数据保护定位成功 副本数据保护定位失败
|
||
${date} Evaluate time.strftime('%Y%m%d%H%M%S',time.localtime()) time
|
||
${random_strategyName}= Catenate SEPARATOR=_ ${bk_type} ${date}
|
||
Set Suite Variable ${random_strategyName}
|
||
Log 切换为全局变量
|
||
Sleep 5s
|
||
元素点击 Xpath=//span[text()="${esxi_name}"] 主机定位成功 主机定位失败
|
||
策略清理
|
||
元素点击 ${Add_VM_Policy} 添加策略定位成功 添加策略定位失败
|
||
元素输入 ${Input_Vmname} ${bk_name} 输入虚拟机名称完毕
|
||
元素点击 ${Search_Vmname} 定位搜索虚拟机按钮成功 定位搜索虚拟机按钮失败
|
||
元素点击 xpath=//span[text()="${bk_name}"]/../../td[2]/div 定位虚拟机成功 定位虚拟机失败
|
||
元素点击 ${Add_Vmname} 定位添加虚拟机按钮成功 定位添加虚拟机按钮失败
|
||
元素点击 ${Add_Vm_Policy_Nextstep} 定位添加策略下一步成功 定位添加策略下一步失败
|
||
元素点击 ${AddTaskCycle} 添加任务周期定位成功 添加任务周期定位失败
|
||
Run Keyword If "${bk_type}"=="完全" KeyWord_VM.完全备份
|
||
... ELSE IF "${bk_type}"=="增量" KeyWord_VM.增量备份
|
||
元素点击 ${Cycle_Onetime} 一次循环模式定位成功 一次循环模式定位失败
|
||
元素点击 ${Cycle_Confirm} 任务周期确定定位成功 任务周期确定定位失败
|
||
元素点击 ${Cycle_Nextstep} 任务周期下一步定位成功 任务周期下一步定位失败
|
||
Run Keyword If ${pipelineEncryption}==1 KeyWord_VM.管道加密
|
||
Run Keyword If ${pipelineCompress}==1 KeyWord_VM.管道压缩
|
||
Run Keyword If ${pipelineDedup}==1 KeyWord_VM.管道重删
|
||
Sleep 2s
|
||
元素点击 ${VMSave_time} 点击展开备份集保留时间下拉框 定位备份集保留时间下拉框失败
|
||
元素点击 ${VMSave_by_day} 点击选择保留周期为按日保留 定位保留周期为按日保留失败
|
||
元素点击 ${Advance_Nextstep} 定位高级选项下一步成功 定位高级选项下一步失败
|
||
元素输入 ${Vm_PolicyName} ${random_strategyName} 定位虚拟机策略名称失败
|
||
元素点击 ${Complete_policy} 定位虚拟机策略完成按钮成功 定位虚拟机策略完成按钮失败
|
||
元素点击 ${Success_Confirm} 备份策略创建完成定位成功 备份策略创建完成定位失败
|
||
元素点击 ${tab_backupset} 定位备份集选项成功 定位备份集选项失败
|
||
Sleep 60s
|
||
元素输入 ${Find_Policy} ${random_strategyName} 定位策略名称输入框失败
|
||
元素点击 ${Button_Searchbutton} 点击搜索按钮 定位搜索按钮失败
|
||
Sleep 2s
|
||
FOR ${n} IN RANGE 10
|
||
Click Element ${Button_Searchbutton}
|
||
Sleep 10s
|
||
${bk_status} Run Keyword And Return Status Wait Until Element Is Visible Xpath=//div[text()="${random_strategyName}"]/../../td[10]/div[text()="已完成"]
|
||
Run Keyword If "${bk_status}"=="True" Exit For Loop
|
||
... ELSE Log 备份未完成
|
||
Sleep 60s
|
||
END
|
||
Run Keyword If ${bk_status}==False Fail
|
||
... ELSE Log 备份成功
|
||
Sleep 5s
|
||
|
||
VM备份_保留一个
|
||
[Arguments] ${esxi_name} ${bk_type} ${bk_name} ${bk_nameBK} ${pipelineEncryption} ${pipelineCompress} ${pipelineDedup} # esxi名称|备份类型|介质名称|管道加密|管道压缩|管道重删
|
||
元素点击 ${CDM_dataProtect} 副本数据保护定位成功 副本数据保护定位失败
|
||
${date} Evaluate time.strftime('%Y%m%d%H%M%S',time.localtime()) time
|
||
${random_strategyName}= Catenate SEPARATOR=_ ${bk_type} ${date}
|
||
Set Suite Variable ${random_strategyName}
|
||
Log 切换为全局变量
|
||
Sleep 5s
|
||
元素点击 Xpath=//span[text()="${esxi_name}"] 主机定位成功 主机定位失败
|
||
策略清理
|
||
元素点击 ${Add_VM_Policy} 添加策略定位成功 添加策略定位失败
|
||
元素输入 ${Input_Vmname} ${bk_name} 定位虚拟机输入框失败
|
||
元素点击 ${Search_Vmname} 定位搜索虚拟机按钮成功 定位搜索虚拟机按钮失败
|
||
元素点击 xpath=//span[text()="${bk_name}"]/../../td[2]/div 定位虚拟机成功 定位虚拟机失败
|
||
元素点击 xpath=//span[text()="${bk_nameBK}"]/../../td[2]/div 定位虚拟机成功 定位虚拟机失败
|
||
Sleep 5s
|
||
元素点击 ${Add_Vmname} 定位添加虚拟机按钮成功 定位添加虚拟机按钮失败
|
||
元素点击 ${Add_Vm_Policy_Nextstep} 定位添加策略下一步成功 定位添加策略下一步失败
|
||
元素点击 ${AddTaskCycle} 添加任务周期定位成功 添加任务周期定位失败
|
||
Run Keyword If "${bk_type}"=="完全" KeyWord_VM.完全备份
|
||
... ELSE IF "${bk_type}"=="增量" KeyWord_VM.增量备份
|
||
元素点击 ${Cycle_Onetime} 一次循环模式定位成功 一次循环模式定位失败
|
||
元素点击 ${Cycle_Confirm} 任务周期确定定位失败 任务周期确定定位失败
|
||
元素点击 ${Cycle_Nextstep} 任务周期下一步定位成功 任务周期下一步定位失败
|
||
Run Keyword If ${pipelineEncryption}==1 KeyWord_VM.管道加密
|
||
Run Keyword If ${pipelineCompress}==1 KeyWord_VM.管道压缩
|
||
Run Keyword If ${pipelineDedup}==1 KeyWord_VM.管道重删
|
||
Sleep 2s
|
||
元素点击 ${VMSave_time} 点击展开备份集保留时间下拉框 定位备份集保留时间下拉框失败
|
||
元素点击 ${VMSave_by_geshu} 点击选择保留周期为按个数保留 定位保留周期为按个数保留失败
|
||
元素点击 ${Advance_Nextstep} 定位高级选项下一步成功 定位高级选项下一步失败
|
||
元素输入 ${Vm_PolicyName} ${random_strategyName} 定位虚拟机策略名称失败
|
||
元素点击 ${Complete_policy} 定位虚拟机策略完成按钮成功 定位虚拟机策略完成按钮失败
|
||
元素点击 ${Success_Confirm} 备份完成定位成功 备份完成定位失败
|
||
元素点击 ${tab_backupset} 定位备份集选项成功 定位备份集选项失败
|
||
Sleep 60s
|
||
元素输入 ${Find_Policy} ${random_strategyName} 定位策略名称输入框失败
|
||
Sleep 2s
|
||
元素点击 ${Button_Searchbutton} 点击搜索按钮 定位搜索按钮失败
|
||
Sleep 2s
|
||
FOR ${n} IN RANGE 10
|
||
Click Element ${Button_Searchbutton}
|
||
Sleep 10s
|
||
${bk_status} Run Keyword And Return Status Wait Until Element Is Visible Xpath=//div[text()="${bk_name}"]/../../td[10]/div[text()="已完成"]
|
||
Run Keyword If "${bk_status}"=="True" Exit For Loop
|
||
... ELSE Log 备份未完成
|
||
Sleep 60s
|
||
END
|
||
Run Keyword If ${bk_status}==False Fail
|
||
... ELSE Log ${bk_name}备份成功
|
||
Sleep 5s
|
||
FOR ${n} IN RANGE 10
|
||
Click Element ${Button_Searchbutton}
|
||
Sleep 10s
|
||
${bk_statusBK} Run Keyword And Return Status Wait Until Element Is Visible Xpath=//div[text()="${bk_nameBK}"]/../../td[10]/div[text()="已完成"]
|
||
Run Keyword If "${bk_statusBK}"=="True" Exit For Loop
|
||
... ELSE Log 备份未完成
|
||
Sleep 60s
|
||
END
|
||
Run Keyword If ${bk_statusBK}==False Fail
|
||
... ELSE Log ${bk_nameBK}备份成功
|
||
|
||
VM恢复
|
||
Sleep 10s
|
||
循环点击 xpath=//div[text()="${random_strategyName}"]/../../../tr[@data-index="0"]//a[text()="恢复"] ${Recover_Vmname}
|
||
Clear Element Text ${Recover_Vmname}
|
||
${date} Evaluate time.strftime('%Y%m%d%H%M%S',time.localtime()) time
|
||
${recover_name}= Catenate SEPARATOR=_ AutoRecover ${date}
|
||
元素输入 ${Recover_Vmname} ${recover_name} 恢复后的虚拟机名称输入失败
|
||
Log 输入恢复后的虚拟机名称
|
||
Sleep 5s
|
||
元素点击 ${Choose_Storage} 点击存储下拉框 定位恢复存储未完成
|
||
元素点击 ${Datastore} 选择存储介质完毕 定位存储介质失败
|
||
元素点击 ${Complete_Recover_Policy} 点击策略恢复确定按钮 定位完成vm恢复策略按钮失败
|
||
元素点击 ${confirm_restore} 确认执行恢复 定位确认恢复按钮失败
|
||
元素点击 ${Success_Confirm} 点击“确定”按钮 定位“确定”失败
|
||
元素点击 ${Tab_Work} 切换到作业一栏 定位作业一栏失败
|
||
Sleep 30s
|
||
元素点击 ${PolicySearch} 点击查询按钮成功 定位查询按钮失败
|
||
FOR ${n} IN RANGE 10
|
||
Click Element ${PolicySearch}
|
||
${work_status} Run Keyword And Return Status Wait Until Element Is Visible xpath=//div[contains(text(),"${recover_name}")]/../../td[6]/div[text()="成功"]
|
||
Run Keyword If ${work_status}==False Log 恢复未完成
|
||
... ELSE Exit For Loop
|
||
Sleep 60s
|
||
END
|
||
Run Keyword If ${work_status}==False Fail
|
||
... ELSE Log 恢复成功
|
||
元素点击 ${Tab_Policy} 切换到策略一栏 定位策略失败
|
||
FOR ${n} IN RANGE 3
|
||
${policy_status} Run Keyword And Return Status Wait Until Element Is Visible ${VMPolicyDelete}
|
||
Run Keyword If ${policy_status}==True 策略删除
|
||
... ELSE Exit For Loop
|
||
END
|
||
Log 环境清理完毕
|
||
|
||
VM恢复_文件
|
||
[Arguments] ${esxi_name} # esxi名称
|
||
循环点击 Xpath=//div[text()="${random_strategyName}"]/../..//a[text()="更多"] ${Vm_Recover_File}
|
||
元素点击 ${Vm_Recover_File} 点击恢复文件 定位“恢复文件”失败
|
||
元素点击 ${Vm_Recover_File_NextStep} 点击恢复文件下一步 定位“下一步”按钮失败
|
||
元素点击 ${Vm_Recover_File_Complete} 点击完成按钮完成虚拟机文件恢复策略 定位“完成”按钮失败
|
||
元素点击 ${Success_Confirm} 确定虚拟机文件恢复策略创建成功 定位“确定”按钮失败
|
||
Comment 元素输入 ${Host_Search} ${CDM_IP} 定位代理名称输入框失败
|
||
元素点击 ${BC_Agent} 选择黑方集成代理 定位黑方集成代理失败
|
||
Sleep 5s
|
||
元素点击 ${Common_Tab_Work} 切换到作业一栏 定位作业一览失败
|
||
FOR ${n} IN RANGE 5
|
||
${work_status} Run Keyword And Return Status Wait Until Element Is Visible ${Quick_Mount_Complete}
|
||
Run Keyword If ${work_status}==False Log 快速挂载未完成
|
||
... ELSE Exit For Loop
|
||
Sleep 60s
|
||
END
|
||
Run Keyword If ${work_status}==False Fail
|
||
... ELSE Log 挂载成功
|
||
元素点击 ${Stop_Mount} 点击停止挂载 定位停止挂载失败
|
||
元素点击 ${Stop_Work_Confirm} 确认停止挂载作业 定位确认停止弹窗失败
|
||
元素点击 ${Success_Confirm} 作业停止成功 作业停止失败
|
||
sleep 10s
|
||
元素点击 Xpath=//span[text()="${esxi_name}"] 切换回esxi 定位esxi失败
|
||
元素点击 ${Tab_Policy} 点击切换到策略栏 定位策略失败
|
||
FOR ${n} IN RANGE 3
|
||
${policy_status} Run Keyword And Return Status Wait Until Element Is Visible ${Policy_Delete}
|
||
Run Keyword If ${policy_status}==True 策略删除
|
||
... ELSE Exit For Loop
|
||
END
|
||
Log 环境清理完毕
|
||
|
||
完全备份
|
||
Sleep 2s
|
||
元素点击 ${Full_Backup} 勾选完全备份 勾选完全备份失败
|
||
|
||
增量备份
|
||
Sleep 2s
|
||
元素点击 ${Incremental_Backup} 勾选增量备份 勾选增量备份失败
|
||
|
||
管道加密
|
||
元素点击 ${Pipeline_Encryption} 勾选管道加密 勾选管道加密失败
|
||
Sleep 2s
|
||
|
||
管道压缩
|
||
元素点击 ${Pipeline_Compress} 勾选管道压缩 勾选管道压缩失败
|
||
Sleep 2s
|
||
|
||
管道重删
|
||
元素点击 ${Pipeline_Dedup} 勾选管道重删 勾选管道重删失败
|
||
|
||
策略删除
|
||
元素点击 ${Tab_Policy} 切换到策略一栏 定位策略失败
|
||
Sleep 2s
|
||
循环点击 ${VMPolicyDelete} ${Confirm_Delete2}
|
||
Sleep 2s
|
||
元素点击 ${Confirm_Delete2} 确认删除 确认删除定位失败
|
||
Sleep 2s
|
||
元素点击 ${Success_Confirm} 完成策略删除 定位删除成功按钮失败
|
||
Sleep 2s
|
||
|
||
立即执行
|
||
[Arguments] ${bk_type} ${bk_name} # 备份类型 #备份源名称
|
||
元素点击 ${Tab_Policy} 切换到策略一栏 定位策略失败
|
||
Sleep 2s
|
||
循环点击 xpath=//div[@id="policytable_VM"]/..//div[text()="${random_strategyName}"]/../..//a[text()="立即执行"] ${Select_Bk_Type}
|
||
Log 点击立即执行
|
||
元素点击 ${Select_Bk_Type} 点击下拉备份选项 定位备份类型选项失败
|
||
Run Keyword If "${bk_type}"=="完全" Click Element ${Option_Fullbk}
|
||
... ELSE IF "${bk_type}"=="增量" Click Element ${Option_VMIncrebk}
|
||
Log 选择备份类型完毕
|
||
Sleep 3s
|
||
元素点击 ${VM_CDM_RESExpand} 点击展开虚拟机列表 定位展开虚拟机失败
|
||
元素点击 xpath=//span[text()="${bk_name}"]/../../td[2]/div 点击备份虚拟机 定位备份目标失败
|
||
元素点击 ${Confirm_Exec} 点击立即执行—确定按钮 定位确认按钮失败
|
||
Sleep 5s
|
||
元素点击 ${Success_Confirm} 点击确定 确认执行失败
|
||
Sleep 3s
|
||
元素点击 ${tab_backupset} 切换到备份集栏 定位备份集选项失败
|
||
Sleep 60s
|
||
元素输入 ${Input_Policy_Name} ${random_strategyName} 定位策略名称输入框失败
|
||
Log 输入策略名进行搜索
|
||
Sleep 2s
|
||
FOR ${n} IN RANGE 10
|
||
Click Element ${Button_Searchbk}
|
||
${bk_status} Run Keyword And Return Status Wait Until Element Is Visible Xpath=//div[text()="${random_strategyName}"]/../../../tr[1]/td[5]/div[text()="VMware增量备份"]/../../td/div[text()="已完成"]
|
||
Run Keyword If "${bk_status}"=="True" Exit For Loop
|
||
... ELSE Log 备份未完成
|
||
Sleep 60s
|
||
END
|
||
Log 备份完成
|
||
Sleep 2s
|
||
|
||
备份集清理
|
||
[Documentation] ${random_strategyName}
|
||
元素点击 xpath=//div[text()="${random_strategyName}"]/../..//div[text()="VMware完全备份"]/../..//a[text()="更多"] 点击更多展开备份集操作 定位备份集更多失败
|
||
元素点击 ${Bk_More_Delete} 点击删除备份集 定位备份集删除失败
|
||
Comment 元素点击 ${Total_Del_BK} 点击删除完全备份集 定位完全备份删除失败
|
||
循环点击 ${Confim_Delete_Bk} ${Success_Confirm}
|
||
元素点击 ${Success_Confirm} 删除成功 定位删除成功失败
|
||
|
||
添加VMware平台
|
||
[Arguments] ${nick_name} ${esxi_name} ${esxi_password} ${esxi_ip} ${mds_type}
|
||
元素点击 ${CDM_dataProtect} 进入副本数据保护栏 定位副本数据保护失败
|
||
元素点击 ${Virtual_Manage} 点击主机管理按钮 定位主机管理按钮失败
|
||
元素点击 ${Add_New_VM} 点击添加VM3.0 定位添加VM平台失败
|
||
元素输入 ${Add_ESXI_Name} ${nick_name} 定位备注主机名输入框失败
|
||
元素输入 ${Add_ESXI_User} ${esxi_name} 定位用户名输入框失败
|
||
元素输入 ${Add_ESXI_PWD} ${esxi_password} 定位密码输入框失败
|
||
元素输入 ${Add_ESXI_IP} ${esxi_ip} 定位IP输入框失败
|
||
元素点击 ${ESXI_Info_Nextstep} 填写信息完毕,点击下一步 定位下一步失败
|
||
Sleep 10s
|
||
元素点击 ${Exec_Point} 勾选执行节点 定位执行节点勾选框失败
|
||
元素点击 ${Exec_Point_Nextstep} 选择完毕执行节点,点击下一步 定位下一步失败
|
||
元素点击 ${Add_BC} 点击添加黑方 定位添加按钮失败
|
||
元素点击 ${Select_BC_MDS} 点击存储介质选择 定位存储介质选择框失败
|
||
元素点击 xpath=//option[contains(text(),"${mds_type}")] 选择存储介质 定位存储介质失败
|
||
元素点击 ${Confirm_Add_BC} 确认完毕备份黑方,点击确定 定位确定按钮失败
|
||
元素点击 ${Add_BC_Nextstep} 添加黑方完毕,点击下一步 定位下一步失败
|
||
Sleep 15s
|
||
元素点击 ${Add_ESXI_Finish} 点击完成 定位完成按钮失败
|
||
元素点击 ${Success_Confirm} 点击添加成功确定按钮 定位确定按钮失败
|
||
Wait Until Element Is Visible xpath=//span[text()="${nick_name}"] 30s 添加VM平台失败
|
||
|
||
重启MDS服务
|
||
[Arguments] ${BC_IP} ${BC_ROOT} ${BC_PWD}
|
||
Open Connection ${BC_IP}
|
||
SSHLibrary.Login ${BC_ROOT} ${BC_PWD}
|
||
Log 登录黑方后台成功
|
||
Execute Command /unary/unabackup/bin/stop_mds.sh;/unary/unabackup/bin/start_mds.sh>/mds_status.txt
|
||
Log 重启MDS服务
|
||
Sleep 40s
|
||
${mds_status} Execute Command grep "start mds success" /mds_status.txt
|
||
${mds_status_length} Get Length ${mds_status}
|
||
Run Keyword If ${mds_status_length}>0 Log MDS服务开启
|
||
... ELSE Fail MDS服务未启动
|
||
Close Connection
|
||
Sleep 100s
|
||
|
||
VM快速挂载
|
||
Comment 元素点击 xpath=//div[text()="${random_strategyName}"]/../..//a[@lay-event="quickMount_VM"] 点击快速挂载按钮 定位快速挂载按钮失败
|
||
元素点击 xpath=//a[@class="transparent" and text()="快速挂载"] 点击快速挂载按钮 定位快速挂载按钮失败
|
||
Clear Element Text ${Recover_Vmname}
|
||
${date} Evaluate time.strftime('%Y%m%d%H%M%S',time.localtime()) time
|
||
${mount_name}= Catenate SEPARATOR=_ AutoRecover ${date}
|
||
元素输入 ${Recover_Vmname} ${mount_name} 挂载后虚拟机名称输入失败
|
||
Log 输入挂载后的虚拟机名称
|
||
元素点击 ${Choose_Storage} 点击展开存储选项 定位存储下拉框失败
|
||
元素点击 ${Datastore} 点击选择存储 定位存储失败
|
||
元素点击 ${Confirm_Quick_Mount} 点击完成快速挂载策略创建 定位确定按钮失败
|
||
元素点击 ${Success_Confirm} 点击确认添加成功 定位添加成功弹窗失败
|
||
元素点击 ${Tab_Work} 切换到作业一栏 定位作业一览失败
|
||
FOR ${n} IN RANGE 5
|
||
Click Element ${Button_Searchwork}
|
||
元素点击 ${VMCDM_Refresh} 点击刷新作业列表 定位刷新按钮失败
|
||
${work_status} Run Keyword And Return Status Wait Until Element Is Visible xpath=//div[contains(text(),"${mount_name}")]/../..//div[contains(text(),"成功")]
|
||
Run Keyword If ${work_status}==False Log 快速挂载未完成
|
||
... ELSE Exit For Loop
|
||
Sleep 60s
|
||
END
|
||
Run Keyword If ${work_status}==False Fail
|
||
... ELSE Log 挂载成功
|
||
元素点击 ${VMCDM_application} 切换到副本应用页面 定位副本应用失败
|
||
Sleep 5s
|
||
元素点击 ${VMCDM_Unload} 点击卸载 定位卸载按钮失败
|
||
Sleep 5s
|
||
元素点击 ${VMCDM_UnloadConfirm} 点击确定卸载 定位确定卸载失败
|
||
Sleep 10s
|
||
元素点击 ${Success_Confirm} 确定卸载成功 定位卸载成功确定按钮失败
|
||
Sleep 5s
|
||
元素点击 ${Tab_Policy} 切换到策略功能栏 定位策略失败
|
||
FOR ${n} IN RANGE 3
|
||
${policy_status} Run Keyword And Return Status Wait Until Element Is Visible ${Policy_Delete}
|
||
Run Keyword If ${policy_status}==True 策略删除
|
||
... ELSE Exit For Loop
|
||
END
|
||
Log 环境清理完毕
|
||
|
||
策略清理
|
||
元素点击 ${Tab_Policy} 切换到策略一栏 定位策略失败
|
||
Sleep 2s
|
||
FOR ${n} IN RANGE 3
|
||
${policy_status} Run Keyword And Return Status Wait Until Element Is Visible ${Policy_Delete_VM}
|
||
Run Keyword If ${policy_status}==True 策略删除
|
||
... ELSE Exit For Loop
|
||
END
|
||
Log 环境清理完毕
|
||
|
||
虚拟化主机定位
|
||
[Arguments] ${esxi_name} # 虚拟化主机名称
|
||
元素点击 ${CDM_dataProtect} 选择副本数据保护 副本数据保护定位失败
|
||
Sleep 5s
|
||
元素点击 Xpath=//span[text()="${esxi_name}"] 选择ESXI 主机定位失败
|
||
|
||
VM备份集清理校验
|
||
[Arguments] ${esxi_name} ${result} # 虚拟化主机名称|清理结果(yes表示清理,no表示未清理)
|
||
元素点击 ${CDM_dataProtect} 点击进入副本数据保护页面 定位副本数据保护失败
|
||
Sleep 2s
|
||
元素点击 xpath=//span[text()="${esxi_name}"] 点击选择虚拟化主机 定位虚拟化主机所在位置失败
|
||
Mouse Out xpath=//span[text()="${esxi_name}"]
|
||
Sleep 180s
|
||
元素点击 ${tab_backupset} 进入备份集一栏 定位备份集栏失败
|
||
元素输入 ${Find_Policy} ${random_strategyName} 定位策略名称输入框失败
|
||
元素点击 ${Button_Searchbutton} 点击搜索按钮 定位搜索按钮失败
|
||
Sleep 2s
|
||
${result_now} Run Keyword And Return Status Wait Until Element Is Visible //div[text()="${random_strategyName}"]/../../td[5]/div[text()="VMware完全备份"] 30s 定位校验作业失败
|
||
Log 获取当前备份集状态
|
||
Run Keyword If ${result}==1 Log 需要清理备份集
|
||
... ELSE IF ${result}==0 Log 不需要清理备份集
|
||
Run Keyword If '${result_now}'=='False' Log 备份集不存在了
|
||
... ELSE IF '${result_now}'=='True' Log 备份集还存在
|
||
Run Keyword If ${result}==1 and '${result_now}'=='False' Log 备份集清理成功
|
||
... ELSE IF ${result}==0 and '${result_now}'=='True' Log 备份集未被清理
|
||
... ELSE Fail 备份集状态错误
|
||
Log 判断备份集存在状态完毕
|
||
Sleep 60s
|
||
|
||
立即执行_备份集按个数保留
|
||
[Arguments] ${bk_type} ${bk_name} ${bk_nameBK} # 备份类型|备份虚拟机名称|备份虚拟机名称2
|
||
元素点击 ${Tab_Policy} 定位策略成功 定位策略失败
|
||
循环点击 xpath=//div[@id="policytable_VM"]/..//div[text()="${random_strategyName}"]/../..//a[text()="立即执行"] ${Select_Bk_Type}
|
||
Log 点击立即执行
|
||
Sleep 2s
|
||
元素点击 ${Select_Bk_Type} 定位备份类型选项成功 定位备份类型选项失败
|
||
Sleep 2s
|
||
Run Keyword If "${bk_type}"=="完全" Click Element ${Option_Fullbk}
|
||
... ELSE IF "${bk_type}"=="增量" Click Element ${Option_VMIncrebk}
|
||
Log 选择备份类型完毕
|
||
Sleep 2s
|
||
元素点击 ${Expand_VM_Tree} 点击展开虚拟机树 定位展开虚拟机树+号失败
|
||
元素点击 xpath=//h4[text()="立即执行策略"]/../..//span[contains(text(),"${bk_nameBK}")]/../..//td[2] 点击勾选要立即执行的虚拟机BK 定位要立即执行的虚拟机失败
|
||
元素点击 xpath=//h4[text()="立即执行策略"]/../..//span[contains(text(),"${bk_name}")]/../..//td[2] 点击勾选要立即执行的虚拟机 定位要立即执行的虚拟机失败
|
||
元素点击 ${Confirm_Exec} 定位确认按钮成功 定位确认按钮失败
|
||
元素点击 ${Success_Confirm} 确认执行成功 确认执行失败
|
||
Sleep 2s
|
||
元素点击 ${tab_backupset} 定位备份集选项成功 定位备份集选项失败
|
||
Sleep 60s
|
||
元素输入 ${Find_Policy} ${random_strategyName} 定位策略名称输入框失败
|
||
Sleep 2s
|
||
元素点击 ${Button_Searchbutton} 点击搜索按钮 定位搜索按钮失败
|
||
FOR ${n} IN RANGE 10
|
||
Click Element ${Button_Searchbutton}
|
||
${bk_status} Run Keyword And Return Status Wait Until Element Is Visible Xpath=//div[text()="${bk_name}"]/../../../tr[1]/td[5]/div[text()="VMware增量备份"]/../../td/div[text()="已完成"]
|
||
Run Keyword If "${bk_status}"=="True" Exit For Loop
|
||
... ELSE Log 备份未完成
|
||
Sleep 60s
|
||
END
|
||
Log 备份完成
|
||
Sleep 2s
|
||
FOR ${n} IN RANGE 10
|
||
Click Element ${Button_Searchbutton}
|
||
${bk_status} Run Keyword And Return Status Wait Until Element Is Visible Xpath=//div[text()="${bk_nameBK}"]/../../../tr[1]/td[5]/div[text()="VMware增量备份"]/../../td/div[text()="已完成"]
|
||
Run Keyword If "${bk_status}"=="True" Exit For Loop
|
||
... ELSE Log 备份未完成
|
||
Sleep 60s
|
||
END
|
||
Log 备份完成
|
||
Sleep 2s
|
||
|
||
立即执行_备份集按天保留
|
||
[Arguments] ${bk_type} ${bk_name} # 备份类型|备份虚拟机名称
|
||
[Documentation] 立即执行VM备份策略,并更加策略名称在备份集页面搜索,判断备份成功,增加搜索防止修改时间对备份任务造成影响
|
||
元素点击 ${Tab_Policy} 定位策略成功 定位策略失败
|
||
循环点击 xpath=//div[@id="policytable_VM"]/..//div[text()="${random_strategyName}"]/../..//a[text()="立即执行"] ${Select_Bk_Type}
|
||
Log 点击立即执行
|
||
Sleep 2s
|
||
元素点击 ${Select_Bk_Type} 定位备份类型选项成功 定位备份类型选项失败
|
||
Run Keyword If "${bk_type}"=="完全" Click Element ${Option_Fullbk}
|
||
... ELSE IF "${bk_type}"=="增量" Click Element ${Option_VMIncrebk}
|
||
Log 选择备份类型完毕
|
||
Sleep 2s
|
||
元素点击 ${Expand_VM_Tree} 点击展开虚拟机树 定位展开虚拟机树+号失败
|
||
元素点击 xpath=//h4[text()="立即执行策略"]/../..//span[contains(text(),"${bk_name}")]/../..//td[2] 点击勾选要立即执行的虚拟机 定位要立即执行的虚拟机失败
|
||
元素点击 ${Confirm_Exec} 定位确认按钮成功 定位确认按钮失败
|
||
元素点击 ${Success_Confirm} 确认执行成功 确认执行定位失败
|
||
元素点击 ${tab_backupset} 定位备份集选项成功 定位备份集选项失败
|
||
Sleep 60s
|
||
元素输入 ${Find_Policy} ${random_strategyName} 定位策略名称输入框失败
|
||
元素点击 ${Button_Searchbutton} 点击搜索按钮 定位搜索按钮失败
|
||
FOR ${n} IN RANGE 10
|
||
Click Element ${Button_Searchbutton}
|
||
${bk_status} Run Keyword And Return Status Wait Until Element Is Visible Xpath=//div[text()="${bk_name}"]/../../../tr[1]/td[5]/div[text()="VMware增量备份"]/../../td/div[text()="已完成"]
|
||
Run Keyword If "${bk_status}"=="True" Exit For Loop
|
||
... ELSE Log 备份未完成
|
||
Sleep 60s
|
||
END
|
||
Log 备份完成
|
||
Sleep 2s
|
||
元素点击 ${Tab_Policy} 定位策略栏成功 定位策略栏失败
|
||
|
||
定位VM备份集页面
|
||
元素点击 ${tab_backupset} 点击VM备份集页面成功 定位VMware备份集页面失败
|
||
|
||
恢复VM
|
||
[Documentation] 在备份集页面根据策略名称搜索并恢复备份集
|
||
...
|
||
... 在作业页面搜索恢复虚拟机名称,判断恢复成功(增加搜索操作防止修改时间对恢复作业产生影响)
|
||
元素点击 ${tab_backupset} 点击VM备份集页面成功 定位VMware备份集页面失败
|
||
Sleep 5s
|
||
元素输入 ${Find_Policy} ${random_strategyName} 定位策略名称输入框失败
|
||
元素点击 ${Button_Searchbutton} 点击搜索按钮 定位搜索按钮失败
|
||
Sleep 5s
|
||
循环点击 Xpath=//div[text()="${random_strategyName}"]/../../../tr[@data-index="0"]//a[text()="恢复"] ${Recover_Vmname}
|
||
Clear Element Text ${Recover_Vmname}
|
||
${date} Evaluate time.strftime('%Y%m%d%H%M%S',time.localtime()) time
|
||
${recover_name}= Catenate SEPARATOR=_ AutoRecover ${date}
|
||
Input Text ${Recover_Vmname} ${recover_name}
|
||
Log 输入恢复后的虚拟机名称
|
||
Sleep 5s
|
||
元素点击 ${Choose_Storage} 定位恢复存储成功 定位恢复存储未完成
|
||
Sleep 5s
|
||
元素点击 ${Datastore} 定位存储介质成功 定位存储介质失败
|
||
Sleep 5s
|
||
元素点击 ${Complete_Recover_Policy} 定位完成vm恢复策略按钮成功 定位完成vm恢复策略按钮失败
|
||
循环点击 ${confirm_restore} ${Success_Confirm}
|
||
元素点击 ${Success_Confirm} 定位“确定”成功 定位“确定”失败
|
||
元素点击 ${Policy_show} 定位作业一栏成功 定位作业一栏失败
|
||
Sleep 30s
|
||
元素输入 ${RecoverPolicyname} ${recover_name} 定位策略名输入框失败
|
||
元素点击 ${PolicySearch} 点击查询按钮成功 定位查询按钮失败
|
||
FOR ${n} IN RANGE 10
|
||
Click Element ${PolicySearch}
|
||
${work_status} Run Keyword And Return Status Wait Until Element Is Visible xpath=//div[contains(text(),"${recover_name}")]/../../td[6]/div[text()="成功"]
|
||
Run Keyword If ${work_status}==False Log 恢复未完成
|
||
... ELSE Exit For Loop
|
||
Sleep 60s
|
||
END
|
||
Run Keyword If ${work_status}==False Fail
|
||
... ELSE Log 恢复成功
|
||
元素点击 ${Tab_Policy} 定位策略栏成功 定位策略失败
|
||
Sleep 2s
|
||
FOR ${n} IN RANGE 3
|
||
${policy_status} Run Keyword And Return Status Wait Until Element Is Visible ${VMPolicyDelete}
|
||
Run Keyword If ${policy_status}==True 策略删除
|
||
... ELSE Exit For Loop
|
||
END
|
||
Log 环境清理完毕
|
||
|
||
VM恢复文件_清理校验后
|
||
[Arguments] ${esxi_name} ${BC_Agent} #虚拟化主机名称|挂载代理
|
||
[Documentation] VM备份集恢复文件操作
|
||
...
|
||
... 新增备份集页面根据策略名称搜索操作,防止修改时间对恢复操作造成影响
|
||
...
|
||
... 清理校验后是指在执行TC07_Bk_CheckClean后经过修改时间,使用此关键字不受修改时间的影响
|
||
元素点击 ${tab_backupset} 点击VM备份集页面成功 定位VMware备份集页面失败
|
||
元素输入 ${Find_Policy} ${random_strategyName} 定位策略名称输入框失败
|
||
元素点击 ${Button_Searchbutton} 点击搜索按钮 定位搜索按钮失败
|
||
Sleep 2s
|
||
循环点击 Xpath=//div[text()="${random_strategyName}"]/../..//a[text()="更多"] ${Vm_Recover_File}
|
||
元素点击 ${Vm_Recover_File} 点击恢复文件 定位“恢复文件”失败
|
||
元素点击 ${Vm_Recover_File_NextStep} 点击恢复文件下一步 定位“下一步”按钮失败
|
||
元素点击 ${Vm_Recover_File_Complete} 点击完成按钮完成虚拟机文件恢复策略 定位“完成”按钮失败
|
||
元素点击 ${Success_Confirm} 确定虚拟机文件恢复策略创建成功 定位“确定”按钮失败
|
||
元素点击 xpath=//span[text()="${BC_Agent}"] 选择黑方集成代理 定位黑方集成代理失败
|
||
Sleep 5s
|
||
元素点击 ${Common_Tab_Work} 切换到作业一栏 定位作业一览失败
|
||
FOR ${n} IN RANGE 5
|
||
${work_status} Run Keyword And Return Status Wait Until Element Is Visible ${Quick_Mount_Complete}
|
||
Run Keyword If ${work_status}==False Log 快速挂载未完成
|
||
... ELSE Exit For Loop
|
||
Sleep 60s
|
||
END
|
||
Run Keyword If ${work_status}==False Fail
|
||
... ELSE Log 挂载成功
|
||
元素点击 ${Stop_Mount} 点击停止挂载 定位停止挂载失败
|
||
元素点击 ${Stop_Work_Confirm} 确认停止挂载作业 定位确认停止弹窗失败
|
||
元素点击 ${Success_Confirm} 作业停止成功 作业停止失败
|
||
元素点击 Xpath=//span[text()="${esxi_name}"] 切换回esxi 定位esxi失败
|
||
元素点击 ${Tab_Policy} 点击切换到策略栏 定位策略失败
|
||
FOR ${n} IN RANGE 3
|
||
${policy_status} Run Keyword And Return Status Wait Until Element Is Visible ${Policy_Delete}
|
||
Run Keyword If ${policy_status}==True 策略删除
|
||
... ELSE Exit For Loop
|
||
END
|
||
Log 环境清理完毕
|
||
|
||
VM快速挂载_清理校验后
|
||
[Documentation] VM备份集快速挂载操作
|
||
...
|
||
... 新增在备份集页面根据策略名称搜索操作,防止修改时间对快速挂载操作造成影响
|
||
...
|
||
... 清理校验后是指在执行TC07_Bk_CheckClean后经过修改时间,使用此关键字不受修改时间的影响
|
||
元素点击 ${tab_backupset} 点击VM备份集页面成功 定位VMware备份集页面失败
|
||
元素输入 ${Find_Policy} ${random_strategyName} 定位策略名称输入框失败
|
||
元素点击 ${Button_Searchbutton} 点击搜索按钮 定位搜索按钮失败
|
||
Sleep 2s
|
||
元素点击 xpath=//div[text()="${random_strategyName}"]/../..//a[@lay-event="quickMount_VM"] 点击快速挂载按钮 定位快速挂载按钮失败
|
||
Clear Element Text ${Recover_Vmname}
|
||
${date} Evaluate time.strftime('%Y%m%d%H%M%S',time.localtime()) time
|
||
${mount_name}= Catenate SEPARATOR=_ AutoRecover ${date}
|
||
Input Text ${Recover_Vmname} ${mount_name}
|
||
Log 输入挂载后的虚拟机名称
|
||
元素点击 ${Choose_Storage} 点击展开存储选项 定位存储下拉框失败
|
||
元素点击 ${Datastore} 点击选择存储 定位存储失败
|
||
元素点击 ${Confirm_Quick_Mount} 点击完成快速挂载策略创建 定位确定按钮失败
|
||
元素点击 ${Success_Confirm} 点击确认添加成功 定位添加成功弹窗失败
|
||
元素点击 ${Tab_Work} 切换到作业一栏 定位作业一览失败
|
||
FOR ${n} IN RANGE 5
|
||
Click Element ${Button_Searchwork}
|
||
${work_status} Run Keyword And Return Status Wait Until Element Is Visible xpath=//div[contains(text(),"${mount_name}")]/../..//div[text()="成功"]
|
||
Run Keyword If ${work_status}==False Log 快速挂载未完成
|
||
... ELSE Exit For Loop
|
||
Sleep 60s
|
||
END
|
||
Run Keyword If ${work_status}==False Fail 快速挂载失败
|
||
... ELSE Log 挂载成功
|
||
元素点击 ${Tab_Policy} 切换到策略功能栏 定位策略失败
|
||
FOR ${n} IN RANGE 3
|
||
${policy_status} Run Keyword And Return Status Wait Until Element Is Visible ${Policy_Delete}
|
||
Run Keyword If ${policy_status}==True 策略删除
|
||
... ELSE Exit For Loop
|
||
END
|
||
Log 环境清理完毕
|
||
|
||
备份集清理_清理校验后
|
||
[Documentation] 清理备份链中的VM完全备份集
|
||
...
|
||
... 清理校验后是指在执行TC07_Bk_CheckClean后经过修改时间,使用此关键字不受修改时间的影响
|
||
元素点击 ${tab_backupset} 点击VM备份集页面成功 定位VMware备份集页面失败
|
||
元素输入 ${Find_Policy} ${random_strategyName} 定位策略名称输入框失败
|
||
元素点击 ${Button_Searchbutton} 点击搜索按钮 定位搜索按钮失败
|
||
Sleep 2s
|
||
元素点击 xpath=//div[text()="${random_strategyName}"]/../..//div[text()="VMware完全备份"]/../..//a[text()="更多"] 点击更多展开备份集操作 定位备份集更多失败
|
||
元素点击 ${Bk_More_Delete} 点击删除备份集 定位备份集删除失败
|
||
元素点击 ${Confim_Delete_Bk} 点击确认删除备份集 定位确定删除备份集失败
|
||
元素点击 ${Success_Confirm} 删除成功 定位删除成功失败
|
||
|
||
VM备份
|
||
[Arguments] ${esxi_name} ${bk_type} ${bk_name} ${pipelineEncryption} ${pipelineCompress} ${pipelineDedup} # esxi名称|备份类型|介质名称|管道加密|管道压缩|管道重删
|
||
元素点击 ${CDM_dataProtect} 选择副本数据保护 定位副本数据保护栏失败
|
||
${date} Evaluate time.strftime('%Y%m%d%H%M%S',time.localtime()) time
|
||
${random_strategyName}= Catenate SEPARATOR=_ ${bk_type} ${date}
|
||
Set Suite Variable ${random_strategyName}
|
||
Log 切换为全局变量
|
||
Sleep 5s
|
||
元素点击 Xpath=//span[text()="${esxi_name}"] 点击定位esxi 定位esxi失败
|
||
策略清理
|
||
元素点击 ${Add_VM_Policy} 点击添加策略按钮 添加策略定位失败
|
||
元素输入 ${Input_Vmname} ${bk_name} 定位虚拟机输入框失败
|
||
Log 输入虚拟机名称完毕
|
||
元素点击 ${Search_Vmname} 点击搜索虚拟机按钮 定位搜索虚拟机按钮失败
|
||
元素点击 xpath=//span[text()="${bk_name}"]/../../td[2]/div 勾选备份虚拟机 定位虚拟机失败
|
||
元素点击 ${Add_Vmname} 添加虚拟机完毕 定位添加虚拟机按钮失败
|
||
元素点击 ${Add_Vm_Policy_Nextstep} 进入任务周期 定位添加策略下一步失败
|
||
元素点击 ${AddTaskCycle} 添加任务周期成功 添加任务周期定位失败
|
||
Run Keyword If "${bk_type}"=="完全" KeyWord_VM.完全备份
|
||
... ELSE IF "${bk_type}"=="增量" 增量备份
|
||
元素点击 ${Cycle_Onetime} 添加仅一次立即备份 一次循环模式定位失败
|
||
元素点击 ${Cycle_Confirm} 添加任务周期 任务周期确定定位失败
|
||
元素点击 ${Cycle_Nextstep} 点击下一步 任务周期下一步定位失败
|
||
Log 进入高级选项
|
||
Run Keyword If ${pipelineEncryption}==1 管道加密
|
||
Run Keyword If ${pipelineCompress}==1 管道压缩
|
||
Run Keyword If ${pipelineDedup}==1 管道重删
|
||
Sleep 2s
|
||
元素点击 ${Advance_Nextstep} 点击下一步 定位高级选项下一步失败
|
||
Log 进入概览
|
||
Sleep 2s
|
||
元素输入 ${Vm_PolicyName} ${random_strategyName} 定位虚拟机策略名称失败
|
||
Log 策略名称输入完毕
|
||
元素点击 ${Complete_policy} 点击完成按钮,策略创建完毕 定位虚拟机策略完成按钮失败
|
||
元素点击 ${Success_Confirm} 策略添加完成 备份策略完成定位失败
|
||
log 开始备份
|
||
元素点击 ${tab_backupset} 进入备份集栏 定位备份集选项失败
|
||
Sleep 60s
|
||
元素输入 ${Input_Policy_Name} ${random_strategyName} 定位策略名称输入框失败
|
||
Log 输入策略名进行搜索
|
||
Sleep 2s
|
||
FOR ${n} IN RANGE 10
|
||
Click Element ${Button_Searchbk}
|
||
Sleep 10s
|
||
${bk_status} Run Keyword And Return Status Wait Until Element Is Visible Xpath=//div[text()="${random_strategyName}"]/../../td[10]/div[text()="已完成"]
|
||
Run Keyword If "${bk_status}"=="True" Exit For Loop
|
||
... ELSE Log 备份未完成
|
||
Sleep 120s
|
||
END
|
||
Run Keyword If ${bk_status}==False Fail
|
||
... ELSE Log 备份成功
|
||
Sleep 5s
|