robotframework-demo/Project/task4/Resource/RE2_CDM/KeyWord_FileCDM.robot

202 lines
11 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 ../RE0_Common/KeyWord.robot
Resource ElementPath.robot
Library DatabaseLibrary
Library Selenium2Library
Library DateTime
Library String
Library SSHLibrary
*** 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] ${ip} ${user} ${pwd} # Linux_ip地址|用户名|密码
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值计算完毕
FileCDM备份
[Arguments] ${HostName} ${bk_target} ${mds_name} # 代理名称、备份目标、介质名称
元素点击 ${CDM_dataProtect} 点击副本数据保护成功 定位副本数据保护定位失败
元素输入 ${Input_Oracle_SearchName} ${HostName} 定位搜索输入框失败
sleep 10s
元素点击 xpath=//span[text()="${HostName}"] 选择备份代理 定位备份代理失败
sleep 5s
元素点击 ${Add_Sqlserver_Policy} 点击添加策略按钮 定位策略添加按钮失败
元素点击 ${Module_FileCDM} 选择文件模块 定位文件模块失败
log 定义策略名规则
${policy_head} Set Variable filecdm
${date} Get Current Date result_format=%Y%m%d%H%M%S
${random_strategyName}= Catenate SEPARATOR=_ ${policy_head} ${date}
Set Global Variable ${random_strategyName}
log 输入策略名
元素输入 ${Policy_Name} ${random_strategyName} 定位策略名输入框失败
元素点击 xpath=//span[contains(text(),"${bk_target}")]/../../td[2] 勾选需要备份的文件 定位需要备份的文件失败
元素点击 ${FileCDM_nextStep1} 点击下一步,进入文件选项 定位目标选项下一步失败
sleep 5s
元素点击 ${FileCDM_nextStep2} 点击下一步,进入备份集存储 定位目标数据库下一步失败
元素点击 ${Input_Choose_MDS} 选择手动指定MDS介质 定位手动选择MDS介质选项失败
Comment 元素点击 ${FileCDM_Select_MDS} 点击展开介质选项下拉框 定位介质下拉框失败
Comment 元素点击 xpath=//*[@id="dialogues_editCycleStorage_fileVal_CDM_checkObjDedup_select"]/option[text()="${mds_name}"] 点击选择指定介质 定位指定介质失败
元素点击 ${FileCDM_nextStep3} 点击下一步进入到备份高级选项页面 定位下一步按钮失败
sleep 5s
元素点击 ${FileCDM_nextStep4} 点击下一步进入任务周期 定位下一步失败
元素点击 ${AddTaskCycle} 添加任务周期成功 添加任务周期定位失败
元素点击 ${Cycle_Onetime} 添加仅一次立即备份 一次循环模式定位失败
元素点击 ${Cycle_Confirm} 添加任务周期 任务周期确定定位失败
sleep 3s
元素点击 ${FileCDM_LastDefine} 点击完成策略创建 定位策略完成失败
sleep 3s
元素点击 ${Delete_succeeded_OK} 策略添加完成 备份策略完成定位失败
log 开始备份
Sleep 30s
元素点击 ${MysqlCDM_tabbackup} 进入备份集栏 定位备份集选项失败
Log 输入策略名进行搜索
元素输入 ${MysqlCDM_BKtab} ${random_strategyName} 定位策略名称输入框失败
FOR ${n} IN RANGE 10
Click Element ${MysqlCDM_BKsearch}
Sleep 30s
${bk_status} Run Keyword And Return Status Wait Until Element Is Visible xpath=//div[text()="${random_strategyName}"]/../../td[12]/div[text()="已完成"]
Run Keyword If "${bk_status}"=="True" Exit For Loop
... ELSE Log 备份未完成
Sleep 60s
END
Run Keyword If ${bk_status}==False Fail
... ELSE Log 备份成功
Sleep 5s
FileCDM恢复
元素点击 ${MysqlCDM_tabbackup} 点击进入副本数据页面 定位副本数据页面失败
Sleep 5s
元素点击 xpath=//tr[@data-index="0"]//*[@id="backupAction_${random_strategyName}"] 点击展开操作 定位备份集操作按钮下拉框失败
元素点击 ${CDM_BK_Recover} 点击恢复操作 定位恢复按钮失败
Sleep 5s
元素点击 ${FileCDM_Recnextstep1} 点击下一步进入恢复目标 定位下一步按钮失败
Sleep 5s
元素点击 ${FileCDM_RecAdress} 选择恢复到原路径 定位恢复到原路径失败
元素点击 ${FileCDM_Recnextstep2} 点击下一步进入恢复文件选项 定位下一步按钮失败
元素点击 ${FileCDM_Recnextstep3} 点击下一步进入恢复高级选项 定位下一步按钮失败
元素点击 ${FileCDM_Recfinish} 点击执行恢复 定位执行按钮失败
元素点击 ${confirm_restore} 点击二次确定进行恢复 定位二次确定按钮失败
Sleep 5s
元素点击 ${Delete_succeeded_OK} 点击确定 定位确定按钮失败
元素点击 ${Normal_Tab_Work} 切换到作业一栏 定位作业一栏失败
Sleep 30s
FOR ${n} IN RANGE 10
Click Element ${Mysql_refresh}
${work_status} Run Keyword And Return Status Wait Until Element Is Visible ${Recover_Status}
Run Keyword If ${work_status}==False Log 恢复未完成
... ELSE Exit For Loop
Sleep 60s
END
Run Keyword If ${work_status}==False Fail
... ELSE Log 恢复成功
sleep 2s
FileCDM挂载
元素点击 ${MysqlCDM_tabbackup} 点击进入副本数据页面 定位副本数据页面失败
Sleep 5s
元素点击 xpath=//tr[@data-index="0"]//*[@id="backupAction_${random_strategyName}"] 点击展开操作 定位备份集操作按钮下拉框失败
元素点击 ${Oracle_Backups_Mount} 点击快速挂载 定位快速挂载按钮失败
sleep 5s
元素点击 ${FileCDM_MountSetp1} 点击下一步,进入高级选项界面 定位下一步按钮失败
元素点击 ${FileCDM_MountFin} 点击确定挂载 定位确定按钮失败
sleep 3s
元素点击 ${Button_Confirm_Del} 点击二次确认挂载 定位确认按钮失败
元素点击 ${Delete_succeeded_OK} 点击确定,策略下发成功 定位确定按钮失败
Sleep 5s
元素点击 ${Normal_Tab_Work} 切换到作业一栏 定位作业一栏失败
Sleep 30s
FOR ${n} IN RANGE 10
Click Element ${Mysql_refresh}
${work_status} Run Keyword And Return Status Wait Until Element Is Visible ${Recover_Status}
Run Keyword If ${work_status}==False Log 挂载未完成
... ELSE Exit For Loop
Sleep 60s
END
Run Keyword If ${work_status}==False Fail
... ELSE Log 挂载成功
sleep 30s
Comment 挂载校验 ${user} ${pwd}
sleep 5s
Log 挂载数据校验完成,开始卸载
元素点击 ${Mysql_application} 点击进入副本应用界面 定位副本应用界面失败
元素点击 ${Mysql_unmount} 点击卸载 定位卸载按钮失败
sleep 3s
元素点击 ${FileCDM_UmountOK} 卸载确定 定位卸载确定按钮失败
sleep 3s
元素点击 ${Delete_succeeded_OK} 卸载策略下发成功 定位卸载下发成功确定按钮失败
元素点击 ${Normal_Tab_Work} 切换到作业一栏 定位作业一栏失败
FOR ${n} IN RANGE 10
Click Element ${Mysql_refresh}
${work_status} Run Keyword And Return Status Wait Until Element Is Visible ${Recover_Status}
Run Keyword If ${work_status}==False Log 卸载未完成
... ELSE Exit For Loop
Sleep 30s
END
Run Keyword If ${work_status}==False Fail
... ELSE Log 卸载成功
sleep 5s
立即执行
元素点击 ${MysqlCDM_tappolicy} 切换到保护策略页面 定位保护策略失败
元素点击 ${Run_Now} 点击立即执行 定位立即执行失败
元素点击 ${FileCDM_selectedtype} 选择备份类型 定位备份类型失败
元素点击 ${FileCDM_bktype} 选择永久增量备份 定位永久增量备份失败
元素点击 ${Confirm_Exec} 点击确定 定位确定按钮失败
元素点击 ${Delete_succeeded_OK} 点击策略下发完成确认 定位策略下发完成确认按钮失败
元素点击 ${Select_JobHtml} 点击作业按钮 定位作业界面失败
log 开始永久增量备份
FOR ${n} IN RANGE 6
${bkstatus} Run Keyword AND Return Status Wait Until Element Is Visible ${Recover_Status}
Run Keyword If "${bkstatus}"=="True" Exit For Loop
... ELSE Log 备份未完成
Sleep 60s
END
Run Keyword If ${bkstatus}==False Fail
... ELSE Log 备份成功
校验文件
[Arguments] ${ip} ${user} ${pwd} # Linux_ip地址|用户名|密码
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值不一致