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

226 lines
15 KiB
Plaintext

*** Settings ***
Resource ../RE0_Common/KeyWord.robot
Resource ../RE0_Common/ElementPath.robot
Resource ElementPath.robot
Library Selenium2Library
Variables ../../Config/CDM/CDM_config.py
Library string
Library DateTime
Library DatabaseLibrary
*** Keywords ***
OracleRAC创建表
[Arguments] ${OracleRAC_TableName1} ${DBRACInstance_lin}
log 删除表
OracleRAC删除表 ${OracleRAC_TableName1} ${DBRACInstance_lin}
log 连接数据库
Connect To Database Using Custom Params cx_Oracle '${DBRACUser}','${DBRACPwd}','${DBRACInstance_lin}'
log 获取行数
${rowcount} Row Count select * from user_tables where table_name=upper('${OracleRAC_TableName1}')
Run Keyword If ${rowcount} <=0 Execute Sql String create table ${OracleRAC_TableName1}(id char(50),name varchar(200))
Execute Sql String insert into ${OracleRAC_TableName1}(id,name)values('1','yuyang')
Execute Sql String insert into ${OracleRAC_TableName1}(id,name)values('2','yuyang2')
Execute Sql String commit
${rownum} Row Count select * from ${OracleRAC_TableName1}
Set Suite Variable ${rownum}
Log ${rownum}
Disconnect From Database
OracleRAC删除表
[Arguments] ${OracleRAC_TableName1} ${DBRACInstance_lin}
log 连接数据库
Connect To Database Using Custom Params cx_Oracle '${DBRACUser}','${DBRACPwd}','${DBRACInstance_lin}'
${rowcount} Row Count select * from user_tables where table_name=upper('${OracleRAC_TableName1}')
Run Keyword If ${rowcount} >= 1 Execute Sql String drop table ${OracleRAC_TableName1}
Disconnect From Database
OracleRAC备份
[Arguments] ${agent_name} ${bk_type} ${mds_name}
元素点击 ${CDM_dataProtect} 点击副本数据保护成功 定位副本数据保护定位失败
元素点击 xpath=//span[text()="${agent_name}"] 点击选择代理 定位代理所在位置失败
sleep 2s
Comment 策略清理_Oracle
元素点击 ${Add_RACCDM_BK_Policy} 点击添加策略 点击添加策略定位失败
元素点击 ${Select_Oracle_Type} 选择oracle数据库 定位选择oracle数据库类型失败
${date} Evaluate time.strftime('%Y%m%d%H%M%S',time.localtime()) time
${random_strategyName}= Catenate SEPARATOR=_ ${bk_type} ${date}
Set Suite Variable ${random_strategyName}
Log 切换为全局变量
元素输入 ${Input_Oracle_PolicyName} ${random_strategyName} 定位策略名输入框失败
元素点击 ${Select_Backup_source1} 点击浏览备份源下拉框成功 点击浏览备份源下拉框失败
元素点击 ${Select_Node} 选择racnode1-p节点成功 选择racnode1-p节点失败
元素点击 ${Click_Next} 点击下发策略下一步按钮成功 点击下发策略下一步按钮失败
元素点击 ${Add_Instance} 点击添加实例成功 点击添加实例失败
元素点击 ${Select_Node1} 选择node1节点成功 选择node1节点失败
元素输入 ${Input_Oracleinstance} ${OracleRAC1_Instance} 定位实例名输入框失败
元素点击 ${Click_Sure} 定位确定按钮成功 定位确定按钮失败
sleep 5s
元素点击 ${Add_Instance} 点击添加实例成功 点击添加实例失败
元素点击 ${Select_Node2} 选择node2节点成功 选择node2节点失败
元素输入 ${Input_Oracleinstance2} ${OracleRAC2_Instance} 定位实例名输入框失败
元素点击 ${Click_Sure} 定位确定按钮成功 定位确定按钮失败
sleep 5s
元素点击 ${Click_Next1} 点击连接凭据页面下一步按钮 点击连接凭据页面下一步按钮失败
元素点击 ${Select_Oracle_InstanceSID} 点击勾选数据库 定位数据库勾选框失败
元素点击 ${Click_Next2} 点击目标数据库页面下一步按钮 定位目标数据库页面下一步按钮失败
元素点击 ${Option_NextStep} 点击Oracle选项页面下一步按钮 定位Oracle选项页面下一步按钮失败
元素点击 ${Cycle_Add_Task} 点击添加任务周期 定位添加任务周期按钮失败
Run Keyword If "${bk_type}"=="完全" 完全备份
... ELSE IF "${bk_type}"=="增量" 永久增量备份
... ELSE Fail 定位备份类型失败
元素点击 ${Cycle_Onetime} 选择仅备份一次 定位一次循环模式定位失败
元素点击 ${Cycle_Oracle_Task_Commit} 点击确定完成任务周期设置 定位搜索确定按钮失败
元素点击 ${Cycle_Oracle_Task_Next} 点击下一步 定位搜索下一步按钮失败
元素点击 ${Input_Choose_MDS} 选择手动指定MDS介质 定位手动选择MDS介质选项失败
元素点击 ${Select_MDS_CDM} 点击展开介质选项下拉框 定位介质下拉框失败
元素点击 xpath=//select[@id="dialogues_addCycleStorage_storagePath_selectMedia_selectedMdsIP_select"]/option[@label="${mds_name}"] 点击选择指定介质 定位指定介质失败
元素点击 ${Cycle_Oracle_Disk_Next} 点击下一步进入备份高级选项 定位备份集存储下一部失败
sleep 2s
元素点击 ${Cycle_Oracle_Finish_Commit} 点击完成策略创建 定位策略完成失败
Sleep 2s
元素点击 ${Success_Confirm} 策略确定创建完毕 定位策略创建成功弹窗失败
元素点击 ${Backup_html} 点击副本管理成功 定位副本管理界面失败
元素输入 ${Input_Oracle_Backups_Policy_Name} ${random_strategyName} 定位搜索策略名失败
元素点击 ${Cycle_Search_PolicyName} 点击搜索成功 定位搜索按钮失败
FOR ${n} IN RANGE 10
Click Element ${Cycle_Search_PolicyName}
Sleep 10s
${bk_status} Run Keyword And Return Status Wait Until Element Is Visible Xpath=//tr[@data-index="0"]/td/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=//tr[@data-index="0"]/td/div[text()="已完成"]
Run Keyword If "${bk_status}"=="True" Log 备份成功
... ELSE Fail 备份失败
完全备份
元素点击 ${Select_Task_fullBackup} 选择完全备份 定位完全备份选项失败
永久增量备份
元素点击 ${Incremental_Backup} 点击选择永久增量备份 定位永久增量备份失败
OracleRAC恢复
元素点击 ${Backup_html} 点击副本管理成功 定位副本管理界面失败
sleep 2
元素点击 ${Select_Oracle_Restore_Option} 点击操作成功 定位操作按钮失败
元素点击 ${Select_Oracle_Restore} 点击恢复按钮成功 定位恢复按钮失败
sleep 5
元素点击 ${Info_NextStep} 点击下一步进入到恢复目标页面 定位备份内容下一部失败
元素点击 ${Select_recovery_host} 点击选择主机成功 点击选择主机失败
元素点击 ${Select_recovery_RAC1} 点击选择节点1成功 点击选择节点1失败
元素点击 ${Click_ASMRecoveryMode} 恢复方式选择ASM成功 恢复方式选择ASM失败
元素点击 ${Recover_RACinstancename} 点击添加实例按钮成功 点击添加实例按钮失败
元素点击 ${Recover_Select_Node1} 选择节点1成功 选择节点1失败
元素点击 ${Conne_type} 连接方式选择os连接成功 连接方式选择os连接失败
元素输入 ${Recover_RAC1InstanceName} ${OracleRAC_Instance} 输入实例名失败
Comment 元素输入 ${Recover_RAC1_User_Name} ${OracleRACUser} 输入用户名失败
Comment 元素输入 ${Recover_RAC1_Password} ${DBRACPwd} 输入密码失败
元素点击 ${Click_Sure} 点击确定按钮成功 点击确定按钮失败
元素点击 ${Cycle_Oracle_Restore_Next} 点击下一步进入到Oracle选项 定位下一步按钮失败
元素点击 ${Rec_OracleOption_NextStep} 点击下一步进入到恢复选项 定位Oracle选项下一步失败
元素点击 ${Rec_Option_NextStep} 点击下一步进入到高级选项 定位恢复选项下一步失败
元素点击 ${Cycle_Oracle_Restore_Finish} 点击完成按钮成功 定位完成按钮失败
元素点击 ${confirm_restore} 点击确认恢复按钮成功 点击确认恢复按钮失败
sleep 5
元素点击 ${Success_Confirm} 恢复任务添加完成 定位添加恢复任务成功按钮失败
Log 开始恢复......
元素点击 ${Select_JobHtml} 点击作业界面成功 定位作业界面失败
元素输入 ${Host_Search} ${OracleRAC1_Name} 输入主机名成功
元素点击 xpath=//span[@class="standartTreeRow"and text()="${OracleRAC1_Name}"] 选择节点1成功 选择节点2失败
FOR ${n} IN RANGE 20
${work_status} Run Keyword And Return Status Wait Until Element Is Visible Xpath=//table[@lay-size="sm"]//tr[1]//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=//table[@lay-size="sm"]//tr[1]//div[text()="成功"]
Run Keyword If ${work_status}==False Fail
... ELSE Log 恢复成功
Sleep 15s
OracleRAC校验表
[Arguments] ${OracleRAC_TableName1} ${DBRACInstance_lin}
log 连接数据库
Connect To Database Using Custom Params cx_Oracle '${DBRACUser}','${DBRACPwd}','${DBRACInstance_lin}'
log 获取行数
${result} Row Count select * from user_tables where table_name=upper('${OracleRAC_TableName1}')
Execute Sql String select * from ${OracleRAC_TableName1}
Disconnect From Database
Run Keyword If "${result}"=="${rownum}" log 数据校验一致,恢复成功
... ELSE Fail 数据校验不一致,恢复失败
OracleRAC插入数据
[Arguments] ${OracleRAC_TableName1} ${DBRACInstance_lin}
log 连接数据库
Connect To Database Using Custom Params cx_Oracle '${DBRACUser}','${DBRACPwd}','${DBRACInstance_lin}'
log 获取行数
${rowcount} Row Count select * from user_tables where table_name=upper('${OracleRAC_TableName1}')
Run Keyword If ${rowcount} >=1 Execute Sql String insert into ${OracleRAC_TableName1} select * from ${OracleRAC_TableName1}
${rownum} Row Count select * from ${OracleRAC_TableName1}
Set Suite Variable ${rownum}
Log ${rownum}
Disconnect From Database
立即执行OracleRAC
[Arguments] ${BK_type}
元素点击 ${CDM_dataProtect} 点击副本数据保护成功 定位副本数据保护定位失败
元素点击 xpath=//li[@id="cdm_tab_policy_li"]/span[text()="保护策略"] 切换到副本保护策略栏 定位副本保护策略功能栏失败
Sleep 2s
元素点击 xpath=//td[text()="${random_strategyName}"]/..//span[text()="立即执行"] 点击策略立即执行 定位立即执行失败
Sleep 2s
元素点击 ${Now_Run_Type} 点击展开立即执行下拉框 定位立即执行备份类型失败
Run Keyword If "${bk_type}"=="完全" 立即执行_完全备份
... ELSE IF "${bk_type}"=="增量" 立即执行_增量备份
Sleep 2s
循环点击 ${Confirm_Exec} ${Delete_succeeded_OK}
Sleep 5s
元素点击 ${Delete_succeeded_OK} 点击确定按钮 定位确定按钮失败
元素点击 ${CDM_BK} 点击进入备份集一栏 定位备份集栏失败
元素输入 xpath=//*[@id="backTabPolicy"] ${random_strategyName} 输入策略名
FOR ${n} IN RANGE 10
Click Element xpath=//span[@id="cdm_tab_backupset_searchfilter_span"]
${bk_status} Run Keyword And Return Status Wait Until Element Is Visible Xpath=//tr[@data-index="0"]//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 15s
立即执行_完全备份
元素点击 xpath=//option[@label="完全备份"] 点击立即执行完全备份 定位完全备份选项失败
立即执行_增量备份
元素点击 ${Option_Increbk} 点击立即执行增量备份 定位增量备份选项失败
OracleRAC快速挂载
[Arguments] ${Mount_Agent}
元素点击 ${Select_Oracle_Restore_Option} 点击操作成功 定位操作按钮失败
sleep 5s
元素点击 ${Oracle_Backups_Mount} 点击挂载按钮成功 定位挂载按钮失败
元素点击 ${Info_NextStep} 点击下一步进入到恢复目标页面 定位备份内容下一部失败
元素点击 xpath=//dd[@class="layui-this" and text()="racnode1-p (10.10.31.180)"] 选择挂载机成功 选择挂载机失败
元素输入 ${Input_Oracle_Mount_NewSID} ${Mount_OracleInstanceName} 定位实例名元素失败
元素点击 ${Cycle_Oracle_Mount_Next} 点击下一步进入挂载选项 定位下一步按钮失败
元素点击 ${Oracle_Mount_NextStep} 点击下一步进入高级选项 定位挂载选项下一部失败
元素点击 ${Cycle_Oracle_Mount_Finish} 点击完成成功 定位完成按钮失败
元素点击 ${Delete_succeeded_OK} 点击添加成功确定按钮成功 点击添加成功确定按钮失败
元素输入 ${Input_Oracle_SearchName} ${Mount_Agent} 定位搜索输入框失败
元素点击 xpath=//span[text()="${Mount_Agent}"] 选择Oracle代理机器 定位Oracle代理机节点失败
元素点击 ${Select_JobHtml} 点击作业界面成功 定位作业界面失败
sleep 60s
Wait Until Page Contains Element ${Search_Mount_JobStatus} 300s 挂载未完成
Log 挂载99%成功
OracleRAC停止挂载
[Arguments] ${agent}
元素输入 ${Input_Oracle_SearchName} ${agent} 定位搜索输入框失败
元素点击 xpath=//span[text()="${agent}"] 选择Oracle代理机器 定位Oracle代理机节点失败
元素点击 ${Cycle_Oracle_Make} 点击操作按钮成功 定位操作按钮失败
元素点击 ${Cycle_Oracle_StopJob} 点击停止按钮成功 定位停止按钮失败
元素点击 ${Cycle_Oracle_StopMount_Confirm} 点击完成成功 定位完成失败
元素点击 ${Cycle_Restore_Finish_OK} 点击停止成功按钮成功 定位停止成功按钮失败
Log 停止挂载成功