202 lines
11 KiB
Plaintext
202 lines
11 KiB
Plaintext
*** 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值不一致
|