*** 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} 点击确定删除按钮成功 点击确定删除按钮失败