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

325 lines
15 KiB
Plaintext

*** Settings ***
Library Selenium2Library
Library DatabaseLibrary
Library SSHLibrary
Resource ElementPath_XC.robot
Resource ../RE0_Common/KeyWord.robot
*** Keywords ***
DM建表
[Arguments] ${DM_IP} ${DM_USER} ${DM_PASSWD}
Open Connection ${DM_IP} 22
log 用户登录远程测试机器
SSHLibrary.Login ${DM_USER} ${DM_PASSWD}
Execute Command python3 /dmpy.py drop
${out}= Execute Command python3 /dmpy.py create
Should Contain ${out} success
Close Connection
DM表删除
[Arguments] ${DM_IP} ${DM_USER} ${DM_PASSWD}
Open Connection ${DM_IP} 22
log 用户登录远程测试机器
SSHLibrary.Login ${DM_USER} ${DM_PASSWD}
log 执行脚本和sql语句
${out}= Execute Command python3 /dmpy.py drop
log ${out}
Close Connection
Should Contain ${out} success
DM数据插入
[Arguments] ${DM_IP} ${DM_USER} ${DM_PASSWD}
Open Connection ${DM_IP} 22
log 用户登录远程测试机器
SSHLibrary.Login ${DM_USER} ${DM_PASSWD}
log 执行脚本和sql语句
${out}= Execute Command python3 /dm.py insert
log ${out}
Close Connection
DM表数据查询
[Arguments] ${DM_IP} ${DM_USER} ${DM_PASSWD}
Open Connection ${DM_IP} 22
log 用户登录远程测试机器
SSHLibrary.Login ${DM_USER} ${DM_PASSWD}
log 执行脚本和sql语句
${out}= Execute Command python3 /dmpy.py query
log ${out}
Should Contain ${out} 20
Close Connection
Return From Keyword ${out}
DM表数据查询_完全
[Arguments] ${DM_IP} ${DM_USER} ${DM_PASSWD}
Open Connection ${DM_IP} 22
log 用户登录远程测试机器
SSHLibrary.Login ${DM_USER} ${DM_PASSWD}
log 执行脚本和sql语句
${out}= Execute Command python3 /dmpy.py query
log ${out}
Should Contain ${out} 10
Close Connection
Return From Keyword ${out}
拷贝DM运行脚本
[Arguments] ${DM_IP} ${DM_USER} ${DM_PASSWD}
Open Connection ${DM_IP} 22
log 用户登录远程测试机器
SSHLibrary.Login ${DM_USER} ${DM_PASSWD}
log 将脚本拷贝到代理机器
SSHLibrary.Put Directory ${Scripts_Path}${/}DM /opt
Close Connection
DM备份
[Arguments] ${agent_name} ${dm_pwd} ${mds_name} ${encryption_attr} ${compress_attr} ${dedup_attr} ${cache} ${encryption} ${compress} ${deduped} ${bk_cache} ${Srcbkfun}
元素点击 ${Timed_DataProtect} 点击进入定时数据保护页面 定位定时数据保护失败
${date} Evaluate time.strftime('%Y%m%d%H%M%S',time.localtime()) time
${random_strategyName}= Catenate SEPARATOR=_ DM ${date}
${createpolicy} Catenate SEPARATOR= 新建了策略[ ${random_strategyName} ]
Set Suite Variable ${random_strategyName}
Set Suite Variable ${createpolicy}
Sleep 5s
元素点击 xpath=//span[text()="${agent_name}"] 点击选择代理 定位代理所在位置失败
sleep 5s
元素点击 ${BackupSet} 点击进入备份集页面 定位备份集按钮失败
元素点击 ${dpm_Protection strategy} 点击进入保护策略页面 定位保护策略按钮失败
元素点击 ${Add_Policy} 点击添加策略按钮 定位添加策略按钮失败
元素点击 ${DM_source} 点击DM组件 定位DM组件按钮失败
sleep 10s
元素输入 ${Input_DM_Pwd} ${dm_pwd} 定位DM用户密码输入框失败
Run Keyword If ${Srcbkfun}==1 普通备份
... ELSE IF ${Srcbkfun}==0 流式备份
元素输入 ${Input_celuename} ${random_strategyName} 定位策略名输入框失败
元素点击 ${Connection credentials_Next} 进入到目标数据库选择界面 定位下一步按钮失败
元素点击 ${Select_Target_Database_DM} 勾选需要备份的DM数据库 定位目标数据库失败
元素点击 ${Target_database_Next_DM} 进入到任务周期页面 定位下一步按钮失败
元素点击 ${Add_TaskCycle} 点击添加任务周期 定位添加任务周期按钮失败
元素点击 ${Full_Backup} 勾选完全备份 定位完全备份元素失败
Sleep 2s
元素点击 ${Cycle_Once} 设置任务仅执行一次 定位仅执行一次失败
元素点击 ${Cycle_Confirm} 确定任务周期设置完毕 定位任务周期设置失败
元素点击 ${Cycle_NextStep} 点击下一步进入备份集存储设置界面 定位下一步失败
元素点击 ${Manual_ChooseMDS} 点击勾选手动选择介质 定位选择介质失败
元素点击 ${Select_MDS_DM} 点击介质选择按钮 定位介质选择按钮失败
元素点击 xpath=//select[@id="dialogues_addCycleStorage_storagePath_selectMedia_selectedMdsIP_select"]/option[@label="${mds_name}"] 点击选择指定介质 定位指定介质失败
Run Keyword If ${dedup_attr}==1 重删
... ELSE Log 不勾选重删
元素点击 ${Storage_NextStep} 点击下一步进入到备份高级选项 定位下一步失败
log 进入备份高级选项
Run Keyword If ${encryption_attr}==1 加密
... ELSE Log 不勾选加密
Run Keyword If ${compress_attr}==1 压缩
... ELSE Log 不勾选压缩
Run Keyword If ${cache}==1 备份缓存
... ELSE Log 不勾选缓存
Run Keyword If ${Srcbkfun}==1 启用备份归档
... ELSE Log 不勾选备份归档
sleep 2s
循环点击 ${Complete_Policy_Create_No_Info} ${Success_Confirm}
sleep 2s
元素点击 ${Success_Confirm} 确定策略创建成功 策略创建失败
元素点击 ${BackupSet} 点击进入备份集一栏 定位备份集栏失败
Wait Until Page Contains Element xpath=//*[@id="backupSetTable"]//tr[2]/td[text()="已完成"] 180s 备份未完成
Log 备份完成
sleep 10s
${View2}= Catenate SEPARATOR= //*[@id="compileBackupViewId ${random_strategyName} "]
循环点击 ${BackupSet} ${View2}
sleep 10s
元素点击 ${View2} 点击进入备份集详情 定位备份集详情失败
Sleep 10s
加密属性校验 ${encryption}
压缩属性校验 ${compress}
重删属性校验 ${deduped}
缓存属性校验 ${bk_cache}
元素点击 ${Attr_Cancel} 点击取消关闭备份集详情弹窗 定位取消按钮失败
Log 备份集属性确认完毕
Sleep 2s
DM恢复
[Arguments] ${DM_Pwd} ${cache}
sleep 5s
循环点击 ${BackupSet} ${Click_recover}
元素点击 ${Click_recover} 选择备份集进行恢复 定位恢复按钮失败
元素输入 ${Input_DM_PwdR} ${DM_Pwd} 定位DM密码输入框失败
元素点击 ${Recover_Nextstep_DM} 点击下一步进入到恢复高级选项 恢复目标下一步定位失败
sleep 5s
Run Keyword If ${cache}==1 恢复缓存
... ELSE Log 不勾选缓存
sleep 2s
循环点击 ${Recover} ${Recover_Confirm}
元素点击 ${Recover_Confirm} 恢复确定 恢复确定弹窗定位失败
sleep 2s
元素点击 ${Success_Confirm} 恢复策略确定创建成功 恢复作业创建成功弹窗定位失败
sleep 2s
元素点击 ${Policy_Work} 点击进入作业栏 定位作业栏失败
Wait Until Page Contains Element ${Recover_Success} 180s 恢复失败
sleep 2s
Log 恢复成功
差量备份
Sleep 2s
元素点击 ${Complie_diff_DM} 点击差量备份 定位差量备份失败
增量备份
Sleep 2s
元素点击 ${Complie_incre_DM} 点击增量备份 定位增量备份失败
日志备份
Sleep 2s
元素点击 ${Complie_log_DM} 点击日志备份 定位日志备份失败
备份缓存
元素点击 ${Active_Cache} 勾选缓存 定位缓存选项失败
Comment 循环点击 ${Active_Cache} ${Cache_Path}
元素输入 ${Cache_Path} /opt 定位缓存路径输入框失败
元素点击 ${Fin_CachePath} 缓存路径设置完毕 定位缓存路径设置确定按钮失败
恢复缓存
元素点击 ${Recover_Cache} 勾选缓存 定位缓存选项失败
sleep 2s
元素点击 ${Fin_Recover_CachePath} 缓存路径设置完毕 定位缓存路径设置确定按钮失败
DM立即执行
[Arguments] ${DM_backuptype}
元素点击 ${dpm_Protection strategy} 点击进入定时保护策略一栏 定位保护策略栏失败
元素点击 ${Complie_execute} 点击策略立即执行按钮 定位立即执行元素失败
循环点击 ${Select_Srctype_DM} ${Complie_incre_DM}
Run Keyword If "${DM_backuptype}"=="增量" 增量备份
... ELSE IF "${DM_backuptype}"=="差量" 差量备份
... ELSE IF "${DM_backuptype}"=="日志" 日志备份
循环点击 ${ExecutePolicy_execute} ${Complie_confirm}
Sleep 5S
元素点击 ${Success_Confirm} 点击确定按钮 定位确定按钮失败
Sleep 2S
元素点击 ${BackupSet} 点击进入备份集一栏 定位备份集栏失败
Sleep 300s
Wait Until Page Contains Element Xpath=//*[@id="backupSetTable"]/div[2]/table/tbody/tr[2]/td[5][text()="DM${DM_backuptype}备份"] 100s 定位对应备份集失败
Log 备份集类型为${DM_backuptype}
Sleep 5s
Wait Until Page Contains Element xpath=//*[@id="backupSetTable"]//tr[2]/td[text()="已完成"] 300s 备份未完成
Log 备份完成
加密
元素点击 ${Type_encrypt} 点击勾选加密选项 定位加密失败
压缩
Log 勾选压缩选项
元素点击 ${Type_compress} 点击勾选压缩选项 定位压缩失败
重删
元素点击 ${Type_dedup} 勾选重删 定位重删失败
启用备份归档
元素点击 ${archiveBackup} 点击勾选加密选项 定位加密失败
取消压缩
元素点击 ${Type_compress} 点击勾选压缩选项 定位压缩失败
备份集属性校验
[Arguments] ${encryption} ${compress} ${deduped} ${cache}
sleep 10s
循环点击 ${BackupSet} ${View}
sleep 2s
元素点击 ${View} 点击进入备份集详情 定位备份集详情失败
Sleep 10s
加密属性校验 ${encryption}
压缩属性校验 ${compress}
重删属性校验 ${deduped}
缓存属性校验 ${cache}
元素点击 ${Attr_Cancel} 点击取消关闭备份集详情弹窗 定位取消按钮失败
Log 备份集属性确认完毕
Sleep 2s
压缩属性校验
[Arguments] ${encryption}
${get_attr}= Get Text ${Compress_Attr}
Element Text Should Be ${Compress_Attr} ${encryption}
Log 压缩属性校验完毕
加密属性校验
[Arguments] ${compress}
${get_attr}= Get Text ${Encryption_Attr}
Element Should Contain ${Encryption_Attr} ${compress}
Log 加密属性校验完毕
重删属性校验
[Arguments] ${deduped}
${get_attr}= Get Text ${Deduped_Attr}
Element Should Contain ${Deduped_Attr} ${deduped}
Log 重删属性校验完毕
缓存属性校验
[Arguments] ${bk_cache}
${get_attr}= Get Text ${cache}
Element Should Contain ${cache} ${bk_cache}
Log 缓存属性校验完毕
普通备份
sleep 2s
元素点击 ${DM_Srcbkfun_Select} 选择备份方式 定位备份方式下拉框失败
元素点击 ${DM_Dump_Option} 选择普通方式 定位普通方式选项失败
流式备份
sleep 2s
元素点击 ${DM_Srcbkfun_Select} 选择备份方式 定位备份方式下拉框失败
元素点击 ${DM_Binary_Option} 选择普通方式 定位普通方式选项失败
DM恢复_指定时间点校验
[Arguments] ${DM_Pwd} ${cache} ${HostIP} ${LoginUser} ${LoginPWD}
sleep 5s
循环点击 ${BackupSet} ${Click_recover}
元素点击 ${Click_recover} 选择备份集进行恢复 定位恢复按钮失败
元素输入 ${Input_DM_PwdR} ${DM_Pwd} 定位DM密码输入框失败
元素点击 ${Recover_Nextstep_DM} 点击下一步进入到恢复高级选项 恢复目标下一步定位失败
sleep 5s
Run Keyword If ${cache}==1 恢复缓存
... ELSE Log 不勾选缓存
sleep 2s
元素点击 ${appointRecover} 点击指定时间点恢复 定位指定时间点恢复失败
元素点击 ${select_timeDis} 点击时间点恢复 定位时间点恢复失败
元素点击 ${select_timepoint} 点击选择时间 定位选择时间失败
元素点击 ${select_h} 点击时 定位选择时失败
元素点击 ${select_m} 点击分 定位选择分失败
元素点击 ${select_s} 点击秒 定位选择秒失败
${min} Get text ${catch_minute}
元素点击 ${confirm_time} 确定恢复时间点 确定恢复时间点失败
循环点击 ${Recover} ${Recover_Confirm}
元素点击 ${Recover_Confirm} 恢复确定 恢复确定弹窗定位失败
sleep 2s
元素点击 ${Success_Confirm} 恢复策略确定创建成功 恢复作业创建成功弹窗定位失败
sleep 2s
元素点击 ${Policy_Work} 点击进入作业栏 定位作业栏失败
Wait Until Page Contains Element ${Recover_Success} 180s 恢复失败
sleep 2s
Log 恢复成功
DM时间点查询 ${HostIP} ${LoginUser} ${LoginPWD} ${min}
DM插入当前时间点
[Arguments] ${DM_IP} ${DM_USER} ${DM_PASSWD}
Open Connection ${DM_IP} 22
log 用户登录远程测试机器
SSHLibrary.Login ${DM_USER} ${DM_PASSWD}
Execute Command /dm/start_insert.sh
Close Connection
sleep 300s
DM停止插入当前时间点
[Arguments] ${DM_IP} ${DM_USER} ${DM_PASSWD}
Open Connection ${DM_IP} 22
log 用户登录远程测试机器
SSHLibrary.Login ${DM_USER} ${DM_PASSWD}
Execute Command /dm/stop_insert.sh
Close Connection
DM时间点查询
[Arguments] ${DM_IP} ${DM_USER} ${DM_PASSWD} ${minute}
Open Connection ${DM_IP} 22
log 用户登录远程测试机器
SSHLibrary.Login ${DM_USER} ${DM_PASSWD}
log 执行脚本和sql语句
${out}= Execute Command python3 /dm/dmpy.py query
log ${out}
log ${minute}
Should Contain ${out} ${minute}
Close Connection