1815 lines
126 KiB
Plaintext
1815 lines
126 KiB
Plaintext
*** 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 存储介质定位成功
|