robotframework-demo/Project/task4/Resource/RE3_DPM/File_KeyWord.robot

1815 lines
126 KiB
Plaintext
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

*** Settings ***
Resource ElementPath.robot
Library SSHLibrary
Resource ../RE0_Common/KeyWord.robot
Library String
Resource ../RE7_Storage/ElementPath.robot
Resource ../RE12_Archive/ElementPath.robot
Resource ../RE6_Sync/KeyWord_LocalCopy.robot
*** Keywords ***
生成备份文件
[Arguments] ${ip} ${user} ${pwd} # Linux_ip地址|用户名|密码
Open Connection ${ip}
SSHLibrary.Login ${user} ${pwd}
log 新建备份所需文件
Execute Command service iptables stop
Execute Command rm -rf /A.txt
Execute Command touch /A.txt
Execute Command chmod 755 /A.txt
Execute Command date >> /A.txt
Execute Command dd if=/dev/zero of=/B.dbf bs=1M count=500
Sleep 5s
Execute Command mv /B.dbf /B.txt
sleep 2s
${origin_file_md5} Execute Command md5sum /A.txt|cut -d" " -f1
Set Suite Variable ${origin_file_md5}
Log 源文件MD5值${origin_file_md5}
Close Connection
Log 源文件MD5值计算完毕
文件备份
[Arguments] ${agent_name} ${bk_target} ${bk_type} ${mds_name} ${encryption_attr} ${compress_attr} ${dedup_attr} ${check_attr}=0 # 代理名|备份源名称|备份类型|存储介质名称|加密|压缩|重删|校验(默认不勾选)
元素点击 ${Timed_DataProtect} 点击进入定时数据保护页面 定位定时数据保护失败
${date} Evaluate time.strftime('%Y%m%d%H%M%S',time.localtime()) time
${random_strategyName}= Catenate SEPARATOR=_ ${bk_type} ${date}
${createpolicy} Catenate SEPARATOR= 新建了策略[ ${random_strategyName} ]
Set Suite Variable ${random_strategyName}
Set Suite Variable ${createpolicy}
Sleep 5s
元素点击 xpath=//span[text()="${agent_name}"] 点击选择代理 定位代理所在位置失败
循环点击 ${Add_Policy} ${File_Module}
元素点击 ${File_Module} 点击文件组件 定位文件组件失败
元素输入 ${Set_File_PolicyName} ${random_strategyName} 定位策略名输入框失败
元素点击 xpath=//span[contains(text(),"${bk_target}")]/../../td[2]/div 勾选需要备份的文件 定位需要备份的文件失败
元素点击 ${Bk_File_NextStep} 点击下一步进入文件选项 定位下一步按钮失败
元素点击 ${File_More_NextStep} 点击下一步进入任务周期选项 定位下一步按钮失败
元素点击 ${Add_taskcycle} 点击添加任务周期 定位添加任务周期按钮失败
Run Keyword If "${bk_type}"=="完全" File_KeyWord.完全备份
... ELSE IF "${bk_type}"=="差量" File_KeyWord.差量备份
... ELSE IF "${bk_type}"=="累积增量_扫描" 累积增量备份_扫描
... ELSE IF "${bk_type}"=="累积增量_驱动" 累积增量备份_驱动
... ELSE Fail 定位备份类型失败
元素点击 ${Cycle_Once} 设置任务仅执行一次 定位仅执行一次失败
元素点击 ${Cycle_Confirm} 确定任务周期设置完毕 定位任务周期设置失败
元素点击 ${Cycle_NextStep} 点击下一步进入备份集存储设置界面 定位下一步失败
元素点击 ${Manual_ChooseMDS} 点击勾选手动选择介质 定位选择介质失败
元素点击 ${Select_MDS} 点击介质选择按钮 定位介质选择按钮失败
元素点击 xpath=//select[@id="dialogues_addCycleStorage_fileOrOracle_selectMedia_select"]/option[contains(text(),"${mds_name}")] 点击选择指定介质 定位指定介质失败
Run Keyword If ${dedup_attr}==1 File_KeyWord.重删
元素点击 ${Storage_NextStep} 点击下一步进入到备份高级选项 定位下一步失败
Run Keyword If ${encryption_attr}==1 File_KeyWord.加密
Run Keyword If ${compress_attr}==1 File_KeyWord.压缩
... ELSE File_KeyWord.取消压缩
Run Keyword If ${check_attr}==1 File_KeyWord.校验
sleep 6s
循环点击 ${Complete_Policy_Create_No_Info} ${Success_Confirm}
sleep 6s
元素点击 ${Success_Confirm} 确定策略创建成功 策略创建失败
元素点击 ${BackupSet} 点击进入备份集一栏 定位备份集栏失败
Sleep 5s
${View2}= Catenate SEPARATOR= //*[@id="compileBackupViewId ${random_strategyName} "]
Wait Until Page Contains Element ${View2} 300s 备份未完成
Log 备份完成
Sleep 2s
文件备份_性能
[Arguments] ${agent_name} ${bk_target} ${bk_type} ${mds_name} ${encryption_attr} ${compress_attr} ${dedup_attr} ${get_bcinfo_interval}=3600s # 代理名|备份目标名称|备份类型|加密|压缩|重删|获取性能信息时间间隔
元素点击 ${Timed_DataProtect} 点击进入定时数据保护页面 定位定时数据保护失败
${date} Evaluate time.strftime('%Y%m%d%H%M%S',time.localtime()) time
${random_strategyName}= Catenate SEPARATOR=_ ${bk_type} ${date}
${createpolicy} Catenate SEPARATOR= 新建了策略[ ${random_strategyName} ]
Set Suite Variable ${random_strategyName}
Set Suite Variable ${createpolicy}
Sleep 5s
元素点击 xpath=//span[text()="${agent_name}"] 点击选择代理 定位代理所在位置失败
元素点击 ${Add_Policy} 点击添加策略按钮 定位添加策略按钮失败
元素点击 ${File_Module} 点击文件组件 定位文件组件失败
元素输入 ${Set_File_PolicyName} ${random_strategyName} 定位策略名输入框失败
元素点击 xpath=//span[contains(text(),"${bk_target}")]/../../td[2]/div 勾选需要备份的文件 定位需要备份的文件失败
元素点击 ${Bk_File_NextStep} 点击下一步进入文件选项 定位下一步按钮失败
元素点击 ${File_More_NextStep} 点击下一步进入任务周期选项 定位下一步按钮失败
元素点击 ${Add_taskcycle} 点击添加任务周期 定位添加任务周期按钮失败
Run Keyword If "${bk_type}"=="完全" 完全备份
... ELSE IF "${bk_type}"=="差量" 差量备份
... ELSE IF "${bk_type}"=="合成" 合成备份
... ELSE IF "${bk_type}"=="累积增量" 累积增量备份_扫描
Sleep 2s
元素点击 ${Cycle_Once} 设置任务仅执行一次 定位仅执行一次失败
元素点击 ${Cycle_Confirm} 确定任务周期设置完毕 定位任务周期设置失败
元素点击 ${Cycle_NextStep} 点击下一步进入备份集存储设置界面 定位下一步失败
元素点击 ${Manual_ChooseMDS} 点击勾选手动选择介质 定位选择介质失败
元素点击 ${Select_MDS} 点击介质选择按钮 定位介质选择按钮失败
元素点击 xpath=//option[@label="${mds_name}"] 点击选择指定介质 定位指定介质失败
元素点击 ${Storage_NextStep} 点击下一步进入到备份高级选项 定位下一步失败
Run Keyword If ${encryption_attr}==1 加密
Run Keyword If ${compress_attr}==1 压缩
... ELSE 取消压缩
Run Keyword If ${dedup_attr}==1 重删
元素点击 ${File_Senior_NextStep} 点击下一步进入到备份信息确认栏 定位下一步失败
循环点击 ${Complete_CreatePolicy} ${Success_Confirm}
sleep 6s
元素点击 ${Success_Confirm} 确定策略创建成功 策略创建失败
元素点击 ${BackupSet} 点击进入备份集一栏 定位备份集栏失败
Sleep 60s
Log 开始记录性能数据
Open Connection ${Plantform_BC_IP}
SSHLibrary.Login root 2008Bc1223!@#
Put File ${Scripts_Path}${/}Script${/}SC0_Common${/}00_Initial${/}server_monitor.sh /mnt mode=7777
Log 上传本地脚本至黑方服务器
FOR ${n} IN RANGE 10000
${bk_status} Run Keyword And Return Status Wait Until Element Is Visible Xpath=//*[@id="backupSetTable"]/div[2]/table/tbody/tr[2]/td[3][text()="${random_strategyName}"]/..//td[text()="已完成"]
Run Keyword If "${bk_status}"=="True" Exit For Loop
... ELSE Log 备份未完成
Sleep ${get_bcinfo_interval}s
Log 开始记录第 ${n} 次 重删性能数据
Start Command echo "********* Num_${${n}+1}_DEDUP_INFO_OUTPUT*********">> /mnt/${random_strategyName}.log
Start Command /mnt/server_monitor.sh >> /mnt/${random_strategyName}.log
END
Close Connection
Log 备份完成
Sleep 2s
文件备份_断网
[Arguments] ${agent_name} ${bk_target} ${bk_type} ${mds_name} ${encryption_attr} ${compress_attr} ${dedup_attr} ${adapter} ${duration} # 代理名|备份目标名称|备份类型|加密|压缩|重删|代理网卡名称|持续间隔
元素点击 ${Timed_DataProtect} 点击进入定时数据保护页面 定位定时数据保护失败
${date} Evaluate time.strftime('%Y%m%d%H%M%S',time.localtime()) time
${random_strategyName}= Catenate SEPARATOR=_ ${bk_type} ${date}
${createpolicy} Catenate SEPARATOR= 新建了策略[ ${random_strategyName} ]
Set Suite Variable ${random_strategyName}
Set Suite Variable ${createpolicy}
Sleep 5s
元素点击 xpath=//span[text()="${agent_name}"] 点击选择代理 定位代理所在位置失败
元素点击 ${Add_Policy} 点击添加策略按钮 定位添加策略按钮失败
元素点击 ${File_Module} 点击文件组件 定位文件组件失败
元素输入 ${Set_File_PolicyName} ${random_strategyName} 定位策略名输入框失败
元素点击 xpath=//span[contains(text(),"${bk_target}")]/../../td[2]/div 勾选需要备份的文件 定位需要备份的文件失败
元素点击 ${Bk_File_NextStep} 点击下一步进入任务周期界面 定位下一步按钮失败
元素点击 ${File_More_NextStep} 点击下一步进入任务周期选项 定位下一步按钮失败
元素点击 ${Add_taskcycle} 点击添加任务周期 定位添加任务周期按钮失败
Run Keyword If "${bk_type}"=="完全" 完全备份
... ELSE IF "${bk_type}"=="差量" 差量备份
... ELSE IF "${bk_type}"=="累积增量_扫描" 累积增量备份_扫描
... ELSE IF "${bk_type}"=="累积增量_驱动" 累积增量备份_驱动
... ELSE Fail 定位备份类型失败
元素点击 ${Cycle_Once} 设置任务仅执行一次 定位仅执行一次失败
元素点击 ${Cycle_Confirm} 确定任务周期设置完毕 定位任务周期设置失败
元素点击 ${Cycle_NextStep} 点击下一步进入备份集存储设置界面 定位下一步失败
元素点击 ${Manual_ChooseMDS} 点击勾选手动选择介质 定位选择介质失败
元素点击 ${Select_MDS} 点击介质选择按钮 定位介质选择按钮失败
元素点击 xpath=//option[@label="${mds_name}"] 点击选择指定介质 定位指定介质失败
元素点击 ${Storage_NextStep} 点击下一步进入到备份高级选项 定位下一步失败
Run Keyword If ${encryption_attr}==1 加密
Run Keyword If ${compress_attr}==1 压缩
... ELSE 取消压缩
Run Keyword If ${dedup_attr}==1 重删
元素点击 ${Speed_Control} 勾选限速 定位限速控制失败
元素输入 ${Input_Speed} 80 定位限速输入框失败
循环点击 ${Complete_Policy_Create_No_Info} ${Success_Confirm}
元素点击 ${Success_Confirm} 确定策略创建成功 策略创建失败
元素点击 ${Policy_Work} 点击进入作业一栏 定位作业栏失败
Sleep 60s
Open Connection 10.10.22.126 timeout=15 s newline=CRLF
SSHLibrary.Login root unary@2008
Put File ${Scripts_Path}${/}Script${/}SC0_Common${/}00_Initial${/}adapter_switch.sh /mnt mode=7777
Log 上传本地脚本至黑方服务器
Execute Command /mnt/adapter_switch.sh ${adapter} ${duration}
元素输入 ${Input_PolicyName_Search} ${random_strategyName} 定位策略名输入框失败
元素点击 ${Button_PolicyName_Search} 点击搜索相关作业 定位策略名搜索按钮失败
FOR ${n} IN RANGE 10000
${bk_status} Run Keyword And Return Status Wait Until Element Is Visible Xpath=//td[@data-field="policyName"]/div[text()="${random_strategyName}"]/../..//div[contains(text(),"本次备份成功")]
Run Keyword If "${bk_status}"=="True" Exit For Loop
... ELSE Log 备份未完成
Sleep 30s
END
Close Connection
Log 备份完成
元素点击 ${BackupSet} 点击进入备份集一栏 定位备份集栏失败
Sleep 5s
文件备份_网络波动
[Arguments] ${agent_name} ${bk_target} ${bk_type} ${mds_name} ${encryption_attr} ${compress_attr} ${dedup_attr} ${adapter} ${max_delay} ${min_delay} ${loss_per} ${duration} # 代理名|备份目标名称|备份类型|加密|压缩|重删|代理网卡名称|最大延迟时间|最小延迟时间|丢包百分比|持续间隔
元素点击 ${Timed_DataProtect} 点击进入定时数据保护页面 定位定时数据保护失败
${date} Evaluate time.strftime('%Y%m%d%H%M%S',time.localtime()) time
${random_strategyName}= Catenate SEPARATOR=_ ${bk_type} ${date}
${createpolicy} Catenate SEPARATOR= 新建了策略[ ${random_strategyName} ]
Set Suite Variable ${random_strategyName}
Set Suite Variable ${createpolicy}
Sleep 5s
元素点击 xpath=//span[text()="${agent_name}"] 点击选择代理 定位代理所在位置失败
元素点击 ${Add_Policy} 点击添加策略按钮 定位添加策略按钮失败
元素点击 ${File_Module} 点击文件组件 定位文件组件失败
元素输入 ${Set_File_PolicyName} ${random_strategyName} 定位策略名输入框失败
元素点击 xpath=//span[contains(text(),"${bk_target}")]/../../td[2]/div 勾选需要备份的文件 定位需要备份的文件失败
元素点击 ${Bk_File_NextStep} 点击下一步进入任务周期界面 定位下一步按钮失败
元素点击 ${File_More_NextStep} 点击下一步进入任务周期选项 定位下一步按钮失败
元素点击 ${Add_taskcycle} 点击添加任务周期 定位添加任务周期按钮失败
Run Keyword If "${bk_type}"=="完全" 完全备份
... ELSE IF "${bk_type}"=="差量" 差量备份
... ELSE IF "${bk_type}"=="累积增量_扫描" 累积增量备份_扫描
... ELSE IF "${bk_type}"=="累积增量_驱动" 累积增量备份_驱动
... ELSE Fail 定位备份类型失败
元素点击 ${Cycle_Once} 设置任务仅执行一次 定位仅执行一次失败
元素点击 ${Cycle_Confirm} 确定任务周期设置完毕 定位任务周期设置失败
元素点击 ${Cycle_NextStep} 点击下一步进入备份集存储设置界面 定位下一步失败
元素点击 ${Manual_ChooseMDS} 点击勾选手动选择介质 定位选择介质失败
元素点击 ${Select_MDS} 点击介质选择按钮 定位介质选择按钮失败
元素点击 xpath=//option[@label="${mds_name}"] 点击选择指定介质 定位指定介质失败
元素点击 ${Storage_NextStep} 点击下一步进入到备份高级选项 定位下一步失败
Run Keyword If ${encryption_attr}==1 加密
Run Keyword If ${compress_attr}==1 压缩
... ELSE 取消压缩
Run Keyword If ${dedup_attr}==1 重删
元素点击 ${Speed_Control} 勾选限速 定位限速控制失败
元素输入 ${Input_Speed} 50 定位限速输入框失败
循环点击 ${Complete_Policy_Create_No_Info} ${Success_Confirm}
元素点击 ${Success_Confirm} 确定策略创建成功 策略创建失败
元素点击 ${BackupSet} 点击进入备份集一栏 定位备份集栏失败
Sleep 5s
Open Connection 10.10.22.126 timeout=15 s newline=CRLF
SSHLibrary.Login root unary@2008
Sleep 5s
Put File ${Scripts_Path}${/}Script${/}SC0_Common${/}00_Initial${/}net_instable_1.sh /mnt mode=7777
Put File ${Scripts_Path}${/}Script${/}SC0_Common${/}00_Initial${/}net_instable_2.sh /mnt mode=7777
Log 上传本地脚本至黑方服务器
FOR ${n} IN RANGE 10000
${bk_status} Run Keyword And Return Status Wait Until Element Is Visible Xpath=//*[@id="backupSetTable"]/div[2]/table/tbody/tr[2]/td[3][text()="${random_strategyName}"]/..//td[text()="已完成"]
Run Keyword If "${bk_status}"=="True" Exit For Loop
... ELSE Log 备份未完成
Sleep 2s
Log 开始调整网络丢包和延迟
Execute Command /mnt/net_instable_1.sh ${adapter} ${max_delay} ${min_delay} ${duration}
Execute Command /mnt/net_instable_2.sh ${adapter} ${loss_per} ${duration}
END
Close Connection
Log 备份完成
Sleep 2s
文件恢复_性能
[Arguments] ${Sleep_Time} # 恢复策略执行结果的查询间隔
元素点击 Xpath=//*[@id="backupSetTable"]/div[2]/table/tbody//td[3][text()="${random_strategyName}"]/..//span[text()="恢复"] 选择备份集进行恢复 定位恢复按钮失败
元素点击 ${Recover_File} 选择需要恢复的文件 定位需要恢复的文件失败
元素点击 ${Recover_To_Oldpath} 选择恢复路径 定位恢复到原路径失败
元素点击 ${Recover_Nextstep} 点击下一步进入到恢复高级选项 恢复目标下一步定位失败
元素点击 ${Recover_fileExec} 确定完成恢复策略创建 恢复执行定位失败
元素点击 ${Success_Confirm} 恢复策略确定创建成功 恢复作业创建成功弹窗定位失败
元素点击 ${Policy_Work} 点击进入作业栏 定位作业栏失败
Sleep 60s
元素输入 ${Input_PolicyName_Search} 恢复策略 定位策略名输入框失败
元素点击 ${Button_PolicyName_Search} 点击搜索相关作业 定位策略名搜索按钮失败
FOR ${n} IN RANGE 10000
${recover_status} Run Keyword And Return Status Wait Until Page Contains Element ${Recover_Success}
Run Keyword If "${recover_status}"=="True" Exit For Loop
... ELSE Log 恢复未完成
Sleep ${Sleep_Time}
END
Log 恢复成功
文件恢复_断网
[Arguments] ${adapter} ${duration} # 代理网卡名称|持续间隔
元素点击 Xpath=//*[@id="backupSetTable"]/div[2]/table/tbody//td[3][text()="${random_strategyName}"]/..//span[text()="恢复"] 选择备份集进行恢复 定位恢复按钮失败
元素点击 ${Recover_File} 选择需要恢复的文件 定位需要恢复的文件失败
元素点击 ${Recover_To_Oldpath} 选择恢复路径 定位恢复到原路径失败
元素点击 ${Recover_fileNextstep} 点击下一步进入到文件选项页面 定位下一步定位失败
Sleep 2s
元素点击 ${File_Rec_More_NextStep} 点击下一步进入到恢复高级选项 定位文件选项下一步失败
元素点击 ${Speed_Control_Recover} 勾选限速 定位限速控制失败
元素输入 ${Input_Speed_Recover} 50 定位限速输入框失败
循环点击 ${Recover_fileExec} ${Success_Confirm}
元素点击 ${Success_Confirm} 恢复策略确定创建成功 恢复作业创建成功弹窗定位失败
元素点击 ${Policy_Work} 点击进入作业栏 定位作业栏失败
Sleep 60s
元素输入 ${Input_All_Policy} 恢复策略 定位所有策略输入框失败
元素点击 ${Search_By_Policy} 点击查找筛选恢复策略 定位查找按钮失败
Open Connection 10.10.22.126 timeout=15 s newline=CRLF
SSHLibrary.Login root unary@2008
Execute Command /mnt/adapter_switch.sh ${adapter} ${duration}
FOR ${n} IN RANGE 10000
${recover_status} Run Keyword And Return Status Wait Until Page Contains Element ${Recover_Success}
Run Keyword If "${recover_status}"=="True" Exit For Loop
... ELSE Log 恢复未完成
Sleep 30s
END
Log 恢复成功
Close Connection
文件恢复_网络波动
[Arguments] ${adapter} ${max_delay} ${min_delay} ${loss_per} ${duration} # 代理网卡名称|最大延迟时间|最小延迟时间|丢包百分比|持续间隔
元素点击 Xpath=//*[@id="backupSetTable"]/div[2]/table/tbody//td[3][text()="${random_strategyName}"]/..//span[text()="恢复"] 选择备份集进行恢复 定位恢复按钮失败
元素点击 ${Recover_File} 选择需要恢复的文件 定位需要恢复的文件失败
元素点击 ${Recover_To_Oldpath} 选择恢复路径 定位恢复到原路径失败
元素点击 ${Recover_fileNextstep} 点击下一步进入到文件选项页面 定位下一步定位失败
Sleep 2s
元素点击 ${File_Rec_More_NextStep} 点击下一步进入到恢复高级选项 定位文件选项下一步失败
元素点击 ${Speed_Control_Recover} 勾选限速 定位限速控制失败
元素输入 ${Input_Speed_Recover} 50 定位限速输入框失败
元素点击 ${Recover_fileExec} 确定完成恢复策略创建 恢复执行定位失败
元素点击 ${Success_Confirm} 恢复策略确定创建成功 恢复作业创建成功弹窗定位失败
元素点击 ${Policy_Work} 点击进入作业栏 定位作业栏失败
Sleep 5s
元素输入 ${Input_All_Policy} 恢复策略 定位所有策略输入框失败
元素点击 ${Search_By_Policy} 点击查找筛选恢复策略 定位查找按钮失败
Open Connection 10.10.22.126 timeout=15 s newline=CRLF
SSHLibrary.Login root unary@2008
FOR ${n} IN RANGE 10000
${recover_status} Run Keyword And Return Status Wait Until Page Contains Element ${Recover_Success}
Run Keyword If "${recover_status}"=="True" Exit For Loop
... ELSE Log 恢复未完成
Sleep 2s
Log 开始调整网络丢包和延迟
Execute Command /mnt/net_instable_1.sh ${adapter} ${max_delay} ${min_delay} ${duration}
Execute Command /mnt/net_instable_2.sh ${adapter} ${loss_per} ${duration}
Execute Command rm -rf *.sh
END
Log 恢复成功
Close Connection
文件备份_保留周期
[Arguments] ${agent_name} ${bk_target} ${bk_type} # 代理名|备份目标名称|备份类型
[Documentation] 创建文件备份策略,设置备份保留周期,可根据传入的参数进行备份类型,介质,加密压缩重删等参数进行选择
...
... 新增备份集页面搜索操作,防止修改时间对备份集状态的判断造成影响
元素点击 ${Timed_DataProtect} 点击进入定时数据保护页面 定位定时数据保护失败
${date} Evaluate time.strftime('%Y%m%d%H%M%S',time.localtime()) time
${random_strategyName}= Catenate SEPARATOR=_ ${bk_type} ${date}
${createpolicy} Catenate SEPARATOR= 新建了策略[ ${random_strategyName} ]
Set Suite Variable ${random_strategyName}
Set Suite Variable ${createpolicy}
Sleep 5s
元素点击 xpath=//span[text()="${agent_name}"] 点击选择代理 定位代理所在位置失败
元素点击 ${Add_Policy} 点击添加策略按钮 定位添加策略按钮失败
元素点击 ${File_Module} 点击文件组件 定位文件组件失败
元素输入 ${Set_File_PolicyName} ${random_strategyName} 定位策略名输入框失败
元素点击 xpath=//span[contains(text(),"${bk_target}")]/../../td[2]/div 勾选需要备份的文件 定位需要备份的文件失败
元素点击 ${Bk_File_NextStep} 点击下一步进入文件选项 定位下一步按钮失败
元素点击 ${File_More_NextStep} 点击下一步进入任务周期界面 定位下一步按钮失败
元素点击 ${Add_taskcycle} 点击添加任务周期 定位添加任务周期按钮失败
Run Keyword If "${bk_type}"=="完全" File_KeyWord.完全备份
... ELSE IF "${bk_type}"=="差量" File_KeyWord.差量备份
... ELSE IF "${bk_type}"=="累积增量_扫描" File_KeyWord.累积增量备份_扫描
... ELSE IF "${bk_type}"=="累积增量_驱动" File_KeyWord.累积增量备份_驱动
... ELSE Fail 定位备份类型失败
元素点击 ${Cycle_Once} 设置任务仅执行一次 定位仅执行一次失败
元素点击 ${Cycle_Confirm} 确定任务周期设置完毕 定位任务周期设置失败
元素点击 ${Cycle_NextStep} 点击下一步进入备份集存储设置界面 定位下一步失败
元素点击 ${Select_Bk_Savetime} 点击展开备份集保留时间下拉框 定位备份集保留时间下拉框失败
元素点击 ${Save_by_Day} 点击选择保留周期为天 定位保留周期为天失败
元素点击 ${Storage_NextStep} 点击下一步进入到备份高级选项 定位下一步失败
comment 取消压缩
循环点击 ${Complete_Policy_Create_No_Info} ${Success_Confirm}
Sleep 6s
元素点击 ${Success_Confirm} 确定策略创建成功 策略创建失败
元素点击 ${BackupSet} 点击进入备份集一栏 定位备份集栏失败
Sleep 120s
元素输入 ${DPMFind_Policy} ${random_strategyName} 策略名输入失败
Sleep 2s
元素点击 ${DPMButton_Searchbutton} 点击搜索按钮 定位搜索按钮失败
Sleep 2s
Wait Until Page Contains Element Xpath=//*[@id="backupSetTable"]/div[2]/table/tbody/tr[2]/td[3][text()="${random_strategyName}"]/..//td[text()="已完成"] 300s 备份未完成
Log 备份完成
Sleep 2s
文件备份_保留个数
[Arguments] ${agent_name} ${bk_target} ${bk_type} # 代理名|备份目标名称|备份类型
元素点击 ${Timed_DataProtect} 点击进入定时数据保护页面 定位定时数据保护失败
${date} Evaluate time.strftime('%Y%m%d%H%M%S',time.localtime()) time
${random_strategyName}= Catenate SEPARATOR=_ ${bk_type} ${date}
${createpolicy} Catenate SEPARATOR= 新建了策略[ ${random_strategyName} ]
Set Suite Variable ${random_strategyName}
Set Suite Variable ${createpolicy}
Sleep 5s
元素点击 xpath=//span[text()="${agent_name}"] 点击选择代理 定位代理所在位置失败
元素点击 ${Add_Policy} 点击添加策略按钮 定位添加策略按钮失败
元素点击 ${File_Module} 点击文件组件 定位文件组件失败
元素输入 ${Set_File_PolicyName} ${random_strategyName} 定位策略名输入框失败
元素点击 xpath=//span[contains(text(),"${bk_target}")]/../../td[2]/div 勾选需要备份的文件 定位需要备份的文件失败
元素点击 ${Bk_File_NextStep} 点击下一步进入文件选项 定位下一步按钮失败
元素点击 ${File_More_NextStep} 点击下一步进入任务周期界面 定位下一步按钮失败
元素点击 ${Add_taskcycle} 点击添加任务周期 定位添加任务周期按钮失败
Run Keyword If "${bk_type}"=="完全" 完全备份
... ELSE IF "${bk_type}"=="差量" 差量备份
... ELSE IF "${bk_type}"=="累积增量_扫描" 累积增量备份_扫描
... ELSE IF "${bk_type}"=="累积增量_驱动" 累积增量备份_驱动
... ELSE Fail 定位备份类型失败
元素点击 ${Cycle_Once} 设置任务仅执行一次 定位仅执行一次失败
元素点击 ${Cycle_Confirm} 确定任务周期设置完毕 定位任务周期设置失败
元素点击 ${Cycle_NextStep} 点击下一步进入备份集存储设置界面 定位下一步失败
元素点击 ${Select_Bk_Savetime} 点击展开备份集保留时间下拉框 定位备份集保留时间下拉框失败
元素点击 ${Save_by_geshu} 点击选择保留周期为按个数保留 定位保留周期为按个数保留失败
元素点击 ${Storage_NextStep} 点击下一步进入到备份高级选项 定位下一步失败
Comment 取消压缩
循环点击 ${Complete_Policy_Create_No_Info} ${Success_Confirm}
Sleep 6s
元素点击 ${Success_Confirm} 确定策略创建成功 策略创建失败
元素点击 ${BackupSet} 点击进入备份集一栏 定位备份集栏失败
Sleep 60s
Wait Until Page Contains Element Xpath=//*[@id="backupSetTable"]/div[2]/table/tbody/tr[2]/td[3][text()="${random_strategyName}"]/..//td[text()="已完成"] 300s 备份未完成
Log 备份完成
Sleep 2s
备份集属性校验
[Arguments] ${encryption} ${compress} ${deduped} # 压缩|加密|重删
元素点击 ${BackupSet} 进入备份集页面 进入备份集页面失败
sleep 10s
${BK_Detailid}= Catenate SEPARATOR= compileBackupViewId ${random_strategyName}
click element xpath=//span[@id="${BK_Detailid}"]
Sleep 10s
Run Keyword If ${encryption}==1 加密属性校验
... ELSE Log 属性不校验
Run Keyword If ${compress}==1 压缩属性校验
... ELSE Log 属性不校验
Run Keyword If ${deduped}==1 重删属性校验
... ELSE Log 属性不校验
元素点击 ${Attr_Cancel} 点击取消关闭备份集详情弹窗 定位取消按钮失败
Log 备份集属性确认完毕
Sleep 2s
文件恢复
元素点击 ${BackupSet} 点击进入备份集一栏 定位备份集栏失败
sleep 5s
元素输入 ${Input_Policy_Name} ${random_strategyName} 定位策略名搜索框失败
元素点击 ${DPMButton_Searchbutton} 点击查找筛选策略 定位查找按钮失败
sleep 5s
元素点击 ${Click_recover} 选择备份集进行恢复 定位恢复按钮失败
元素点击 ${Recover_File} 选择需要恢复的文件 定位需要恢复的文件失败
元素点击 ${Recover_To_Oldpath} 选择恢复路径 定位恢复到原路径失败
元素点击 ${Recover_fileNextstep} 点击下一步进入到文件选项页面 定位下一步定位失败
元素点击 ${File_Rec_More_NextStep} 点击下一步进入到恢复高级选项 定位文件选项下一步失败
元素点击 ${Recover_fileExec} 点击创建恢复策略 定位恢复策略最后一步确定失败
元素点击 ${window_button_recover_confirm} 点击确定按钮完成恢复操作 定位恢复弹窗确定按钮失败
元素点击 ${Success_Confirm} 恢复策略确定创建成功 恢复作业创建成功弹窗定位失败
元素点击 ${Policy_Work} 点击进入作业栏 定位作业栏失败
Sleep 60s
元素输入 ${Input_All_Policy} 恢复策略 定位所有策略输入框失败
元素点击 ${Search_By_Policy} 点击查找筛选恢复策略 定位查找按钮失败
Wait Until Page Contains Element ${Recover_Success} 300s 恢复失败
sleep 2s
Log 恢复成功
文件恢复_编辑
元素点击 Xpath=//*[@id="backupSetTable"]/div[2]/table/tbody//td[3][text()="${random_strategyName}"]/..//span[text()="恢复"] 选择备份集进行恢复 定位恢复按钮失败
元素点击 ${Recover_File} 选择需要恢复的文件 定位需要恢复的文件失败
元素点击 ${Recover_To_Oldpath} 选择恢复路径 定位恢复到原路径失败
元素点击 ${Recover_fileNextstep} 点击下一步进入到文件选项页面 定位下一步定位失败
元素点击 ${File_Rec_More_NextStep} 点击下一步进入到恢复高级选项 定位文件选项下一步失败
循环点击 ${Recover_fileExec} ${window_button_recover_confirm}
元素点击 ${window_button_recover_confirm} 点击确定按钮完成恢复操作 定位恢复弹窗确定按钮失败
元素点击 ${Success_Confirm} 恢复策略确定创建成功 恢复作业创建成功弹窗定位失败
元素点击 ${Policy_Work} 点击进入作业栏 定位作业栏失败
Sleep 60s
元素输入 ${Input_All_Policy} 恢复策略 定位所有策略输入框失败
元素点击 ${Search_By_Policy} 点击查找筛选恢复策略 定位查找按钮失败
Wait Until Page Contains Element ${Recover_Success} 300s 恢复失败
sleep 2s
Log 恢复成功
校验文件
[Arguments] ${ip} ${user} ${pwd}
Open Connection ${ip}
SSHLibrary.Login ${user} ${pwd}
Log 连接成功
${recovered_file_md5} Execute Command md5sum /A.txt|cut -d" " -f1
Close Connection
Log origin_file_md5=${origin_file_md5}
Run Keyword If "${recovered_file_md5}"=="${origin_file_md5}" Log 文件恢复成功MD5值一致
... ELSE Fail 文件恢复失败MD5值不一致
完全备份
Sleep 2s
Click Element ${Full_Backup}
Log 勾选完全备份
差量备份
Sleep 2s
Click Element ${Divergence_Backup}
Log 勾选差量备份
累积增量备份_扫描
Sleep 2s
Click Element ${Total_Backup}
Log 勾选累积增量备份
元素点击 ${Total_Backup_Style} 点击展开增量备份下拉框 定位增量备份下拉框失败
元素点击 ${Total_Backup_Scan} 选择累积增量扫描方式 定位扫描选项失败
累积增量备份_驱动
Sleep 2s
Click Element ${Total_Backup}
Log 勾选累积增量备份
元素点击 ${Total_Backup_Style} 点击展开增量备份下拉框 定位增量备份下拉框失败
元素点击 ${Total_Backup_Driver} 选择累积增量驱动选项 定位增量驱动选项失败
加密
Sleep 2s
Click Element ${Option_Encryption}
Log 点击加密
Sleep 2s
压缩
Log 点击压缩
Set Focus To Element ${Option_Compress}
Click Element ${Option_Compress}
重删
Sleep 2s
Click Element ${Select_Dedup}
Log 点击重删
Sleep 2s
压缩属性校验
${get_attr}= Get Text ${Compress_Attr}
Element Text Should Be ${Compress_Attr} 是
Log 压缩属性校验完毕
加密属性校验
${get_attr}= Get Text ${Encryption_Attr}
Element Should Contain ${Encryption_Attr} 是
Log 加密属性校验完毕
重删属性校验
${get_attr}= Get Text ${Deduped_Attr}
Element Should Contain ${Deduped_Attr} 是
Log 重删属性校验完毕
任务信息校验
Open Connection ${Plantform_BC_IP}
SSHLibrary.Login root 2008Bc1223!@#
元素点击 ${BackupSet} 点击进入备份集一栏 定位备份集栏失败
元素点击 Xpath=//*[@id="backupSetTable"]/div[2]/table/tbody/tr[2]/td[3][text()="${random_strategyName}"]/..//span[text()="详情"] 点击查看备份集详情 定位备份集详情失败
${Bk_Storage} Get Text ${Bk_Storage}
@{Storage} Evaluate re.split(' ','${Bk_Storage}') re
${Int_Storage} Evaluate float(${Storage}[0])
Log 备份集大小为:${Int_Storage} G
Start Command echo "BK_Storage${Int_Storage} G">> /mnt/${random_strategyName}.log
${Bk_RealStorage} Get Text ${Bk_RealStorage}
@{RealStorage} Evaluate re.split(' ','${Bk_RealStorage}') re
${Int_RealStorage} Evaluate float(${RealStorage}[0])
Log 备份集实际大小为:${Int_RealStorage} G
Start Command echo "Real_BK_Storage${Int_RealStorage} G">> /mnt/${random_strategyName}.log
${Bk_Dedup_Per} Get Text ${Bk_Dedup_Per}
Log 备份集重删率为:${Bk_Dedup_Per}
Start Command echo "Dedup_Percentage${Bk_Dedup_Per} ">> /mnt/${random_strategyName}.log
元素点击 ${Attr_Cancel} 点击取消关闭备份集详情弹窗 定位取消按钮失败
元素点击 ${Policy_Work} 点击进入作业栏 定位作业栏失败
${Bk_Runingtime} Get Text xpath=//div[text()="${random_strategyName}"]/../..//td[6]/div
Log 备份运行时间为:${Bk_Runingtime}
Start Command echo -e "BK_Time${Bk_Runingtime} \n">> /mnt/${random_strategyName}.log
元素点击 ${BackupSet} 点击进入备份集一栏 定位备份集栏失败
普通任务信息校验
Open Connection ${Plantform_BC_IP_Des}
SSHLibrary.Login root 2008Bc1223!@#
元素点击 ${BackupSet} 点击进入备份集一栏 定位备份集栏失败
元素点击 Xpath=//*[@id="backupSetTable"]/div[2]/table/tbody/tr[2]/td[3][text()="${random_strategyName}"]/..//span[text()="详情"] 点击查看备份集详情 定位备份集详情失败
${Bk_Storage} Get Text ${Bk_Storage}
Log 备份集大小为:${Bk_Storage}
Start Command echo "BK_Storage${Bk_Storage}">> /mnt/${random_strategyName}.log
${Bk_RealStorage} Get Text ${Bk_RealStorage}
Log 备份集实际大小为:${Bk_RealStorage}
Start Command echo "Real_BK_Storage${Bk_RealStorage} ">> /mnt/${random_strategyName}.log
元素点击 ${Attr_Cancel} 点击取消关闭备份集详情弹窗 定位取消按钮失败
元素点击 ${Policy_Work} 点击进入作业栏 定位作业栏失败
${Bk_Runingtime} Get Text xpath=//div[text()="${random_strategyName}"]/../..//td[6]/div
Log 备份运行时间为:${Bk_Runingtime}
Start Command echo -e "BK_Time${Bk_Runingtime} \n">> /mnt/${random_strategyName}.log
${Bk_RuningSpeed} Get Text xpath=//div[text()="${random_strategyName}"]/../..//td[8]/div
Log 备份运行时间为:${Bk_RuningSpeed}
Start Command echo -e "BK_RunningSpeed${Bk_RuningSpeed} \n">> /mnt/${random_strategyName}.log
元素点击 ${BackupSet} 点击进入备份集一栏 定位备份集栏失败
文件备份普通_性能
[Arguments] ${agent_name} ${bk_target} ${bk_type} ${mds_name} ${get_bcinfo_interval}=3600s # 代理名|备份目标名称|备份类型|获取性能信息时间间隔
元素点击 ${Timed_DataProtect} 点击进入定时数据保护页面 定位定时数据保护失败
${date} Evaluate time.strftime('%Y%m%d%H%M%S',time.localtime()) time
${random_strategyName}= Catenate SEPARATOR=_ ${bk_type} ${date}
${createpolicy} Catenate SEPARATOR= 新建了策略[ ${random_strategyName} ]
Set Suite Variable ${random_strategyName}
Set Suite Variable ${createpolicy}
Sleep 5s
元素点击 xpath=//span[text()="${agent_name}"] 点击选择代理 定位代理所在位置失败
元素点击 ${Add_Policy} 点击添加策略按钮 定位添加策略按钮失败
元素点击 ${File_Module} 点击文件组件 定位文件组件失败
元素输入 ${Set_File_PolicyName} ${random_strategyName} 定位策略名输入框失败
元素点击 xpath=//span[contains(text(),"${bk_target}")]/../../td[2]/div 勾选需要备份的文件 定位需要备份的文件失败
元素点击 ${Bk_File_NextStep} 点击下一步进入文件选项 定位下一步按钮失败
元素点击 ${File_More_NextStep} 点击下一步进入任务周期选项 定位下一步按钮失败
元素点击 ${Add_taskcycle} 点击添加任务周期 定位添加任务周期按钮失败
Run Keyword If "${bk_type}"=="完全" 完全备份
... ELSE IF "${bk_type}"=="差量" 差量备份
... ELSE IF "${bk_type}"=="合成" 合成备份
... ELSE IF "${bk_type}"=="累积增量" 累积增量备份
Sleep 2s
元素点击 ${Cycle_Once} 设置任务仅执行一次 定位仅执行一次失败
元素点击 ${Cycle_Confirm} 确定任务周期设置完毕 定位任务周期设置失败
元素点击 ${Cycle_NextStep} 点击下一步进入备份集存储设置界面 定位下一步失败
元素点击 ${Manual_ChooseMDS} 点击勾选手动选择介质 定位选择介质失败
元素点击 ${Select_MDS} 点击介质选择按钮 定位介质选择按钮失败
元素点击 xpath=//option[@label="${mds_name}"] 点击选择指定介质 定位指定介质失败
元素点击 ${Storage_NextStep} 点击下一步进入到备份高级选项 定位下一步失败
Set Focus To Element ${Option_Compress}
Click Element ${Option_Compress}
Sleep 2s
Log 取消压缩
元素点击 ${File_Senior_NextStep} 点击下一步进入到备份信息确认栏 定位下一步失败
元素点击 ${Complete_CreatePolicy} 点击确定按钮完成策略创建 定位确定按钮失败
元素点击 ${Success_Confirm} 确定策略创建成功 策略创建失败
Open Connection ${Plantform_BC_Url}
SSHLibrary.Login root 2008Bc1223!@#
Execute Command systemctl stop firewalld 关闭防火墙
Execute Command /unary/unabackup/bin/nmon -F "${random_strategyName}"_BK_CPU_MEM -s 5 -c 12 -m /mnt 生成备份性能文件
sleep 10s
Open Connection ${File_IP_Lin}
SSHLibrary.Login root unary@2008
Execute Command systemctl stop firewalld 关闭防火墙
Execute Command mkdir /root/top
Start Command echo "CPU_US(%)">> /root/top/${random_strategyName}_bk.log
Execute Command top -b -n 1| grep Cpu \| awk '{print $2}'>>/root/top/${random_strategyName}_bk.log
Start Command echo "---------------------------------">> /root/top/${random_strategyName}_bk.log
Start Command echo "MEM_TOTAL(KB)">> /root/top/${random_strategyName}_bk.log
Execute Command top -b -n 1 \| grep "KiB Mem" \| awk '{print $4}'>>/root/top/${random_strategyName}_bk.log
Start Command echo "---------------------------------">> /root/top/${random_strategyName}_bk.log
Start Command echo "MEM_USED(KB)">> /root/top/${random_strategyName}_bk.log
Execute Command top -b -n 1 \| grep "KiB Mem" \| awk '{print $10}'>>/root/top/${random_strategyName}_bk.log
元素点击 ${Policy_Work} 点击进入作业栏 定位作业栏失败
元素输入 ${Input_PolicyName_Search} ${random_strategyName} 定位策略名输入框失败
元素点击 ${Button_PolicyName_Search} 点击搜索相关作业 定位策略名搜索按钮失败
FOR ${n} IN RANGE 10000
${bk_status} Run Keyword And Return Status Wait Until Page Contains Element xpath=//tbody/tr[1]/td[@data-field="description"]/div[text()="本次备份成功 "]
Run Keyword If "${bk_status}"=="True" Exit For Loop
... ELSE Log 备份未完成
Sleep 30s
END
元素点击 ${BackupSet} 点击进入备份集一栏 定位备份集栏失败
Log 备份完成
Sleep 5s
恢复数据记录
Open Connection 10.10.15.110
SSHLibrary.Login root 2008Bc1223!@#
${Bk_Recovertime} Get Text xpath=//tbody/tr[1]/td[@data-field="runningTime"]/div[1]
Log 备份运行时间为:${Bk_Recovertime}
Start Command echo -e "-------------------------------------- \n">> /mnt/${random_strategyName}.log
Start Command echo -e "Recover_Time${Bk_Recovertime} \n">> /mnt/${random_strategyName}.log
${Bk_RecoverSpeed} Get Text xpath=//tbody/tr[1]/td[@data-field="networkSpeed"]/div[1]
Log 备份运行时间为:${Bk_RecoverSpeed}
Start Command echo -e "Recover_Speed${Bk_RecoverSpeed} \n">> /mnt/${random_strategyName}.log
文件恢复普通
元素点击 Xpath=//*[@id="backupSetTable"]/div[2]/table/tbody//td[3][text()="${random_strategyName}"]/..//span[text()="恢复"] 选择备份集进行恢复 定位恢复按钮失败
元素点击 ${Recover_File} 选择需要恢复的文件 定位需要恢复的文件失败
元素点击 ${Recover_To_Oldpath} 选择恢复路径 定位恢复到原路径失败
元素点击 ${Recover_fileNextstep} 点击下一步进入到文件选项页面 定位下一步定位失败
Sleep 6s
元素点击 ${File_Rec_More_NextStep} 点击下一步进入到恢复高级选项 定位文件选项下一步失败
元素点击 ${File_Rec_Senior_NextStep} 点击下一步进入到恢复信息确认页面 定位高级选项下一步失败
循环点击 ${Recover_fileExec} ${Success_Confirm}
元素点击 ${Success_Confirm} 恢复策略确定创建成功 恢复作业创建成功弹窗定位失败
元素点击 ${Policy_Work} 点击进入作业栏 定位作业栏失败
Open Connection ${Plantform_BC_Url}
SSHLibrary.Login root 2008Bc1223!@#
Execute Command systemctl stop firewalld 关闭防火墙
Execute Command /unary/unabackup/bin/nmon -F "${random_strategyName}"_Recover_CPU_MEM -s 5 -c 12 -m /mnt 生成恢复性能文件
Sleep 10s
Open Connection ${File_IP_Lin}
SSHLibrary.Login root unary@2008
Execute Command systemctl stop firewalld 关闭防火墙
Start Command echo "CPU_US(%)">> /root/top/${random_strategyName}_recover.log
Execute Command top -b -n 1| grep Cpu \| awk '{print $2}'>>/root/top/${random_strategyName}_recover.log
Start Command echo "---------------------------------">> /root/top/${random_strategyName}_recover.log
Start Command echo "MEM_TOTAL(KB)">> /root/top/${random_strategyName}_recover.log
Execute Command top -b -n 1 \| grep "KiB Mem" \| awk '{print $4}'>>/root/top/${random_strategyName}_recover.log
Start Command echo "---------------------------------">> /root/top/${random_strategyName}_recover.log
Start Command echo "MEM_USED(KB)">> /root/top/${random_strategyName}_recover.log
Execute Command top -b -n 1 \| grep "KiB Mem" \| awk '{print $10}'>>/root/top/${random_strategyName}_recover.log
元素输入 ${Input_PolicyName_Search} 恢复策略 定位策略名输入框失败
元素点击 ${Button_PolicyName_Search} 点击搜索相关作业 定位策略名搜索按钮失败
FOR ${n} IN RANGE 10000
${recover_status} Run Keyword And Return Status Wait Until Page Contains Element ${Recover_Success}
Run Keyword If "${recover_status}"=="True" Exit For Loop
... ELSE Log 恢复未完成
Sleep 30s
END
Log 恢复成功
立即执行
[Arguments] ${bk_type} # 立即执行备份类型
元素点击 ${Timed_DataProtect} 点击进入定时数据保护页面 定位定时数据保护失败
元素点击 ${dpm_Protection strategy} 切换到定时保护策略栏 定位定时保护策略功能栏失败
Sleep 2s
元素点击 xpath=//td[text()="${random_strategyName}"]/..//span[text()="立即执行"] 点击策略立即执行 定位立即执行失败
元素点击 ${Exe_File_Bk} 点击展开立即执行下拉框 定位立即执行备份类型失败
Run Keyword If "${bk_type}"=="完全" 立即执行_完全
... ELSE IF "${bk_type}"=="差量" 立即执行_差量
... ELSE IF "${bk_type}"=="累积增量_扫描" 立即执行_累计扫描
... ELSE IF "${bk_type}"=="累积增量_驱动" 立即执行_累计驱动
... ELSE IF "${bk_type}"=="合成备份_完全" 立即执行_合成完全
... ELSE IF "${bk_type}"=="合成备份_增量" 立即执行_合成增量
Sleep 2s
循环点击 ${ExecutePolicy_execute} ${Complie_confirm}
Sleep 15s
元素点击 ${Complie_confirm} 点击确定按钮 定位确定按钮失败
元素点击 ${BackupSet} 点击进入备份集一栏 定位备份集栏失败
Sleep 300s
${out1} get text //*[@id="backupSetTable"]/div[2]/table/tbody/tr[2]/td[5]
Log 备份集类型为${out1}
Comment Sleep 5s
Wait Until Page Contains Element xpath=//*[@id="backupSetTable"]/div[2]/table/tbody/tr[2]/td[3][text()="${random_strategyName}"]/..//td[text()="已完成"] 300s 备份未完成
Log 备份完成
Sleep 5s
立即执行_完全
元素点击 ${Now Full_Bacup} 点击立即执行完全备份 定位完全备份选项失败
立即执行_差量
元素点击 ${Now Difference_Backup} 点击立即执行差量备份 定位差量备份选项失败
立即执行_累计扫描
元素点击 ${Now_Total} 点击立即执行累计增量备份 定位累计增量备份选项失败
元素点击 ${Exe_Total_Bk} 点击展开累计增量备份下拉框 定位累计增量备份下拉框失败
元素点击 ${Exe_Total_Scan} 选择扫描方式进行备份 定位扫描方式失败
立即执行_累计驱动
元素点击 ${Now_Total} 点击立即执行累计增量备份 定位累计增量备份选项失败
元素点击 ${Exe_Total_Bk} 点击展开累计增量备份下拉框 定位累计增量备份下拉框失败
元素点击 ${Exe_Total_Driver} 选择驱动方式进行备份 定位驱动方式失败
立即执行_合成完全
元素点击 ${Now_Compose} 点击立即执行合成备份 定位合成备份选项失败
元素点击 ${Exe_Compose} 点击展开合成备份下拉框 定位合成备份下拉框失败
元素点击 ${Exe_Compose_Full} 选择合成完全方式进行备份 定位合成完全方式失败
立即执行_合成增量
元素点击 ${Now_Compose} 点击立即执行合成备份 定位合成备份选项失败
元素点击 ${Exe_Compose} 点击展开合成备份下拉框 定位合成备份下拉框失败
元素点击 ${Exe_Compose_Incre} 选择合成增量方式进行备份 定位合成增量方式失败
普通文件备份windows
[Arguments] ${agent_name} ${bk_target} ${bk_type} ${mds_name} ${get_bcinfo_interval}=3600s # 代理名|备份目标名称|备份类型|获取性能信息时间间隔
元素点击 ${Timed_DataProtect} 点击进入定时数据保护页面 定位定时数据保护失败
${date} Evaluate time.strftime('%Y%m%d%H%M%S',time.localtime()) time
${random_strategyName}= Catenate SEPARATOR=_ ${bk_type} ${date}
${createpolicy} Catenate SEPARATOR= 新建了策略[ ${random_strategyName} ]
Set Suite Variable ${random_strategyName}
Set Suite Variable ${createpolicy}
Sleep 5s
元素点击 xpath=//span[text()="${agent_name}"] 点击选择代理 定位代理所在位置失败
元素点击 ${Add_Policy} 点击添加策略按钮 定位添加策略按钮失败
元素点击 ${File_Module} 点击文件组件 定位文件组件失败
元素输入 ${Set_File_PolicyName} ${random_strategyName} 定位策略名输入框失败
元素点击 xpath=//span[contains(text(),"${bk_target}")]/../../td[2]/div 勾选需要备份的文件 定位需要备份的文件失败
元素点击 ${Bk_File_NextStep} 点击下一步进入文件选项 定位下一步按钮失败
元素点击 ${File_More_NextStep} 点击下一步进入任务周期选项 定位下一步按钮失败
元素点击 ${Add_taskcycle} 点击添加任务周期 定位添加任务周期按钮失败
Run Keyword If "${bk_type}"=="完全" 完全备份
... ELSE IF "${bk_type}"=="差量" 差量备份
... ELSE IF "${bk_type}"=="合成" 合成备份
... ELSE IF "${bk_type}"=="累积增量" 累积增量备份
Sleep 2s
元素点击 ${Cycle_Once} 设置任务仅执行一次 定位仅执行一次失败
元素点击 ${Cycle_Confirm} 确定任务周期设置完毕 定位任务周期设置失败
元素点击 ${Cycle_NextStep} 点击下一步进入备份集存储设置界面 定位下一步失败
元素点击 ${Manual_ChooseMDS} 点击勾选手动选择介质 定位选择介质失败
元素点击 ${Select_MDS} 点击介质选择按钮 定位介质选择按钮失败
元素点击 xpath=//option[@label="${mds_name}"] 点击选择指定介质 定位指定介质失败
元素点击 ${Storage_NextStep} 点击下一步进入到备份高级选项 定位下一步失败
Set Focus To Element ${Option_Compress}
Click Element ${Option_Compress}
Sleep 2s
Log 取消压缩
元素点击 ${File_Senior_NextStep} 点击下一步进入到备份信息确认栏 定位下一步失败
元素点击 ${Complete_CreatePolicy} 点击确定按钮完成策略创建 定位确定按钮失败
元素点击 ${Success_Confirm} 确定策略创建成功 策略创建失败
Open Connection ${Plantform_BC_Url}
SSHLibrary.Login root 2008Bc1223!@# delay=5s
Execute Command systemctl stop firewalld 关闭防火墙
Execute Command /unary/unabackup/bin/nmon -F "${random_strategyName}"_BK_CPU_MEM -s 5 -c 12 -m /mnt 生成备份性能文件
Sleep 2s
Open Connection ${Agent_windows_IP}
SSHLibrary.Login administrator unary@2008 delay=5s
Sleep 1s
Run Keyword And Ignore Error Execute Command cd /Python27&python GETCPU_MEMORY_bk.py
元素点击 ${Policy_Work} 点击进入作业栏 定位作业栏失败
元素输入 ${Input_PolicyName_Search} ${random_strategyName} 定位策略名输入框失败
元素点击 ${Button_PolicyName_Search} 点击搜索相关作业 定位策略名搜索按钮失败
FOR ${n} IN RANGE 10000
${bk_status} Run Keyword And Return Status Wait Until Page Contains Element xpath=//div[text()="${random_strategyName}"]/../..//td[@data-field="description"]/div[contains(text(),"备份成功")]
Run Keyword If "${bk_status}"=="True" Exit For Loop
... ELSE Log 备份未完成
Sleep 30s
END
Run Keyword If "${bk_status}"=="False" Fail 备份失败
... ELSE Log 备份完成
Sleep 5s
普通文件恢复windows
元素点击 Xpath=//*[@id="backupSetTable"]/div[2]/table/tbody//td[3][text()="${random_strategyName}"]/..//span[text()="恢复"] 选择备份集进行恢复 定位恢复按钮失败
元素点击 ${Recover_File} 选择需要恢复的文件 定位需要恢复的文件失败
元素点击 ${Recover_To_Oldpath} 选择恢复路径 定位恢复到原路径失败
元素点击 ${Recover_fileNextstep} 点击下一步进入到文件选项页面 定位下一步定位失败
Sleep 6s
元素点击 ${File_Rec_More_NextStep} 点击下一步进入到恢复高级选项 定位文件选项下一步失败
元素点击 ${File_Rec_Senior_NextStep} 点击下一步进入到恢复信息确认页面 定位高级选项下一步失败
循环点击 ${Recover_fileExec} ${Success_Confirm}
元素点击 ${Success_Confirm} 恢复策略确定创建成功 恢复作业创建成功弹窗定位失败
元素点击 ${Policy_Work} 点击进入作业栏 定位作业栏失败
Open Connection ${Plantform_BC_IP_Des}
SSHLibrary.Login root 2008Bc1223!@# delay=5s
Execute Command systemctl stop firewalld 关闭防火墙
Execute Command /unary/unabackup/bin/nmon -F "${random_strategyName}"_Recover_CPU_MEM -s 5 -c 12 -m /mnt 生成恢复性能文件
Sleep 10s
Open Connection ${Agent_windows_IP}
SSHLibrary.Login administrator unary@2008
Sleep 1s
Run Keyword And Ignore Error Execute Command cd /Python27&python GETCPU_MEMORY_recover.py
元素输入 ${Input_PolicyName_Search} 恢复策略 定位策略名输入框失败
元素点击 ${Button_PolicyName_Search} 点击搜索相关作业 定位策略名搜索按钮失败
FOR ${n} IN RANGE 10000
${recover_status} Run Keyword And Return Status Wait Until Page Contains Element ${Recover_Success}
Run Keyword If "${recover_status}"=="True" Exit For Loop
... ELSE Log 恢复未完成
Sleep 30s
END
Log 恢复成功
取消压缩
Log 点击取消压缩
Comment Set Focus To Element ${Option_Compress}
Comment Click Element ${Option_Compress}
计算MD5值
[Arguments] ${ip} ${user} ${pwd} # Linux_ip地址|用户名|密码
Open Connection ${ip}
SSHLibrary.Login ${user} ${pwd}
${origin_file_md5} Execute Command md5sum /A.txt|cut -d" " -f1
Set Suite Variable ${origin_file_md5}
Log 源文件MD5值获取完毕
Close Connection
Log 源文件MD5值计算完毕
校验
Set Focus To Element ${Option_Check}
Click Element ${Option_Check}
Log 勾选校验选项
Sleep 2s
校验任务检测
[Arguments] ${agent_name} # 代理名称
元素点击 ${Timed_DataProtect} 点击进入定时数据保护页面 定位定时数据保护失败
元素点击 xpath=//span[text()="${agent_name}"] 点击选择代理 定位代理所在位置失败
Mouse Out xpath=//span[text()="${agent_name}"]
Sleep 120s
元素点击 ${BackupSet} 进入备份集一栏 定位备份集栏失败
元素输入 ${DPMFind_Policy} ${random_strategyName} 策略名输入失败
Sleep 2s
元素点击 ${DPMButton_Searchbutton} 点击搜索按钮 定位搜索按钮失败
Sleep 2s
Wait Until Element Is Visible xpath=//div[@id="backupSetTable"]//tr[2]/td[text()="${random_strategyName}"]/../td[text()="校验成功"] 120s 定位校验作业失败
Log 校验成功
备份集清理状态校验
[Arguments] ${agent_name} ${result} # 代理名称|清理结果yes表示清理no表示未清理
元素点击 ${Timed_DataProtect} 点击进入定时数据保护页面 定位定时数据保护失败
Sleep 2s
元素点击 xpath=//span[text()="${agent_name}"] 点击选择代理 定位代理所在位置失败
Mouse Out xpath=//span[text()="${agent_name}"]
Sleep 180s
元素点击 ${BackupSet} 进入备份集一栏 定位备份集栏失败
元素输入 ${DPMFind_Policy} ${random_strategyName} 策略名输入失败
Sleep 2s
元素点击 ${DPMButton_Searchbutton} 点击搜索按钮 定位搜索按钮失败
Sleep 2s
${result_now} Run Keyword And Return Status Wait Until Element Is Visible xpath=//div[@id="backupSetTable"]//td[text()="${random_strategyName}"]/../td[text()="文件差量备份"] 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
备份集清理状态校验Mysql增量备份集
[Arguments] ${agent_name} ${result} # 代理名称|清理结果yes表示清理no表示未清理
[Documentation] 校验mysql指定备份集是否被清理成功
元素点击 ${Timed_DataProtect} 点击进入定时数据保护页面 定位定时数据保护失败
Sleep 2s
元素点击 xpath=//span[text()="${agent_name}"] 点击选择代理 定位代理所在位置失败
Mouse Out xpath=//span[text()="${agent_name}"]
Sleep 180s
元素点击 ${BackupSet} 进入备份集一栏 定位备份集栏失败
元素输入 ${DPMFind_Policy} ${random_strategyName} 策略名输入失败
Sleep 2s
元素点击 ${DPMButton_Searchbutton} 点击搜索按钮 定位搜索按钮失败
Sleep 2s
${result_now} Run Keyword And Return Status Wait Until Element Is Visible xpath=//div[@id="backupSetTable"]//td[text()="${random_strategyName}"]/../td[text()="MySQL逻辑增量备份"] 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 2s
定时代理选择
[Arguments] ${agent_name}
元素点击 ${Timed_DataProtect} 点击进入定时数据保护页面 定位定时数据保护失败
元素输入 ${Search_Agent} ${agent_name} 定位代理名称输入框失败
元素点击 ${Timed_DataProtect} 点击进入定时数据保护页面 定位定时数据保护失败
元素点击 xpath=//span[text()="${agent_name}"] 点击选择代理 定位代理所在位置失败
文件恢复_同步
[Arguments] ${agent_name} # 恢复到的主机名称
元素点击 ${BackupSet} 点击进入备份集一栏 定位备份集栏失败
${BK_Restoreid}= Catenate SEPARATOR= compileBackupRecId ${random_strategyName}
元素点击 xpath=//span[@id="${BK_Restoreid}"] 选择备份集进行恢复 定位恢复按钮失败
Sleep 5s
元素输入 ${Input_Sync_Name} ${Sys_Admin} 定位鉴权用户名输入框失败
元素输入 ${Input_Sync_Pwd} ${WebPWD} 定位鉴权密码输入框失败
元素点击 ${Sync_Confirm} 点击确定完成鉴权 定位鉴权确定按钮失败
Sleep 5s
元素点击 ${Success_Confirm} 点击确定关闭弹窗 定位确定按钮失败
Sleep 5s
元素点击 ${Select_Hostname} 点击展开主机名称 定位主机名称下拉框失败
元素点击 xpath=//dd[contains(text(),'${agent_name}')] 选择恢复到的主机名称 定位恢复到的主机名称失败
Sleep 5s
元素点击 ${Recover_File} 选择需要恢复的文件 定位需要恢复的文件失败
Sleep 5s
元素点击 ${Recover_To_Oldpath} 选择恢复路径 定位恢复到原路径失败
元素点击 ${Recover_fileNextstep} 点击下一步进入到文件选项页面 定位下一步定位失败
Sleep 6s
元素点击 ${File_Rec_More_NextStep} 点击下一步进入到恢复高级选项 定位文件选项下一步失败
元素点击 ${Recover_fileExec} 点击执行按钮 定位执行按钮失败
循环点击 ${window_button_recover_confirm} ${Success_Confirm}
元素点击 ${Success_Confirm} 恢复策略确定创建成功 恢复作业创建成功弹窗定位失败
元素输入 ${Search_Agent} ${Plantform_BC_Agent} 定位代理名称输入框失败
元素点击 xpath=//span[text()="${agent_name}"] 点击选择代理 定位代理所在位置失败
Sleep 6s
元素点击 ${Policy_Work} 点击进入作业栏 定位作业栏失败
Sleep 60s
元素输入 ${Input_All_Policy} 恢复策略 定位所有策略输入框失败
元素点击 ${Search_By_Policy} 点击查找筛选恢复策略 定位查找按钮失败
Wait Until Page Contains Element ${Recover_Success} 300s 恢复失败
sleep 2s
Log 恢复成功
DPM文件备份
[Arguments] ${agent_name} ${bk_target} ${bk_type} ${mds_name} ${encryption_attr} ${compress_attr} ${dedup_attr} ${check_attr}=0 # 代理名|备份目标名称|备份类型|加密|压缩|重删|校验(默认不勾选)
元素点击 ${Timed_DataProtect} 点击进入定时数据保护页面 定位定时数据保护失败
${date} Evaluate time.strftime('%Y%m%d%H%M%S',time.localtime()) time
${random_strategyName}= Catenate SEPARATOR=_ ${bk_type} ${date}
${createpolicy} Catenate SEPARATOR= 新建了策略[ ${random_strategyName} ]
Set Suite Variable ${random_strategyName}
Set Suite Variable ${createpolicy}
Sleep 5s
元素点击 xpath=//span[text()="${agent_name}"] 点击选择代理 定位代理所在位置失败
元素点击 ${BackupSet} 点击进入备份集页面 定位备份集按钮失败
元素点击 ${dpm_Protection strategy} 点击进入保护策略页面 定位保护策略按钮失败
元素点击 ${Add_Policy} 点击添加策略按钮 定位添加策略按钮失败
元素点击 ${File_Module} 点击文件组件 定位文件组件失败
元素输入 ${Set_File_PolicyName} ${random_strategyName} 定位策略名输入框失败
元素点击 xpath=//span[contains(text(),"${bk_target}")]/../../td[2]/div 勾选需要备份的文件 定位需要备份的文件失败
元素点击 ${Bk_File_NextStep} 点击下一步进入文件选项页面 定位下一步按钮失败
元素点击 ${Bk_File_NextStep_Config} 点击下一步进入任务周期页面 定位下一步按钮失败
元素点击 ${Add_taskcycle} 点击添加任务周期 定位添加任务周期按钮失败
Run Keyword If "${bk_type}"=="完全" File_KeyWord.完全备份
... ELSE IF "${bk_type}"=="差量" File_KeyWord.差量备份
... ELSE IF "${bk_type}"=="累积增量_扫描" 累积增量备份_扫描
... ELSE IF "${bk_type}"=="累积增量_驱动" 累积增量备份_驱动
... ELSE Fail 定位备份类型失败
元素点击 ${Cycle_Once} 设置任务仅执行一次 定位仅执行一次失败
元素点击 ${Cycle_Confirm} 确定任务周期设置完毕 定位任务周期设置失败
元素点击 ${Cycle_NextStep} 点击下一步进入备份集存储设置界面 定位下一步失败
元素点击 ${Manual_ChooseMDS} 点击勾选手动选择介质 定位选择介质失败
元素点击 ${Select_MDS} 点击介质选择按钮 定位介质选择按钮失败
元素点击 xpath=//option[@label="${mds_name}"] 点击选择指定介质 定位指定介质失败
Run Keyword If ${dedup_attr}==1 重删
... ELSE log 不选择重删
元素点击 ${Storage_NextStep} 点击下一步进入到备份高级选项 定位下一步失败
Run Keyword If ${encryption_attr}==1 加密
... ELSE log 不选择加密
Run Keyword If ${compress_attr}==1 压缩
... ELSE 取消压缩
Comment Run Keyword If ${check_attr}==1 校验
元素点击 ${Complete_Policy_Create_No_Info} 点击确定按钮完成策略创建 定位确定按钮失败
元素点击 ${Success_Confirm} 确定策略创建成功 策略创建失败
元素点击 ${BackupSet} 点击进入备份集一栏 定位备份集栏失败
Sleep 60s
Wait Until Page Contains Element Xpath=//*[@id="backupSetTable"]/div[2]/table/tbody/tr[2]/td[3][text()="${random_strategyName}"]/..//td[text()="已完成"] 120s 备份未完成
Log 备份完成
Sleep 2s
编辑策略
[Arguments] ${mds_name} ${new_encryption_attr} ${new_compress_attr} ${new_check_attr}
元素点击 ${dpm_Protection strategy} 切换到定时保护策略栏 定位定时保护策略栏失败
元素点击 xpath=//td[text()="${random_strategyName}"]/..//span[text()="编辑"] 点击编辑按钮 定位编辑按钮失败
${date} Evaluate time.strftime('%Y%m%d%H%M%S',time.localtime()) time
${new_policy_name} Catenate SEPARATOR=_ 编辑策略 ${date}
Set Suite Variable ${new_policy_name}
元素输入 ${Input_File_Policy_Name} ${new_policy_name} 定位编辑策略名输入框失败
Sleep 5s
循环点击 ${Edit_Bk_Storage} ${Edit_Select_Media}
循环点击 ${Edit_Select_Media} xpath=//h4[text()="编辑策略"]/../..//select[@ng-model="item.media"]/option[@label="${mds_name}"]
元素点击 xpath=//h4[text()="编辑策略"]/../..//select[@ng-model="item.media"]/option[@label="${mds_name}"] 点击选择指定介质 定位指定介质失败
元素点击 ${Bk_Senior_Config} 点击进入备份高级选项 定位编辑下备份高级选项失败
Run Keyword If ${new_encryption_attr}==1 Click Element ${Edit_Encryption}
Run Keyword If ${new_compress_attr}==1 Click Element ${Edit_Compress}
Run Keyword If ${new_check_attr}==1 Click Element ${Edit_Check}
元素点击 ${Button_File_Finish} 点击完成策略编辑 定位完成策略编辑失败
元素点击 ${Success_Confirm} 确认编辑策略完成 定位策略编辑确认框失败
sleep 2s
元素点击 ${BackupSet} 点击进入备份集一栏 定位备份集栏失败
Sleep 60s
Wait Until Page Contains Element Xpath=//*[@id="backupSetTable"]/div[2]/table/tbody/tr[2]/td[3][text()="${new_policy_name}"]/..//td[text()="已完成"] 300s 备份未完成
Log 备份完成
Sleep 2s
策略校验
[Arguments] ${new_encryption_attr} ${new_compress_attr} ${new_check_attr}
Open Connection ${Plantform_BC_IP}
SSHLibrary.Login ${Plantform_BC_Name} ${Plantform_BC_PWD}
${Edit_Encryption_Xml}= Set Variable If ${new_encryption_attr}==1 <encrypt><type>0</type> <encrypt/><ifgstp>
${Edit_Compress_Xml}= Set Variable If ${new_compress_attr}==1 <compress_type_f>lz4</compress_type_f> <compress_type_f>no</compress_type_f>
${Edit_Check_Xml}= Set Variable If ${new_check_attr}==1 <checkalg>md5</checkalg></bksetcheck> </basicinfo><bksetcheck/>
write cd /tmp;ll -t|grep xml|awk 'NR==1'|awk '{print$9}'|xargs cat |grep -o "${new_policy_name}"
Sleep 2s
${Edit_Policy_Name_Result}= read
${Policyname_result} Run Keyword And Return Status Should Contain ${Edit_Policy_Name_Result} ${new_policy_name}
write cd /tmp;ll -t|grep xml|awk 'NR==1'|awk '{print$9}'|xargs cat |grep -o "${Edit_Encryption_Xml}"
Sleep 2s
${Edit_Encryption_Result}= read
${Encryption_result} Run Keyword And Return Status Should Contain ${Edit_Encryption_Result} encrypt
write cd /tmp;ll -t|grep xml|awk 'NR==1'|awk '{print$9}'|xargs cat |grep -o "${Edit_Compress_Xml}"
Sleep 2s
${Edit_Compress_Result}= read
${Compress_result} Run Keyword And Return Status Should Contain ${Edit_Compress_Result} compress_type_f
write cd /tmp;ll -t|grep xml|awk 'NR==1'|awk '{print$9}'|xargs cat |grep -o "${Edit_Check_Xml}"
Sleep 2s
${Edit_Check_Result}= read
${Check_result} Run Keyword And Return Status Should Contain ${Edit_Check_Result} bksetcheck
Run Keyword If "${Policyname_result}"=="True" Log 策略下发成功
... ELSE Fail 策略名修改下发失败
Run Keyword If "${Encryption_result}"=="True" Log 策略下发成功
... ELSE Fail 策略加密下发失败
Run Keyword If "${Compress_result}"=="True" Log 策略下发成功
... ELSE Fail 策略压缩下发失败
Run Keyword If "${Check_result}"=="True" Log 策略下发成功
... ELSE Fail 策略校验下发失败
Close Connection
文件备份集删除加载_备份链
[Arguments] ${agent_name}
[Documentation] 只会删除和加载第二行的备份集
元素点击 ${Timed_DataProtect} 点击进入定时数据保护页面 定位定时数据保护失败
元素点击 Xpath=//span[text()="${agent_name}"] 选择备份代理 定位备份代理失败
Mouse Out Xpath=//span[text()="${agent_name}"]
元素点击 ${BackupSet} 点击进入备份集一栏 定位备份集栏失败
Sleep 3s
循环点击 xpath=//td[text()="${random_strategyName}"]/..//div[@id="compileButtonBackup1"]/span[text()="删除"] ${Del_Local_Confirm}
Sleep 3s
元素点击 ${Del_Local_Confirm} 点击确定删除备份集 定位确定按钮失败
元素点击 ${Success_Confirm} 确定完成备份集删除 定位备份集删除确定弹框失败
${Del_Result} Run Keyword And Return Status Wait Until Element Is Visible xpath=//td[text()="${random_strategyName}"]/..//div[@id="compileButtonBackup1"]/span[text()="删除"] 10s 备份集删除失败
Run Keyword If ${Del_Result}==True 归档备份集删除 ${random_strategyName}
Log 备份集删除成功
元素点击 ${Archive} 点击进入创建归档策略栏 定位左侧创建归档策略栏失败
元素点击 ${Arched_Bk} 点击切换到已归档备份集一栏 定位已归档备份集失败
元素输入 ${Input_Arch_PolicyName} ${archive_policy} 定位归档策略输入框失败
元素点击 ${Button_Search_Policy} 点击搜索查询已归档备份集 定位搜索按钮失败
Sleep 5s
元素点击 xpath=//tr[2]//div[text()="${random_strategyName}"]/../..//button[text()="加载"] 点击加载备份集 定位备份集加载按钮失败
元素输入 ${Input_Load_PolicyName} 加载${random_strategyName}备份集 定位加载策略输入框失败
元素点击 ${Complete_Load_Policy} 点击完成加载策略 定位完成按钮失败
元素点击 ${Success_Confirm} 确定备份集加载任务启动成功 定位备份集加载确定弹框失败
元素点击 ${Archive_Monitor} 点击切换到归档任务监控界面 定位归档任务监控栏失败
元素输入 ${Archive_Task_Name} ${random_strategyName} 定位归档任务输入框失败
元素点击 ${Search_Archive_Task} 点击查询按钮搜索归档任务 定位归档任务查询按钮失败
FOR ${n} IN RANGE 15
${jz_status} Run Keyword And Return Status Wait Until Element Is Visible xpath=//td[contains(text(),"加载成功")]
Run Keyword If "${jz_status}"=="True" Exit For Loop
... ELSE Log 加载未完成
Sleep 30s
END
Run Keyword If "${jz_status}"=="False" Fail
... ELSE Log 加载成功
元素点击 ${Timed_DataProtect} 点击进入定时数据保护页面 定位定时数据保护失败
元素点击 Xpath=//span[text()="${agent_name}"] 选择备份代理 定位备份代理失败
Mouse Out Xpath=//span[text()="${agent_name}"]
元素点击 ${BackupSet} 点击进入备份集一栏 定位备份集栏失败
Sleep 2s
文件恢复_归档
[Arguments] ${Num} # 备份集的行数
Comment 元素点击 Xpath=//*[@id="backupSetTable"]/div[2]/table/tbody//td[3][text()="${random_strategyName}"]/..//span[text()="恢复"] 选择备份集进行恢复 定位恢复按钮失败
元素点击 Xpath=//*[@id="backupSetTable"]/div[2]/table/tbody//td[3][text()="${random_strategyName}"]/..//div[@id="compileButtonBackup${Num}"]/span[text()="恢复"] 选择备份集进行恢复 定位恢复按钮失败
Sleep 5s
元素点击 ${Recover_File} 选择需要恢复的文件 定位需要恢复的文件失败
Sleep 5s
元素点击 ${Recover_To_Oldpath} 选择恢复路径 定位恢复到原路径失败
元素点击 ${Recover_fileNextstep} 点击下一步进入到恢复高级选项 恢复目标下一步定位失败
Sleep 6s
元素点击 ${File_Rec_More_NextStep} 点击下一步进入到恢复高级选项 定位文件选项下一步失败
循环点击 ${Recover_fileExec} ${window_button_recover_confirm}
元素点击 ${window_button_recover_confirm} 点击确定按钮完成恢复操作 定位恢复弹窗确定按钮失败
元素点击 ${Success_Confirm} 恢复策略确定创建成功 恢复作业创建成功弹窗定位失败
Sleep 6s
元素点击 ${Policy_Work} 点击进入作业栏 定位作业栏失败
Sleep 60s
元素输入 ${Input_All_Policy} 恢复策略 定位所有策略输入框失败
元素点击 ${Search_By_Policy} 点击查找筛选恢复策略 定位查找按钮失败
Wait Until Page Contains Element ${Recover_Success} 300s 恢复失败
sleep 2s
Log 恢复成功
清空后台策略
[Arguments] ${ip} ${user} ${pwd}
Open Connection ${ip}
SSHLibrary.Login ${user} ${pwd}
log 新建备份所需文件
Execute Command rm -rf /tmp/*.xml
Close Connection
Log 源文件MD5值计算完毕
定时文件备份集删除_备份链
[Arguments] ${agent_name}
[Documentation] 只会删除和加载第二行的备份集
元素点击 ${Timed_DataProtect} 点击进入定时数据保护页面 定位定时数据保护失败
元素点击 Xpath=//span[text()="${agent_name}"] 选择备份代理 定位备份代理失败
Mouse Out Xpath=//span[text()="${agent_name}"]
元素点击 ${BackupSet} 点击进入备份集一栏 定位备份集栏失败
Sleep 2s
元素点击 xpath=//td[text()="${random_strategyName}"]/..//div[@id="compileButtonBackup1"]/span[text()="删除"] 点击删除备份集 定位删除按钮失败
Sleep 2s
元素点击 ${Del_Local_Confirm} 点击确定删除备份集 定位确定按钮失败
元素点击 ${Success_Confirm} 确定完成备份集删除 定位备份集删除确定弹框失败
Wait Until Element Is Not Visible xpath=//td[text()="${random_strategyName}"]/..//div[@id="compileButtonBackup1"]/span[text()="删除"] 10s 备份集删除失败
Log 备份集删除成功
定时文件备份集删除_独立备份集
[Arguments] ${agent_name}
元素点击 ${Timed_DataProtect} 点击进入定时数据保护页面 定位定时数据保护失败
元素点击 Xpath=//span[text()="${agent_name}"] 选择备份代理 定位备份代理失败
Mouse Out Xpath=//span[text()="${agent_name}"]
元素点击 ${BackupSet} 点击进入备份集一栏 定位备份集栏失败
Sleep 2s
元素点击 xpath=//td[text()="${random_strategyName}"]/..//div[@id="compileButtonBackup0"]/span[text()="删除"] 点击删除备份集 定位删除按钮失败
Sleep 2s
Comment 元素点击 ${Del_All_Bk_DPM} 点击完全删除备份集 定位完全删除本地备份集失败
元素点击 ${Del_Local_Confirm} 点击确定删除备份集 定位确定按钮失败
元素点击 ${Success_Confirm} 确定完成备份集删除 定位备份集删除确定弹框失败
Sleep 30s
磁带清理扫描
元素点击 ${Storage} 进入存储管理页面 定位存储管理栏失败
元素点击 ${Node_Manage} 点击进入到介质节点管理页面 定位介质节点管理页面失败
元素点击 ${Default_BC_Node} 点击介质节点管理下的默认黑方卡片 定位默认黑方节点卡片失败
元素点击 ${Tape_Manager} 进入磁带库管理页面 定位磁带库管理失败
元素点击 ${Tape_Pool} 点击进入磁带存储池栏 定位磁带存储池失败
Sleep 2s
循环点击 xpath=//span[text()="${D2D2T}"] ${Tape_ChooseFirst}
Sleep 5s
元素点击 ${Tape_ChooseFirst} 点击存储池第一个磁带的详情 详情位置定位失败
Sleep 300s
元素点击 ${Tape_CleanTape} 点击清除磁带按钮 清除磁带按钮定位失败
元素点击 ${Tape_CleanTapeSure} 点击清除磁带确认按钮 清除磁带确认按钮定位失败
元素点击 ${Tape_CleanTapeOK} 点击确认磁带清除成功 磁带清理成功确认按钮定位失败
元素点击 ${Tape_TapeScanClose} 点击关闭磁带详情页面成功 定位关闭磁带详情按钮失败
Comment 元素点击 ${Tape_TapeScan} 点击扫描按钮 扫描按钮定位失败
Comment 元素点击 ${Tape_CleanTapeOK} 点击确认扫描下发成功 确定按钮定位失败
元素点击 ${Archive} 点击进入创建归档策略栏 定位左侧创建归档策略栏失败
元素点击 ${Tape_Scan_List} 点击切换到归档介质列表栏 定位归档介质列表失败
Sleep 10s
元素点击 ${Start_Scan_Tape} 点击开始扫描磁带 定位扫描磁带失败
Sleep 5s
元素点击 ${Success_Confirm} 点击确定弹窗,开始扫描 定位确定开始扫描弹窗失败
Sleep 10s
定时文件备份集加载_备份链
[Arguments] ${agent_name}
[Documentation] 只会删除和加载第二行的备份集
元素点击 ${Archive} 点击进入创建归档策略栏 定位左侧创建归档策略栏失败
元素点击 ${Arched_Bk} 点击切换到已归档备份集一栏 定位已归档备份集失败
元素输入 ${Input_Arch_PolicyName} ${archive_policy} 定位归档策略输入框失败
元素点击 ${Button_Search_Policy} 点击搜索查询已归档备份集 定位搜索按钮失败
元素点击 xpath=//tr[2]//div[text()="${random_strategyName}"]/../..//button[text()="加载"] 点击加载备份集 定位备份集加载按钮失败
元素输入 ${Input_Load_PolicyName} 加载${random_strategyName}备份集 定位加载策略输入框失败
元素点击 ${Complete_Load_Policy} 点击完成加载策略 定位完成按钮失败
元素点击 ${Success_Confirm} 确定备份集加载任务启动成功 定位备份集加载确定弹框失败
元素点击 ${Archive_Monitor} 点击切换到归档任务监控界面 定位归档任务监控栏失败
元素输入 ${Archive_Task_Name} ${random_strategyName} 定位归档任务输入框失败
元素点击 ${Search_Archive_Task} 点击查询按钮搜索归档任务 定位归档任务查询按钮失败
FOR ${n} IN RANGE 15
${jz_status} Run Keyword And Return Status Wait Until Element Is Visible xpath=//td[contains(text(),"加载成功")]
Run Keyword If "${jz_status}"=="True" Exit For Loop
... ELSE Log 加载未完成
Sleep 30s
END
Run Keyword If "${jz_status}"=="False" Fail
... ELSE Log 加载成功
元素点击 ${Timed_DataProtect} 点击进入定时数据保护页面 定位定时数据保护失败
元素点击 Xpath=//span[text()="${agent_name}"] 选择备份代理 定位备份代理失败
Mouse Out Xpath=//span[text()="${agent_name}"]
元素点击 ${BackupSet} 点击进入备份集一栏 定位备份集栏失败
Sleep 2s
立即执行_归档
[Arguments] ${bk_type} ${agent_name} # 立即执行备份类型|代理名称
元素点击 ${Timed_DataProtect} 点击进入定时数据保护页面 定位定时数据保护失败
元素点击 xpath=//span[text()="${agent_name}"] 点击选择代理 定位代理所在位置失败
元素点击 ${dpm_Protection strategy} 切换到定时保护策略栏 定位定时保护策略功能栏失败
Sleep 2s
元素点击 xpath=//td[text()="${random_strategyName}"]/..//span[text()="立即执行"] 点击策略立即执行 定位立即执行失败
元素点击 ${Exe_File_Bk} 点击展开立即执行下拉框 定位立即执行备份类型失败
Run Keyword If "${bk_type}"=="完全" 立即执行_完全
... ELSE IF "${bk_type}"=="差量" 立即执行_差量
... ELSE IF "${bk_type}"=="累积增量_扫描" 立即执行_累计扫描
... ELSE IF "${bk_type}"=="累积增量_驱动" 立即执行_累计驱动
... ELSE IF "${bk_type}"=="合成备份_完全" 立即执行_合成完全
... ELSE IF "${bk_type}"=="合成备份_增量" 立即执行_合成增量
Sleep 2s
循环点击 ${ExecutePolicy_execute} ${Complie_confirm}
Sleep 5s
元素点击 ${Complie_confirm} 点击确定按钮 定位确定按钮失败
元素点击 ${BackupSet} 点击进入备份集一栏 定位备份集栏失败
Sleep 20s
Wait Until Page Contains Element Xpath=//*[@id="backupSetTable"]/div[2]/table/tbody/tr[2]/td[3][text()="${random_strategyName}"]/..//td[text()="已完成"] 300s 备份未完成
Log 备份完成
Sleep 5s
定时文件备份集加载_独立备份集
[Arguments] ${agent_name}
[Documentation] 只会删除和加载第二行的备份集
元素点击 ${Archive} 点击进入创建归档策略栏 定位左侧创建归档策略栏失败
元素点击 ${Arched_Bk} 点击切换到已归档备份集一栏 定位已归档备份集失败
元素输入 ${Input_Arch_PolicyName} ${archive_policy} 定位归档策略输入框失败
元素点击 ${Button_Search_Policy} 点击搜索查询已归档备份集 定位搜索按钮失败
Sleep 5s
元素点击 xpath=//tr[1]//div[text()="${random_strategyName}"]/../..//button[text()="加载"] 点击加载备份集 定位备份集加载按钮失败
元素输入 ${Input_Load_PolicyName} 加载${random_strategyName}备份集 定位加载策略输入框失败
元素点击 ${Complete_Load_Policy} 点击完成加载策略 定位完成按钮失败
元素点击 ${Success_Confirm} 确定备份集加载任务启动成功 定位备份集加载确定弹框失败
元素点击 ${Archive_Monitor} 点击切换到归档任务监控界面 定位归档任务监控栏失败
元素输入 ${Archive_Task_Name} ${random_strategyName} 定位归档任务输入框失败
元素点击 ${Search_Archive_Task} 点击查询按钮搜索归档任务 定位归档任务查询按钮失败
FOR ${n} IN RANGE 15
${jz_status} Run Keyword And Return Status Wait Until Element Is Visible xpath=//td[contains(text(),"加载成功")]
Run Keyword If "${jz_status}"=="True" Exit For Loop
... ELSE Log 加载未完成
Sleep 30s
END
Run Keyword If "${jz_status}"=="False" Fail
... ELSE Log 加载成功
元素点击 ${Timed_DataProtect} 点击进入定时数据保护页面 定位定时数据保护失败
元素点击 Xpath=//span[text()="${agent_name}"] 选择备份代理 定位备份代理失败
Mouse Out Xpath=//span[text()="${agent_name}"]
元素点击 ${BackupSet} 点击进入备份集一栏 定位备份集栏失败
Sleep 2s
归档路径查询_文件
[Arguments] ${agent_name} ${tape_name} # 代理名称|磁盘名称
元素点击 ${Timed_DataProtect} 点击进入定时数据保护页面 定位定时数据保护失败
元素点击 Xpath=//span[text()="${agent_name}"] 选择备份代理 定位备份代理失败
Mouse Out Xpath=//span[text()="${agent_name}"]
元素点击 ${BackupSet} 点击进入备份集一栏 定位备份集栏失败
Sleep 2s
Wait Until Element Is Visible xpath=//td[text()="${random_strategyName}"]/../../tr[2]/td[text()="已归档"] 5s 未找到已归档的备份集
元素点击 xpath=//td[text()="${random_strategyName}"]/..//span[text()="详情"] 点击展开备份集详情 定位详情按钮失败
元素点击 ${Check_Archpath} 点击查询归档路径 定位归档路径查询按钮失败
Wait Until Element Is Visible xpath=//div[text()="${tape_name}"] 15s 归档路径查询失败
归档备份集删除
[Arguments] ${random_strategyName}
元素点击 xpath=//td[text()="${random_strategyName}"]/..//div[@id="compileButtonBackup1"]/span[text()="删除"] 点击删除备份集 定位删除按钮失败
Sleep 2s
元素点击 ${Del_Local_Confirm} 点击确定删除备份集 定位确定按钮失败
元素点击 ${Success_Confirm} 确定完成备份集删除 定位备份集删除确定弹框失败
${Del_Result} Run Keyword And Return Status Wait Until Element Is Visible xpath=//td[text()="${random_strategyName}"]/..//div[@id="compileButtonBackup1"]/span[text()="删除"] 10s 备份集删除失败
修改备份数据源
[Arguments] ${ip} ${user} ${pwd} # Linux_ip地址|用户名|密码
[Documentation] 功能:修改备份文件
...
... 使用方法在A.txt中插入当前时间点
...
... 变量:无
Open Connection ${ip}
SSHLibrary.Login ${user} ${pwd}
log 修改备份所需文件
Execute Command service iptables stop
Comment Execute Command rm -rf /A.txt
Comment Execute Command touch /A.txt
Comment Execute Command chmod 755 /A.txt
Execute Command date >> /A.txt
sleep 2s
write [ -f /A.txt ] && echo yes || echo no
${add} read
Should Contain ${add} yes
${origin_file_md5} Execute Command md5sum /A.txt|cut -d" " -f1
Set Suite Variable ${origin_file_md5}
Log 源文件MD5值${origin_file_md5}
Close Connection
Log 源文件MD5值计算完毕
文件备份_清理校验
[Arguments] ${agent_name} ${bk_target} ${bk_type} ${mds_name} ${encryption_attr} ${compress_attr} ${dedup_attr} ${check_attr}=0 # 代理名|备份目标名称|备份类型|加密|压缩|重删|校验(默认不勾选)
[Documentation] 创建文件备份策略,设置备份保留周期,可根据传入的参数进行备份类型,介质,加密压缩重删等参数进行选择
...
... 新增备份集页面搜索操作,防止修改时间对备份集状态的判断造成影响
...
... 清理校验后是指在执行TC07_Bk_CheckClean后经过修改时间使用此关键字不受修改时间的影响
元素点击 ${Timed_DataProtect} 点击进入定时数据保护页面 定位定时数据保护失败
${date} Evaluate time.strftime('%Y%m%d%H%M%S',time.localtime()) time
${random_strategyName}= Catenate SEPARATOR=_ ${bk_type} ${date}
${createpolicy} Catenate SEPARATOR= 新建了策略[ ${random_strategyName} ]
Set Suite Variable ${random_strategyName}
Set Suite Variable ${createpolicy}
Sleep 5s
元素点击 xpath=//span[text()="${agent_name}"] 点击选择代理 定位代理所在位置失败
循环点击 ${Add_Policy} ${File_Module}
元素点击 ${File_Module} 点击文件组件 定位文件组件失败
元素输入 ${Set_File_PolicyName} ${random_strategyName} 定位策略名输入框失败
元素点击 xpath=//span[contains(text(),"${bk_target}")]/../../td[2]/div 勾选需要备份的文件 定位需要备份的文件失败
元素点击 ${Bk_File_NextStep} 点击下一步进入文件选项 定位下一步按钮失败
元素点击 ${File_More_NextStep} 点击下一步进入任务周期选项 定位下一步按钮失败
元素点击 ${Add_taskcycle} 点击添加任务周期 定位添加任务周期按钮失败
Run Keyword If "${bk_type}"=="完全" File_KeyWord.完全备份
... ELSE IF "${bk_type}"=="差量" File_KeyWord.差量备份
... ELSE IF "${bk_type}"=="累积增量_扫描" 累积增量备份_扫描
... ELSE IF "${bk_type}"=="累积增量_驱动" 累积增量备份_驱动
... ELSE Fail 定位备份类型失败
元素点击 ${Cycle_Once} 设置任务仅执行一次 定位仅执行一次失败
元素点击 ${Cycle_Confirm} 确定任务周期设置完毕 定位任务周期设置失败
元素点击 ${Cycle_NextStep} 点击下一步进入备份集存储设置界面 定位下一步失败
元素点击 ${Manual_ChooseMDS} 点击勾选手动选择介质 定位选择介质失败
元素点击 ${Select_MDS} 点击介质选择按钮 定位介质选择按钮失败
元素点击 xpath=//option[@label="${mds_name}"] 点击选择指定介质 定位指定介质失败
元素点击 ${Storage_NextStep} 点击下一步进入到备份高级选项 定位下一步失败
Run Keyword If ${encryption_attr}==1 File_KeyWord.加密
Run Keyword If ${compress_attr}==1 File_KeyWord.压缩
... ELSE File_KeyWord.取消压缩
Run Keyword If ${dedup_attr}==1 File_KeyWord.重删
Run Keyword If ${check_attr}==1 File_KeyWord.校验
sleep 6s
循环点击 ${Complete_Policy_Create_No_Info} ${Success_Confirm}
sleep 6s
元素点击 ${Success_Confirm} 确定策略创建成功 策略创建失败
元素点击 ${BackupSet} 点击进入备份集一栏 定位备份集栏失败
Sleep 120s
元素输入 ${DPMFind_Policy} ${random_strategyName} 策略名输入失败
Sleep 2s
元素点击 ${DPMButton_Searchbutton} 点击搜索按钮 定位搜索按钮失败
Sleep 2s
Wait Until Page Contains Element Xpath=//*[@id="backupSetTable"]/div[2]/table/tbody/tr[2]/td[3][text()="${random_strategyName}"]/..//td[text()="已完成"] 360s 备份未完成
Log 备份完成
Sleep 2s
立即执行_清理校验
[Arguments] ${bk_type} # 立即执行备份类型
[Documentation] 清理校验后是指在执行TC07_Bk_CheckClean后经过修改时间使用此关键字不受修改时间的影响
元素点击 ${Timed_DataProtect} 点击进入定时数据保护页面 定位定时数据保护失败
元素点击 ${dpm_Protection strategy} 切换到定时保护策略栏 定位定时保护策略功能栏失败
Sleep 2s
元素点击 xpath=//td[text()="${random_strategyName}"]/..//span[text()="立即执行"] 点击策略立即执行 定位立即执行失败
元素点击 ${Exe_File_Bk} 点击展开立即执行下拉框 定位立即执行备份类型失败
Run Keyword If "${bk_type}"=="完全" 立即执行_完全
... ELSE IF "${bk_type}"=="差量" 立即执行_差量
... ELSE IF "${bk_type}"=="累积增量_扫描" 立即执行_累计扫描
... ELSE IF "${bk_type}"=="累积增量_驱动" 立即执行_累计驱动
... ELSE IF "${bk_type}"=="合成备份_完全" 立即执行_合成完全
... ELSE IF "${bk_type}"=="合成备份_增量" 立即执行_合成增量
Sleep 2s
循环点击 ${ExecutePolicy_execute} ${Complie_confirm}
Sleep 5s
元素点击 ${Complie_confirm} 点击确定按钮 定位确定按钮失败
元素点击 ${BackupSet} 点击进入备份集一栏 定位备份集栏失败
Sleep 90s
元素输入 ${DPMFind_Policy} ${random_strategyName} 策略名输入失败
Sleep 2s
元素点击 ${DPMButton_Searchbutton} 点击搜索按钮 定位搜索按钮失败
Sleep 2s
Wait Until Page Contains Element Xpath=//*[@id="backupSetTable"]/div[2]/table/tbody/tr[2]/td[3][text()="${random_strategyName}"]/..//td[text()="已完成"] 300s 备份未完成
Log 备份完成
Sleep 60s
文件备份_限速
[Arguments] ${agent_name} ${bk_target} ${bk_type} ${mds_name} ${speed} # 代理名|备份源名称|备份类型|存储介质名称|限速大小
元素点击 ${Timed_DataProtect} 点击进入定时数据保护页面 定位定时数据保护失败
${date} Evaluate time.strftime('%Y%m%d%H%M%S',time.localtime()) time
${random_strategyName}= Catenate SEPARATOR=_ ${bk_type} ${date}
${createpolicy} Catenate SEPARATOR= 新建了策略[ ${random_strategyName} ]
Set Suite Variable ${random_strategyName}
Set Suite Variable ${createpolicy}
Sleep 5s
元素点击 xpath=//span[text()="${agent_name}"] 点击选择代理 定位代理所在位置失败
循环点击 ${Add_Policy} ${File_Module}
元素点击 ${File_Module} 点击文件组件 定位文件组件失败
元素输入 ${Set_File_PolicyName} ${random_strategyName} 定位策略名输入框失败
元素点击 xpath=//span[contains(text(),"${bk_target}")]/../../td[2]/div 勾选需要备份的文件 定位需要备份的文件失败
元素点击 ${Bk_File_NextStep} 点击下一步进入文件选项 定位下一步按钮失败
元素点击 ${File_More_NextStep} 点击下一步进入任务周期选项 定位下一步按钮失败
元素点击 ${Add_taskcycle} 点击添加任务周期 定位添加任务周期按钮失败
Run Keyword If "${bk_type}"=="完全" File_KeyWord.完全备份
... ELSE IF "${bk_type}"=="差量" File_KeyWord.差量备份
... ELSE IF "${bk_type}"=="累积增量_扫描" 累积增量备份_扫描
... ELSE IF "${bk_type}"=="累积增量_驱动" 累积增量备份_驱动
... ELSE Fail 定位备份类型失败
元素点击 ${Cycle_Once} 设置任务仅执行一次 定位仅执行一次失败
元素点击 ${Cycle_Confirm} 确定任务周期设置完毕 定位任务周期设置失败
元素点击 ${Cycle_NextStep} 点击下一步进入备份集存储设置界面 定位下一步失败
元素点击 ${Manual_ChooseMDS} 点击勾选手动选择介质 定位选择介质失败
元素点击 ${Select_MDS} 点击介质选择按钮 定位介质选择按钮失败
元素点击 xpath=//select[@id="dialogues_addCycleStorage_fileOrOracle_selectMedia_select"]/option[contains(text(),"${mds_name}")] 点击选择指定介质 定位指定介质失败
元素点击 ${Storage_NextStep} 点击下一步进入到备份高级选项 定位下一步失败
元素点击 ${Speed_Control} 点击创建限速策略 定位创建限速策略失败
元素点击 ${All_Day} 点击勾选全天 定位限速全天按钮失败
元素输入 ${Input_Speed} ${speed} 定位限速输入框失败
元素点击 ${Confirm_SpeedLimit} 点击确定创建限速策略 定位限速策略创建确定按钮失败
循环点击 ${Complete_Policy_Create_No_Info} ${Success_Confirm}
sleep 6s
元素点击 ${Success_Confirm} 确定策略创建成功 策略创建失败
元素点击 ${BackupSet} 点击进入备份集一栏 定位备份集栏失败
Sleep 30s
文件恢复_限速
[Arguments] ${recover_speed} # 恢复限速
Wait Until Page Contains Element Xpath=//span[@id="compileBackupViewId${random_strategyName}"]/../../..//*[text()="已完成"] 300s 备份未完成
Log 备份完成
Sleep 2s
元素点击 Xpath=//*[@id="backupSetTable"]/div[2]/table/tbody//td[3][text()="${random_strategyName}"]/..//span[text()="恢复"] 选择备份集进行恢复 定位恢复按钮失败
元素点击 ${Recover_File} 选择需要恢复的文件 定位需要恢复的文件失败
元素点击 ${Recover_To_Oldpath} 选择恢复路径 定位恢复到原路径失败
元素点击 ${Recover_fileNextstep} 点击下一步进入到文件选项页面 定位下一步定位失败
元素点击 ${File_Rec_More_NextStep} 点击下一步进入到恢复高级选项 定位文件选项下一步失败
元素点击 ${Choose_LimitSpeed} 点击勾选限速 定位限速
元素点击 ${All_Day} 点击勾选全天 定位全天限速选项失败
元素输入 ${Input_LimitSpeed} ${recover_speed} 定位恢复速度输入框失败
元素点击 ${Confirm_SpeedLimit} 点击确定创建恢复限速策略 定位限速恢复确定按钮失败
元素点击 ${Recover_fileExec} 点击创建恢复策略 定位恢复策略最后一步确定失败
元素点击 ${window_button_recover_confirm} 点击确定按钮完成恢复操作 定位恢复弹窗确定按钮失败
元素点击 ${Success_Confirm} 恢复策略确定创建成功 恢复作业创建成功弹窗定位失败
文件备份集校验_限速
元素点击 ${Policy_Work} 点击进入作业栏 定位作业栏失败
Sleep 60s
元素输入 ${Input_All_Policy} 恢复策略 定位所有策略输入框失败
元素点击 ${Search_By_Policy} 点击查找筛选恢复策略 定位查找按钮失败
Wait Until Page Contains Element ${Recover_Success} 300s 恢复失败
sleep 2s
Log 恢复成功
DPM文件备份_win
[Arguments] ${agent_name} ${bk_target} ${bk_type} ${mds_name} ${encryption_attr} ${compress_attr} ${dedup_attr} ${check_attr}=0 # 代理名|备份目标名称|备份类型|加密|压缩|重删|校验(默认不勾选)
元素点击 ${Timed_DataProtect} 点击进入定时数据保护页面 定位定时数据保护失败
${date} Evaluate time.strftime('%Y%m%d%H%M%S',time.localtime()) time
${random_strategyName}= Catenate SEPARATOR=_ ${bk_type} ${date}
${createpolicy} Catenate SEPARATOR= 新建了策略[ ${random_strategyName} ]
Set Suite Variable ${random_strategyName}
Set Suite Variable ${createpolicy}
Sleep 5s
元素点击 xpath=//span[text()="${agent_name}"] 点击选择代理 定位代理所在位置失败
元素点击 ${BackupSet} 点击进入备份集页面 定位备份集按钮失败
元素点击 ${dpm_Protection strategy} 点击进入保护策略页面 定位保护策略按钮失败
元素点击 ${Add_Policy} 点击添加策略按钮 定位添加策略按钮失败
元素点击 ${File_Module} 点击文件组件 定位文件组件失败
元素输入 ${Set_File_PolicyName} ${random_strategyName} 定位策略名输入框失败
元素点击 ${File_Expand} 点击展开C盘文件 定位C盘文件展开按钮失败
元素点击 xpath=//span[contains(text(),"${bk_target}")]/../../td[2]/div 勾选需要备份的文件 定位需要备份的文件失败
元素点击 ${Bk_File_NextStep} 点击下一步进入文件选项页面 定位下一步按钮失败
元素点击 ${Bk_File_NextStep_Config} 点击下一步进入任务周期页面 定位下一步按钮失败
元素点击 ${Add_taskcycle} 点击添加任务周期 定位添加任务周期按钮失败
Run Keyword If "${bk_type}"=="完全" File_KeyWord.完全备份
... ELSE IF "${bk_type}"=="差量" File_KeyWord.差量备份
... ELSE IF "${bk_type}"=="累积增量_扫描" 累积增量备份_扫描
... ELSE IF "${bk_type}"=="累积增量_驱动" 累积增量备份_驱动
... ELSE Fail 定位备份类型失败
元素点击 ${Cycle_Once} 设置任务仅执行一次 定位仅执行一次失败
元素点击 ${Cycle_Confirm} 确定任务周期设置完毕 定位任务周期设置失败
元素点击 ${Cycle_NextStep} 点击下一步进入备份集存储设置界面 定位下一步失败
元素点击 ${Manual_ChooseMDS} 点击勾选手动选择介质 定位选择介质失败
元素点击 ${Select_MDS} 点击介质选择按钮 定位介质选择按钮失败
元素点击 xpath=//option[@label="${mds_name}"] 点击选择指定介质 定位指定介质失败
Run Keyword If ${dedup_attr}==1 重删
sleep 3s
元素点击 ${Storage_NextStep} 点击下一步进入到备份高级选项 定位下一步失败
Run Keyword If ${encryption_attr}==1 加密
Run Keyword If ${compress_attr}==1 压缩
... ELSE 取消压缩
Comment Run Keyword If ${dedup_attr}==1 重删
Comment Run Keyword If ${check_attr}==1 校验
元素点击 ${Complete_Policy_Create_No_Info} 点击确定按钮完成策略创建 定位确定按钮失败
元素点击 ${Success_Confirm} 确定策略创建成功 策略创建失败
元素点击 ${BackupSet} 点击进入备份集一栏 定位备份集栏失败
Sleep 10s
元素输入 ${Input_Policy_Name} ${random_strategyName} 定位策略名搜索框失败
元素点击 ${DPMButton_Searchbutton} 点击查找筛选策略 定位查找按钮失败
sleep 60s
Wait Until Page Contains Element xpath=//*[@id="backupSetTable"]/div[2]/table/tbody/tr[2]/td[3][text()="${random_strategyName}"]/..//td[text()="已完成"] 120s 备份未完成
Log 备份完成
Sleep 2s
生成备份文件_win
[Arguments] ${ip} ${user} ${pwd} ${ip_win} ${user_win} ${pwd_win} # 黑方IP | 黑方用户名 | 黑方密码|win代理ip|win用户名|win密码
删除文件_win ${ip_win} ${user_win} ${pwd_win}
Log 登录文件代理
Open Connection ${ip} 22
SSHLibrary.Login ${user} ${pwd}
sleep 5s
Log 生成1个目录每个目录下存在1000个小文件
Run Keyword And Ignore Error Execute Command rm -rf /dir
sleep 10s
Execute Command /vdb/0.Vdbench/vdbench -f /vdb/0.Vdbench/examples/filesys/create_files
sleep 180s
Write scp -r /dir ${user_win}@${ip_win}:C:/
Sleep 3s
Comment Write yes
Sleep 3s
Write ${pwd_win}
Sleep 100s
Close Connection
生成文件md5_win ${ip_win} ${user_win} ${pwd_win}
sleep 5s
修改备份数据源_win
[Arguments] ${ip} ${user} ${pwd} ${ip_win} ${user_win} ${pwd_win} # 黑方IP | 黑方用户名 | 黑方密码|win代理ip|win用户名|win密码
[Documentation] 功能:修改备份文件
...
... 使用方法在A.txt中插入当前时间点
...
... 变量:无
Open Connection ${ip} 22
SSHLibrary.Login ${user} ${pwd}
Log 登录文件代理
sleep 5s
Log 生成第二个目录目录下存在1000个小文件
Execute Command /vdb/0.Vdbench/vdbench -f /vdb/0.Vdbench/examples/filesys/create_files2
sleep 180s
Write scp -r /dir ${user_win}@${ip_win}:C:/
Sleep 3s
Write yes
Sleep 3s
Write ${pwd_win}
Sleep 100s
Close Connection
生成文件md5_win ${ip_win} ${user_win} ${pwd_win}
sleep 5s
校验文件内容_win
[Arguments] ${ip_win} ${user_win} ${pwd_win} #Windows_ip地址|用户名|密码
Open Connection ${ip_win}
SSHLibrary.Login ${user_win} ${pwd_win}
Log 连接成功
Start Command chcp 65001
Start Command type A.txt
${compare}= Read Command Output
Set Suite Variable ${compare}
Log ${origin_content}
${compare_result} Run Keyword And Return Status Should Match ${compare} ${origin_content}
Run Keyword If ${compare_result}==True Log 文件恢复成功,文本内容一致
... ELSE Fail 文件恢复失败,文本内容不一致
Close Connection
删除文件_win
[Arguments] ${ip_win} ${user_win} ${pwd_win} #Windows_ip地址|用户名|密码
Log 删除dir目录
Open Connection ${ip_win}
SSHLibrary.Login ${user_win} ${pwd_win}
Log 连接成功
Run Keyword And Ignore Error Execute Command rmdir \/s \/q C:\\dir
sleep 30s
Close Connection
修改备份数据源2_win
[Arguments] ${ip} ${user} ${pwd} ${ip_win} ${user_win} ${pwd_win} # 黑方IP | 黑方用户名 | 黑方密码|win代理ip|win用户名|win密码
Open Connection ${ip} 22
SSHLibrary.Login ${user} ${pwd}
Log 登录文件代理
sleep 5s
Log 生成第二个目录目录下存在1000个小文件
Execute Command /vdb/0.Vdbench/vdbench -f /vdb/0.Vdbench/examples/filesys/create_files 3
sleep 180s
Write scp -r /dir ${user_win}@${ip_win}:C:/
Sleep 3s
Sleep 3s
Write ${pwd_win}
Sleep 100s
Close Connection
生成文件md5_win ${ip_win} ${user_win} ${pwd_win}
sleep 5s
校验文件md5_win
[Arguments] ${ip_win} ${user_win} ${pwd_win} #Windows_ip地址|用户名|密码
sleep 60s
Open Connection ${ip_win}
SSHLibrary.Login ${user_win} ${pwd_win}
Sleep 20s
Start Command chcp 65001
sleep 5s
Start Command C:/Agent/ubackup/uagent/bin/Python27/python D:/MD5.py
${compare} Read Command Output
Log 校验文件md5为${compare}
Close Connection
${compare_result} Run Keyword And Return Status Should Match ${compare} ${origin_content}
Run Keyword If ${compare_result}==True Log MD5值校验一致恢复成功
... ELSE Fail MD5值校验不一致恢复失败
生成文件md5_win
[Arguments] ${ip_win} ${user_win} ${pwd_win} #Windows_ip地址|用户名|密码
Open Connection ${ip_win}
SSHLibrary.Login ${user_win} ${pwd_win}
Log 获取生产机文件md5
Start Command C:/Agent/ubackup/uagent/bin/Python27/python D:/MD5.py
${origin_content}= Read Command Output
Set Suite Variable ${origin_content}
Log 原文本MD5值为${origin_content}
Close Connection
文件备份集删除切换_备份链
[Arguments] ${agent_name}
[Documentation] 只会删除和加载第二行的备份集
元素点击 ${Timed_DataProtect} 点击进入定时数据保护页面 定位定时数据保护失败
元素点击 Xpath=//span[text()="${agent_name}"] 选择备份代理 定位备份代理失败
Mouse Out Xpath=//span[text()="${agent_name}"]
元素点击 ${BackupSet} 点击进入备份集一栏 定位备份集栏失败
Sleep 2s
元素点击 xpath=//td[text()="${random_strategyName}"]/..//div[@id="compileButtonBackup1"]/span[text()="删除"] 点击删除备份集 定位删除按钮失败
Sleep 2s
元素点击 ${Del_Local_Confirm} 点击确定删除备份集 定位确定按钮失败
元素点击 ${Success_Confirm} 确定完成备份集删除 定位备份集删除确定弹框失败
Wait Until Element Is Not Visible xpath=//td[text()="${random_strategyName}"]/..//div[@id="compileButtonBackup1"]/span[text()="删除"] 10s 备份集删除失败
Log 备份集删除成功
元素点击 ${Remote_Sync} 点击进入备份数据复制栏 定位备份数据复制栏失败
元素点击 ${Local_Copy} 点击本地复制功能栏 定位本地复制功能栏失败
元素点击 ${Copy_List} 点击切换到副本列表 定位到副本列表栏失败
元素输入 ${Search_LocalCopy_PolicyName} ${Copy_Name} 定位复制任务名输入框失败
元素点击 ${Button_Search_Copy} 点击搜索按钮搜索备份集 定位按钮搜索失败
元素点击 xpath=//div[text()="${Copy_Name}"]/../..//span[text()="切换"] 点击备份集副本进行切换 定位要切换的备份集失败
元素点击 ${Switch_Confirm} 点击二次确认开始备份集切换 定位二次确认开始备份集切换按钮失败
元素点击 ${Switch_Success_Confirm} 点击确认备份集切换成功 定位确认备份集切换成功按钮失败
${Switch_PolicyName} Catenate SEPARATOR= 【副本切换】 ${Copy_Name}
元素点击 ${Log_LocalCopy} 点击切换到任务日志列表 定位任务日志列表失败
元素输入 ${Log_Input_PolicyName} ${Switch_PolicyName} 定位副本切换策略名输入框失败
元素点击 ${Log_Search_Button} 点击搜索按钮查询副本切换日志 定位搜索按钮查询副本切换日志失败
Wait Until Element Is Visible ${Switch_Success_Message} 10s 副本切换失败,未查询到${Switch_PolicyName}的日志
Log 副本切换成功
立即执行_本地复制
[Arguments] ${bk_type} ${agent_name} # 立即执行备份类型|代理名称
元素点击 ${Timed_DataProtect} 点击进入定时数据保护页面 定位定时数据保护失败
元素点击 xpath=//span[text()="${agent_name}"] 点击选择代理 定位代理所在位置失败
元素点击 ${dpm_Protection strategy} 切换到定时保护策略栏 定位定时保护策略功能栏失败
Sleep 2s
元素点击 xpath=//td[text()="${random_strategyName}"]/..//span[text()="立即执行"] 点击策略立即执行 定位立即执行失败
元素点击 ${Exe_File_Bk} 点击展开立即执行下拉框 定位立即执行备份类型失败
Run Keyword If "${bk_type}"=="完全" 立即执行_完全
... ELSE IF "${bk_type}"=="差量" 立即执行_差量
... ELSE IF "${bk_type}"=="累积增量_扫描" 立即执行_累计扫描
... ELSE IF "${bk_type}"=="累积增量_驱动" 立即执行_累计驱动
... ELSE IF "${bk_type}"=="合成备份_完全" 立即执行_合成完全
... ELSE IF "${bk_type}"=="合成备份_增量" 立即执行_合成增量
Sleep 2s
循环点击 ${ExecutePolicy_execute} ${Complie_confirm}
Sleep 5s
元素点击 ${Complie_confirm} 点击确定按钮 定位确定按钮失败
元素点击 ${BackupSet} 点击进入备份集一栏 定位备份集栏失败
Sleep 20s
Wait Until Page Contains Element Xpath=//*[@id="backupSetTable"]/div[2]/table/tbody/tr[2]/td[3][text()="${random_strategyName}"]/..//td[text()="已完成"] 300s 备份未完成
Log 备份完成
Sleep 5s
文件恢复_本地复制
[Arguments] ${agent_name} ${Num} # 代理名称|备份集的行数
元素点击 ${Timed_DataProtect} 点击进入定时数据保护页面 定位定时数据保护失败
元素点击 Xpath=//span[text()="${agent_name}"] 选择备份代理 定位备份代理失败
Mouse Out Xpath=//span[text()="${agent_name}"]
Sleep 2s
元素点击 ${BackupSet} 点击进入备份集一栏 定位备份集栏失败
Sleep 2s
元素点击 Xpath=//*[@id="backupSetTable"]/div[2]/table/tbody//td[3][text()="${random_strategyName}"]/..//div[@id="compileButtonBackup${Num}"]/span[text()="恢复"] 选择备份集进行恢复 定位恢复按钮失败
Sleep 5s
元素点击 ${Recover_File} 选择需要恢复的文件 定位需要恢复的文件失败
Sleep 5s
元素点击 ${Recover_To_Oldpath} 选择恢复路径 定位恢复到原路径失败
元素点击 ${Recover_fileNextstep} 点击下一步进入到恢复高级选项 恢复目标下一步定位失败
Sleep 6s
元素点击 ${File_Rec_More_NextStep} 点击下一步进入到恢复高级选项 定位文件选项下一步失败
循环点击 ${Recover_fileExec} ${window_button_recover_confirm}
元素点击 ${window_button_recover_confirm} 点击确定按钮完成恢复操作 定位恢复弹窗确定按钮失败
元素点击 ${Success_Confirm} 恢复策略确定创建成功 恢复作业创建成功弹窗定位失败
Sleep 6s
元素点击 ${Policy_Work} 点击进入作业栏 定位作业栏失败
Sleep 60s
元素输入 ${Input_All_Policy} 恢复策略 定位所有策略输入框失败
元素点击 ${Search_By_Policy} 点击查找筛选恢复策略 定位查找按钮失败
Wait Until Page Contains Element ${Recover_Success} 300s 恢复失败
sleep 2s
Log 恢复成功
文件备份集删除切换
[Arguments] ${agent_name} ${mds_name} # 代理名称|介质名称
[Documentation] 只会删除和加载第二行的备份集
元素点击 ${Timed_DataProtect} 点击进入定时数据保护页面 定位定时数据保护失败
元素点击 Xpath=//span[text()="${agent_name}"] 选择备份代理 定位备份代理失败
Mouse Out Xpath=//span[text()="${agent_name}"]
元素点击 ${BackupSet} 点击进入备份集一栏 定位备份集栏失败
Sleep 2s
元素点击 xpath=//td[text()="${random_strategyName}"]/..//div[@id="compileButtonBackup0"]/span[text()="删除"] 点击删除备份集 定位删除按钮失败
Sleep 2s
元素点击 ${Del_Local_Confirm} 点击确定删除备份集 定位确定按钮失败
元素点击 ${Success_Confirm} 确定完成备份集删除 定位备份集删除确定弹框失败
Wait Until Element Is Not Visible xpath=//td[text()="${random_strategyName}"]/..//div[@id="compileButtonBackup0"]/span[text()="删除"] 10s 备份集删除失败
Log 备份集删除成功
元素点击 ${Remote_Sync} 点击进入备份数据复制栏 定位备份数据复制栏失败
元素点击 ${Local_Copy} 点击本地复制功能栏 定位本地复制功能栏失败
元素点击 ${Copy_List} 点击切换到副本列表 定位到副本列表栏失败
元素输入 ${Search_LocalCopy_PolicyName} ${Copy_Name} 定位复制任务名输入框失败
元素点击 ${CopyList_Server} 点击展开介质服务器选项 定位副本列表下搜索介质服务器选项失败
元素点击 xpath=//option[text()="${Plantform_BC_Agent}"] 点击选择指定黑方介质服务器 定位${Plantform_BC_Agent}介质服务器失败
元素点击 ${CopyList_Storage} 点击展开介质配置选项 定位副本列表下搜索介质配置选项失败
元素点击 xpath=//option[text()="${mds_name}"] 点击选择要切换备份集所在的介质 定位要切换备份集所在的介质失败
元素点击 ${Button_Search_Copy} 点击搜索按钮搜索备份集 定位按钮搜索失败
元素点击 xpath=//div[text()="${Copy_Name}"]/../..//span[text()="切换"] 点击备份集副本进行切换 定位要切换的备份集失败
元素点击 ${Switch_Confirm} 点击二次确认开始备份集切换 定位二次确认开始备份集切换按钮失败
元素点击 ${Switch_Success_Confirm} 点击确认备份集切换成功 定位确认备份集切换成功按钮失败
${Switch_PolicyName} Catenate SEPARATOR= 【副本切换】 ${Copy_Name}
元素点击 ${Log_LocalCopy} 点击切换到任务日志列表 定位任务日志列表失败
元素输入 ${Log_Input_PolicyName} ${Switch_PolicyName} 定位副本切换策略名输入框失败
元素点击 ${Log_Search_Button} 点击搜索按钮查询副本切换日志 定位搜索按钮查询副本切换日志失败
Wait Until Element Is Visible ${Switch_Success_Message} 10s 副本切换失败,未查询到${Switch_PolicyName}的日志
Log 副本切换成功
文件备份_备份模板
[Arguments] ${agent_name} ${bk_target} ${bk_type} # 代理名|备份源名称|备份类型
元素点击 ${Timed_DataProtect} 点击进入定时数据保护页面 定位定时数据保护失败
${date} Evaluate time.strftime('%Y%m%d%H%M%S',time.localtime()) time
${random_strategyName}= Catenate SEPARATOR=_ ${bk_type} ${date}
${createpolicy} Catenate SEPARATOR= 新建了策略[ ${random_strategyName} ]
Set Suite Variable ${random_strategyName}
Set Suite Variable ${createpolicy}
Sleep 5s
元素点击 xpath=//span[text()="${agent_name}"] 点击选择代理 定位代理所在位置失败
循环点击 ${Add_Policy} ${File_Module}
元素点击 ${Add_Policy_ByTemplate} 点击切换到模板创建备份策略 定位模板创建备份策略按钮失败
元素点击 ${Select_DPM_Template} 点击展开模板列表 定位策略模板列表展开失败
元素点击 ${Selected_Template} 点击选择已经创建的模板 定位已创建的模板选项失败
Sleep 5s
元素点击 ${File_Module} 点击文件组件 定位文件组件失败
元素输入 ${Set_File_PolicyName} ${random_strategyName} 定位策略名输入框失败
元素点击 xpath=//span[contains(text(),"${bk_target}")]/../../td[2]/div 勾选需要备份的文件 定位需要备份的文件失败
元素点击 ${Bk_File_NextStep} 点击下一步进入文件选项 定位下一步按钮失败
元素点击 ${File_More_NextStep} 点击下一步进入任务周期选项 定位下一步按钮失败
元素点击 ${Add_taskcycle} 点击添加任务周期 定位添加任务周期按钮失败
Run Keyword If "${bk_type}"=="完全" File_KeyWord.完全备份
... ELSE IF "${bk_type}"=="差量" File_KeyWord.差量备份
... ELSE IF "${bk_type}"=="累积增量_扫描" 累积增量备份_扫描
... ELSE IF "${bk_type}"=="累积增量_驱动" 累积增量备份_驱动
... ELSE Fail 定位备份类型失败
元素点击 ${Cycle_Once} 设置任务仅执行一次 定位仅执行一次失败
元素点击 ${Cycle_Confirm} 确定任务周期设置完毕 定位任务周期设置失败
元素点击 ${Cycle_NextStep} 点击下一步进入备份集存储设置界面 定位下一步失败
Comment 元素点击 ${Manual_ChooseMDS} 点击勾选手动选择介质 定位选择介质失败
Comment 元素点击 ${Select_MDS} 点击介质选择按钮 定位介质选择按钮失败
Comment 元素点击 xpath=//select[@id="dialogues_addCycleStorage_fileOrOracle_selectMedia_select"]/option[contains(text(),"${mds_name}")] 点击选择指定介质 定位指定介质失败
Comment Run Keyword If ${dedup_attr}==1 File_KeyWord.重删
元素点击 ${Storage_NextStep} 点击下一步进入到备份高级选项 定位下一步失败
Comment Run Keyword If ${encryption_attr}==1 File_KeyWord.加密
Comment Run Keyword If ${compress_attr}==1 File_KeyWord.压缩
Comment ...
... ELSE File_KeyWord.取消压缩
Comment Run Keyword If ${check_attr}==1 File_KeyWord.校验
循环点击 ${Complete_Policy_Create_No_Info} ${Success_Confirm}
sleep 6s
元素点击 ${Success_Confirm} 确定策略创建成功 策略创建失败
元素点击 ${BackupSet} 点击进入备份集一栏 定位备份集栏失败
Sleep 5s
${View2}= Catenate SEPARATOR= //*[@id="compileBackupViewId ${random_strategyName} "]
Wait Until Page Contains Element ${View2} 300s 备份未完成
Log 备份完成
Sleep 2s
备份集属性校验_备份模板
[Arguments] ${encryption} ${compress} ${deduped} ${mds} ${mds_name} ${keep_time} ${time_num} # 压缩|加密|重删|介质|介质名称|保留时间|具体时间
元素点击 ${BackupSet} 进入备份集页面 进入备份集页面失败
sleep 10s
${BK_Detailid}= Catenate SEPARATOR= compileBackupViewId ${random_strategyName}
click element xpath=//span[@id="${BK_Detailid}"]
Sleep 10s
Run Keyword If ${encryption}==1 加密属性校验
... ELSE Log 加密属性不校验
Run Keyword If ${compress}==1 压缩属性校验
... ELSE Log 压缩属性不校验
Run Keyword If ${deduped}==1 重删属性校验
... ELSE Log 重删属性不校验
Run Keyword If ${mds}==1 存储路径校验 ${mds_name}
... ELSE Log 存储路径不校验
元素点击 ${Attr_Cancel} 点击取消关闭备份集详情弹窗 定位取消按钮失败
Log 备份集属性确认完毕
Sleep 2s
存储路径校验
[Arguments] ${mds_name} # 介质名称
Wait Until Element Is Visible xpath=//td[text()="介质名称:"]/..//td[text()="${mds_name}"] 10s 存储介质定位失败
Log 存储介质定位成功