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

188 lines
11 KiB
Plaintext

*** Settings ***
Resource ../RE0_Common/KeyWord.robot
Resource ../RE0_Common/ElementPath.robot
Resource ElementPath.robot
Library Selenium2Library
Library string
Library DateTime
Library DatabaseLibrary
*** Keywords ***
Oracle插入当前时间点
[Arguments] ${IP} ${USER} ${PASSWD}
Open Connection ${IP} 22
log 用户登录远程测试机器
SSHLibrary.Login ${USER} ${PASSWD}
Execute Command ./start_insertSQL.sh
Close Connection
OracleClp备份
[Arguments] ${Agent_Name}
元素点击 ${CDP_function} 点击实时数据保护成功 点击实时数据保护失败
元素输入 ${Input_CDP_SearchName} ${Agent_Name} 定位搜索输入框失败
sleep 2s
元素点击 xpath=//span[text()="${Agent_Name}"] 选择Oracle代理机器 定位Oracle代理机节点失败
Mouse Out xpath=//span[text()="${Agent_Name}"]
环境清理
元素点击 ${Add_CDP_BK_Policy} 点击添加策略 点击添加策略定位失败
元素点击 ${Select_OracleCLP_Type} 选择oracle数据库 定位选择oracle数据库类型失败
${date} Evaluate time.strftime('%Y%m%d%H%M%S',time.localtime()) time
${random_strategyName}= Catenate ${date}
Set Suite Variable ${random_strategyName}
Log 切换为全局变量
元素输入 ${Input_Oracle_PolicyName} ${random_strategyName} 定位策略名输入框失败
元素输入 ${Input_ORACLE_SID} ${Backup_OracleclpInstanceName} 定位搜索实例名输入框失败
元素点击 ${Cycle_OracleSID_Nextstep} 点击下一步 定位目标数据库下一步失败
Log 刷新加载数据库实例信息
sleep 5s
元素点击 ${Select_Oracle_InstanceSID} 选择Oracle实例 定位oracle数据库实例失败
元素点击 ${Cycle_Oracle_Select_SID_Next} 点击下一步进入Oracle选项页面 定位搜索下一步按钮失败
元素点击 ${Add_Credentials} 点击添加连接凭证 定位添加连接凭证失败
元素输入 ${OracleCLP_ipaddress} ${OracleCLP_DBHostIP_Lin} 定位IP地址输入框失败
元素输入 ${OracleCLP_port} 1521 定位端口输入框失败
元素输入 ${OracleCLP_sys_PWD} ${Oracle_DB_PASSWORD} 定位密码输入框失败
元素点击 ${Click_Sure} 点击确定完成连接 定位确定按钮失败
sleep 5s
元素点击 ${OracleCLP_NextStep3} 点击下一步进入到备份集存储页面 定位Oracle选项下一步失败
元素点击 ${OracleCLP_NextStep4} 点击下一步进入到备份高级选项 定位备份集存储下一步失败
元素点击 ${OracleCLP_NextStep5} 点击下一步进入到任务周期 定位备份高级选项下一步失败
获取初始快照时间
元素输入 ${Input_start_Time} ${time2} 定位初始快照开始时间输入框失败
元素点击 ${OracleCLP_NextStep6} 点击完成保护策略的创建 定位完成按钮失败
元素点击 ${Add_succeeded_OK} 点击确定按钮成功 点击确定按钮失败
FOR ${n} IN RANGE 10
Click Element ${OracleCLP_Policy_Refresh}
Sleep 10s
${bk_status} Run Keyword And Return Status Wait Until Element Is Visible Xpath=//*[@id="cdpContent"]//div[text()="保护中"]
Run Keyword If "${bk_status}"=="True" Exit For Loop
... ELSE Log 备份未完成
Sleep 60s
END
${bk_status} Run Keyword And Return Status Wait Until Element Is Visible Xpath=//*[@id="cdpContent"]//div[text()="保护中"]
Run Keyword If "${bk_status}"=="True" Log 备份成功
... ELSE Fail 备份失败
获取初始快照时间
${date} Get Current Date result_format=%Y-%m-%d
${time} Get Current Date result_format=%H:%M:%S
${time1}= Add Time To Time 1 minute ${time} timer exclude_millis=yes
${time2}= Catenate ${date} ${time1}
Set Suite Variable ${time2}
Log 切换为全局变量
环境清理
元素点击 ${OracleCLP_Policy} 切换到基本信息页面 定位基本信息页面失败
Sleep 2s
FOR ${n} IN RANGE 3
${policy_status} Run Keyword And Return Status Wait Until Element Is Visible ${OracleCLP_Police_Details}
Run Keyword If ${policy_status}==True 策略删除_OracleCLP
... ELSE Exit For Loop
END
Log 环境清理完毕
策略删除_OracleCLP
元素点击 ${OracleCLP_Snapshot} 进入快照数据页面成功 进入快照数据页面失败
sleep 15s
元素点击 ${OracleCLP_Bk_Refresh} 点击刷新按钮成功 点击刷新按钮失败
FOR ${n} IN RANGE 20
Click Element ${OracleCLP_Bk_Refresh}
${work_status} Run Keyword And Return Status Wait Until Element Is Visible ${OracleCLP_Snapshot_Fir_DEL}
Run Keyword If ${work_status}==True 删除快照数据
... ELSE Exit For Loop
Sleep 15s
END
Comment 元素点击 ${OracleCLP_Snapshot_Fir_DEL} 点击删除快照数据成功 点击删除快照数据失败
Comment 元素点击 ${Click_Sure} 点击确定删除按钮成功 点击确定删除按钮失败
元素点击 ${OracleCLP_Policy} 进入基本信息页面成功 进入基本信息页面失败
元素点击 ${OracleCLP_Police_Del} 点击确认删除策略成功 点击确认删除策略失败
元素点击 ${Click_Sure} 点击删除策略确定按钮成功 点击删除策略确定按钮失败
Oracle停止插入当前时间点
[Arguments] ${IP} ${USER} ${PASSWD}
Open Connection ${IP} 22
log 用户登录远程测试机器
SSHLibrary.Login ${USER} ${PASSWD}
Execute Command ./stop_insertSQL.sh
Close Connection
Oracle获取当前行数
[Arguments] ${CDM_Backup_Username} ${CDM_Backup_Password} ${CDM_Oracle_HostIP} ${Backup_OracleInstanceName}
sleep 30s
log 连接数据库
Connect To Database Using Custom Params cx_Oracle '${CDM_Backup_Username}','${CDM_Backup_Password}','${CDM_Oracle_HostIP}:1521/${Backup_OracleInstanceName}'
log 获取行数
${result} Row Count select * from time1
Disconnect From Database
Oracle删除表
[Arguments] ${CDM_Backup_Username} ${CDM_Backup_Password} ${CDM_Oracle_HostIP} ${Backup_OracleInstanceName}
log 连接数据库
Connect To Database Using Custom Params cx_Oracle '${CDM_Backup_Username}','${CDM_Backup_Password}','${CDM_Oracle_HostIP}:1521/${Backup_OracleInstanceName}'
${rowcount} Row Count select * from time1
Set Suite Variable ${rowcount}
Run Keyword If ${rowcount} >= 1 Execute Sql String drop table time1
Execute Sql String commit
Log 删除表成功
Disconnect From Database
OracleClp恢复
元素点击 ${OracleCLP_Police_Rec} 点击策略中的恢复按钮成功 点击策略中的恢复按钮失败
sleep 2
元素点击 ${OracleCLP_Bk_Rec} 点击恢复成功 定位恢复按钮失败
sleep 2
元素点击 ${OracleCLP_RecoveryPolicy_1} 点击基本信息页面的下一步按钮成功 点击基本信息页面的下一步按钮失败
元素输入 ${OracleCLP_RecPolicy_Instance} ${Backup_OracleclpInstanceName} 输入实例名失败
元素点击 ${OracleCLP_RecoveryPolicy_2} 点击恢复目标页面的下一步按钮成功 点击恢复目标页面的下一步按钮失败
元素点击 ${OracleCLP_RecoveryPolicy_3} 点击Oracle选项页面的下一步按钮成功 点击Oracle选项页面的下一步按钮失败
元素点击 ${Click_Time_Range} 点击恢复选项页面下的选择之间范围成功 点击Oracle选项页面的下一步按钮失败
元素点击 ${Select_Time_Range} 点击时间范围成功 点击时间范围失败
${get_attr}= Get Text xpath=//*[@id="timeFrame"]/xm-select/div[1]/div/div
Open Connection 10.18.32.93 22
log 用户登录远程测试机器
SSHLibrary.Login root unary@2008
Execute Command echo ${get_attr} >1.txt
${log}= Execute Command cat 1.txt | cut -d ' ' -f 4-
Close Connection
元素输入 xpath=//*[@id="BeginTime"] ${log} 输入时间点失败
元素点击 xpath=//*[@id="BackupDialog"]//div[text()="选择时间点:"] 点击选择时间点成功 点击选择时间点失败
元素点击 xpath=//*[@id="BeginTime"] 点击时间点输入框成功 点击时间点输入框失败
元素点击 xpath=//span[text()="确定" and @lay-type="confirm"] 点击确定按钮成功 点击确定按钮失败
元素点击 ${OracleCLP_RecoveryPolicy_4} 点击恢复选项页面的下一步按钮成功 点击恢复选项页面的下一步按钮失败
元素点击 ${OracleCLP_RecoveryPolicy_5} 点击高级选项页面的下一步按钮成功 点击高级选项页面的下一步按钮失败
元素点击 ${Confim_Delete_Bk} 点击恢复确认按钮成功 点击恢复确认按钮失败
元素点击 ${Add_succeeded_OK} 点击添加成功确认按钮 点击添加成功确认失败
元素点击 ${Job_Information} 点击作业信息页面成功 点击作业信息页面失败
元素点击 ${Job_Type_Rec} 选择恢复作业成功 选择恢复作业失败
元素点击 ${Job_Query} 点击作业信息页面的查询成功 点击作业信息页面的查询失败
FOR ${n} IN RANGE 20
Click Element ${Job_Query}
${work_status} Run Keyword And Return Status Wait Until Element Is Visible Xpath=//*[@id="jobtableContent"]//tr[@data-index="0"]//div[text()="本次恢复成功 "]
Run Keyword If ${work_status}==False Log 恢复未完成
... ELSE Exit For Loop
Sleep 60s
END
${work_status} Run Keyword And Return Status Wait Until Element Is Visible Xpath=//*[@id="jobtableContent"]//tr[@data-index="0"]//div[text()="本次恢复成功 "]
Run Keyword If ${work_status}==False Fail
... ELSE Log 恢复成功
Sleep 15s
OracleClp禁用
元素点击 ${OracleCLP_Police_Disable} 点击策略禁用成功 点击策略禁用失败
元素点击 ${Click_Sure} 点击策略禁用确定按钮成功 点击策略禁用确定按钮失败
sleep 10s
Oracle校验表
[Arguments] ${CDM_Backup_Username} ${CDM_Backup_Password} ${CDM_Oracle_HostIP} ${Backup_OracleInstanceName}
sleep 30s
log 连接数据库
Connect To Database Using Custom Params cx_Oracle '${CDM_Backup_Username}','${CDM_Backup_Password}','${CDM_Oracle_HostIP}:1521/${Backup_OracleInstanceName}'
log 获取行数
${result} Row Count select * from time1
Disconnect From Database
Run Keyword If {result}<=${rowcount} log 数据校验一致,恢复成功
... ELSE Fail 数据校验不一致,恢复失败
删除快照数据
元素点击 ${OracleCLP_Snapshot_Fir_DEL} 点击删除快照数据成功 点击删除连续日志的快照数据失败
元素点击 ${Click_Sure} 点击确定删除按钮成功 点击确定删除按钮失败