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

289 lines
17 KiB
Plaintext

*** Settings ***
Resource ElementPath.robot
Resource ../RE0_Common/KeyWord.robot # 公共关键字
Resource ../RE0_Common/ElementPath.robot # 公共xpath
Library Selenium2Library
Library DatabaseLibrary
Library SSHLibrary
Library ../../Script/SC2_Database/02_DB2/db2myclass.py
*** Keywords ***
DB2备份
[Arguments] ${DB2_Agent} ${User_Name} ${DB_PWD} ${Instance_Name} ${InstallPath} ${bk_type} ${mds_name} ${encryption_attr} ${compress_attr} ${dedup_attr} ${Srcbkfun}
元素点击 ${Timed_DataProtect} 选择定时数据保护 定位定时数据保护栏失败
元素点击 xpath=//span[text()="${DB2_Agent}"] 点击选择代理 定位代理所在位置失败
元素点击 ${Add_Policy} 点击添加策略按钮 定位添加策略按钮失败
元素点击 ${Select_Backup source_DB2} 选择备份类型 定位DB2备份失败
${date} Evaluate time.strftime('%Y%m%d%H%M%S',time.localtime()) time
${random_strategyName}= Catenate SEPARATOR=_ ${bk_type} ${date}
${createpolicy} Catenate SEPARATOR= 新建了策略[ ${random_strategyName} ]
Set Suite Variable ${random_strategyName}
Set Suite Variable ${createpolicy}
元素输入 ${Input_celuename} ${random_strategyName} 定位策略名输入框失败
sleep 8s
元素输入 ${DB2_Username} ${User_Name} 定位用户名失败
元素输入 ${DB2_Password} ${DB_PWD} 定位密码失败
元素输入 ${DB2_Instance} ${Instance_Name} 定位实例名失败
元素点击 ${Advanced_Setup_DB2} 点击切换到高级设置 定位高级设置失败
元素输入 ${DB2_UpdatePath} ${InstallPath} 定位安装路径输入框失败
sleep 5s
元素点击 ${Connection credentials_Next} 点击下一步 定位下一步失败
sleep 10s
元素点击 ${Select_Target database_DB2} 选择目标数据库 定位目标数据库失败
元素点击 ${Target_database_Next} 点击下一步 定位下一步失败
Sleep 2s
元素点击 ${Add_taskcycle} 添加任务周期 定位添加任务周期失败
Run Keyword If "${bk_type}"=="完全" Click Element ${Full_Backup}
... ELSE IF "${bk_type}"=="差量" Click Element ${Difference_Backup}
... ELSE IF Click Element ${Add_Backup}
元素点击 ${Select_onlyone} 选择仅一次 定位仅一次失败
元素点击 ${Week_OK} 点击确定 定位确定失败
元素点击 ${Cycle_NextStep} 点击下一步 定位下一步失败
元素点击 ${Manual_ChooseMDS} 点击勾选手动选择介质 定位选择介质失败
元素点击 ${Select_Sqlserver_MDS} 点击介质选择按钮 定位介质选择按钮失败
元素点击 xpath=//select[@id="dialogues_addCycleStorage_storagePath_selectMedia_selectedMdsIP_select"]/option[@label="${mds_name}"] 点击选择指定介质 定位指定介质失败
Run Keyword If ${dedup_attr}==1 重删
... ELSE log 不勾选重删
元素点击 ${Backup Storage_Next_DB2} 点击下一步 定位下一步失败
log 进入备份高级选项
Run Keyword If ${encryption_attr}==1 加密
... ELSE log 不勾选加密
Run Keyword If ${compress_attr}==1 压缩
... ELSE IF ${compress_attr}==0 取消压缩
Run Keyword If ${Srcbkfun}==1 设置缓存备份路径
... ELSE Log 不勾选缓存备份
sleep 2s
Comment 元素点击 ${File_Senior_NextStep} 点击下一步进入到备份信息确认栏 定位下一步失败
循环点击 ${Complete_Policy_Create_No_Info} ${Success_Confirm}
sleep 8s
元素点击 ${Success_Confirm} 确定策略创建成功 策略创建失败
log 开始备份
sleep 5s
元素点击 ${BackupSet} 点击进入备份集一栏 定位备份集栏失败
sleep 5s
元素输入 ${Input_Policy_Name} ${random_strategyName} 定位策略名搜索框失败
元素点击 ${DPMButton_Searchbutton} 点击查找筛选策略 定位查找按钮失败
sleep 60s
Wait Until Page Contains Element ${Click_recover} 120s 备份未完成
Log 备份完成
DB2恢复
[Arguments] ${User_Name} ${DB_PWD} ${Instance_Name} ${InstallPath} ${Srcbkfun}
元素点击 ${BackupSet} 选择备份集页面 定位备份集页面失败
元素输入 ${Input_Policy_Name} ${random_strategyName} 定位策略名搜索框失败
元素点击 ${DPMButton_Searchbutton} 点击查找筛选策略 定位查找按钮失败
元素点击 ${Click_recover} 点击恢复按钮 定位恢复按钮失败
sleep 30s
Comment 元素点击 xpath=//td[text()="${random_strategyName}"]/..//span[@id="compileBackupRecId0" and text()="恢复"] 点击恢复指定备份集 定位要恢复的备份集失败
元素输入 ${DB2_Recory_Username} ${User_Name} 定位用户名失败
元素输入 ${DB2_Recovry_Pwd} ${DB_PWD} 定位密码失败
元素输入 ${DB2_Recovry_Instance} ${Instance_Name} 定位实例名失败
元素点击 ${Advanced_Setup_Recovery_DB2} 点击切换到高级设置 定位高级设置栏失败
元素输入 ${DB2_Recover_InstallPath} ${InstallPath} 定位DB2安装路径输入框失败
sleep 5s
元素点击 ${Recover_next1_db2} 点击下一步进入到高级选择页面 定位高级选择项页面下一步失败
sleep 5s
Run Keyword If ${Srcbkfun}==1 设置缓存恢复路径
... ELSE Log 不设置缓存恢复
元素点击 ${Recover_finish_db2} 点击完成按钮 定位完成按钮失败
Sleep 2s
元素点击 ${Confirm_Recovery} 点击确认执行恢复 定位执行恢复确认按钮失败
元素点击 ${Success_Confirm} 恢复策略确定创建成功 恢复作业创建成功弹窗定位失败
元素点击 ${Policy_Work} 点击进入作业栏 定位作业栏失败
元素点击 ${work_type_select} 点击所有类型下拉框 所有类型下拉框定位失败
元素点击 ${select_recover} 选择恢复类型 恢复类型选择失败
元素点击 ${Search_By_Policy} 点击查询 定位查询按钮失败
Sleep 60s
Wait Until Page Contains Element ${Recover_Success} 100s 恢复失败
sleep 2s
Log 恢复成功
DB2立即执行差量备份
元素点击 ${dpm_Protection strategy} 选择定时保护策略 定位定时保护策略失败
元素点击 xpath=//td[text()="${random_strategyName}"]/..//span[text()="立即执行"] 点击立即执行 定位立即执行失败
元素点击 ${Select_BackType} 点击选择备份类型 定位选择备份类型失败
元素点击 ${Now Difference_Backup} 选择差量备份 定位差量备份失败
元素点击 ${DB2_Instant_Exc} 点击立即执行确定 定位立即执行确定失败
元素点击 ${Success_Confirm} 点击确定 定位确定失败
log 开始备份
Sleep 60s
元素点击 ${BackupSet} 点击进入备份集一栏 定位备份集栏失败
Sleep 60s
Wait Until Page Contains Element Xpath=//td[4][text()="${random_strategyName}"]/..//td[text()="DB2差量备份"]/..//td[text()="已完成"] 300s 备份未完成
Log 备份完成
Sleep 2s
DB2立即执行增量备份
元素点击 ${dpm_Protection strategy} 选择定时保护策略 定位定时保护策略失败
元素点击 xpath=//td[text()="${random_strategyName}"]/..//span[text()="立即执行"] 点击立即执行 定位立即执行失败
元素点击 ${Select_BackType} 点击选择备份类型 定位选择备份类型失败
元素点击 ${Now Add_Backup} 选择差量备份 定位差量备份失败
元素点击 ${DB2_Instant_Exc} 点击立即执行确定 定位立即执行确定失败
元素点击 ${Success_Confirm} 点击确定 定位确定失败
log 开始备份
Sleep 60s
元素点击 ${BackupSet} 点击进入备份集一栏 定位备份集栏失败
Sleep 60s
Wait Until Page Contains Element Xpath=//td[4][text()="${random_strategyName}"]/..//td[text()="DB2增量备份"]/..//td[text()="已完成"] 300s 备份未完成
Log 备份完成
Sleep 2s
删除DB2数据表
[Arguments] ${db2_env_lin} ${db2_TableName} ${db2_Instance_lin} # 代理连接参数;表名;实例名
log DB2删表
${row_count} countdb2 select count(*) from sysstat.TABLES where TABSCHEMA=upper('${db2_Instance_lin}') and TABNAME='${db2_TableName}' ${db2_env_lin}
Run Keyword IF ${row_count}>=0 dropdb2 drop table ${db2_TableName} ${db2_env_lin}
log 表删除成功
${row_count} countdb2 select count(*) from ${db2_TableName} ${db2_env_lin}
log 确认表删除成功
校验DB2数据表
[Arguments] ${db2_env_lin} ${db2_TableName} ${db2_Instance_lin} # 代理连接参数;表名;实例名
log 检查表是否存在
log 更新统计信息
${row_count} countdb2 select count(*) from sysstat.TABLES where TABSCHEMA=upper('${db2_Instance_lin}') and TABNAME='${db2_TableName}' ${db2_env_lin}
log ${row_count}
Run Keyword IF ${row_count} > 0 log 存在表${db2_TableName}
${table_row_num} countdb2 select count(*) from ${db2_TableName} ${db2_env_lin}
log ${table_row_num}
Comment log ${row_count_tab}
Run Keyword If "${table_row_num}"=="${row_count_tab}" log 数据校验一致,恢复成功
... ELSE log 数据校验不一致,恢复失败
创建DB2数据表
[Arguments] ${db2_env_lin} ${db2_TableName} ${db2_Instance_lin} # 代理连接参数;表名;实例名
删除DB2数据表 ${db2_env_lin} ${db2_TableName} ${db2_Instance_lin}
log 更新统计信息
${row_count}= countdb2 select count(*) from sysstat.TABLES where TABSCHEMA=upper('${db2_Instance_lin}') and TABNAME='${db2_TableName}' ${db2_env_lin}
Run Keyword IF ${row_count}<=0 createdb2 create table ${db2_TableName} ( id varchar(50),name varchar(200)) ${db2_env_lin}
log 表创建成功
insertdb2 insert into ${db2_TableName}(id,name) values('1','aaa') ${db2_env_lin}
insertdb2 insert into ${db2_TableName}(id,name) values('2','bbb') ${db2_env_lin}
insertdb2 insert into ${db2_TableName}(id,name) values('3','ccc') ${db2_env_lin}
log 数据插入完成
sleep 1s
${row_count_tab}= countdb2 select count(*) from ${db2_TableName} ${db2_env_lin}
Set Suite Variable ${row_count_tab}
Comment Return From Keyword ${row_count_tab}
log ${row_count_tab}
插入DB2数据
[Arguments] ${db2_env_lin} ${db2_TableName} ${db2_Instance_lin} # 代理连接参数;表名;实例名
log 更新统计信息
${row_count} countdb2 select count(*) from sysstat.TABLES where TABSCHEMA=upper('${db2_Instance_lin}') and TABNAME='${db2_TableName}' ${db2_env_lin}
Run Keyword IF ${row_count}>0 insertdb2 insert into ${db2_TableName}(id,name) values('4','ddd') ${db2_env_lin}
insertdb2 insert into ${db2_TableName}(id,name) values('5','eee') ${db2_env_lin}
insertdb2 insert into ${db2_TableName}(id,name) values('6','fff') ${db2_env_lin}
log 数据插入完成
sleep 1s
${row_count_tab} countdb2 select count(*) from ${db2_TableName} ${db2_env_lin}
Set Suite Variable ${row_count_tab}
log ${row_count_tab}
Comment Return From Keyword ${row_count_tab}
压缩
log 点击压缩
元素点击 ${Option_Compress} 点击压缩 属性定位失败
sleep 3s
加密
元素点击 ${Sqlserver_Encryption} 点击勾选DB2加密 定位DB2加密选项失败
重删
Sleep 2s
元素点击 ${Option_Dedup_DB2} 勾选重删 定位重删选项失败
Sleep 2s
取消压缩
Comment Set Focus To Element ${Option_Compress}
Comment Click Element ${Option_Compress}
Log 不勾选压缩
DB2立即执行
[Arguments] ${bk_type} # 立即执行备份类型
元素点击 ${Timed_DataProtect} 点击进入定时数据保护页面 定位定时数据保护失败
元素点击 ${dpm_Protection strategy} 切换到定时保护策略栏 定位定时保护策略功能栏失败
Sleep 5s
元素点击 xpath=//td[text()="${random_strategyName}"]/..//span[text()="立即执行"] 点击策略立即执行 定位立即执行失败
元素点击 ${Select_BackType} 点击展开立即执行下拉框 定位立即执行备份类型失败
Run Keyword If "${bk_type}"=="1" 立即执行_完全
... ELSE IF "${bk_type}"=="2" 立即执行_差量备份
... ELSE IF "${bk_type}"=="3" 立即执行_增量备份
Sleep 5s
循环点击 ${ExecutePolicy_execute} ${Complie_confirm}
Sleep 8s
元素点击 ${Complie_confirm} 点击确定按钮 定位确定按钮失败
Sleep 8s
元素点击 ${BackupSet} 点击进入备份集一栏 定位备份集栏失败
sleep 5s
元素输入 ${Input_Policy_Name} ${random_strategyName} 定位策略名搜索框失败
元素点击 ${DPMButton_Searchbutton} 点击查找筛选策略 定位查找按钮失败
Sleep 60s
Wait Until Page Contains Element xpath=//*[@id="backupSetTable"]//tr[2]/td[text()="已完成"] 300s 备份未完成
Log 备份完成
Sleep 5s
立即执行_完全
元素点击 ${Now Full_Bacup} 点击立即执行完全备份 定位完全备份选项失败
立即执行_差量备份
元素点击 ${Now Difference_Backup} 点击立即执行差量备份 定位差量备份选项失败
立即执行_增量备份
元素点击 ${Now Add_Backup} 点击立即执行增量备份 定位增量备份选项失败
备份集属性校验
[Arguments] ${encryption} ${compress} ${deduped} # \ 加密|压缩| 重删
sleep 10s
循环点击 ${BackupSet} ${Detail}
sleep 2s
元素点击 ${Detail} 点击进入备份集详情 定位备份集详情失败
Sleep 10s
Run Keyword If ${encryption}==1 加密属性校验
... ELSE Log 属性不校验
Run Keyword If ${compress}==1 压缩属性校验
... ELSE Log 属性不校验
Run Keyword If ${deduped}==1 重删属性校验
... ELSE Log 属性不校验
元素点击 ${Attr_Cancel} 点击取消关闭备份集详情弹窗 定位取消按钮失败
Log 备份集属性确认完毕
Sleep 2s
加密属性校验
Element Should Contain xpath=//*[@id="dpm_backupset_backUpSetInfo_encryption_state_td"] 是
Log 加密属性校验完毕
压缩属性校验
${get_attr}= Get Text ${Compress_Attr}
Element Text Should Be ${Compress_Attr} 是
Log 压缩属性校验完毕
重删属性校验
${get_attr}= Get Text ${H3C_Deduped_Attr}
Element Should Contain ${H3C_Deduped_Attr} 是
Log 重删属性校验完毕
DB2启动服务
[Arguments] ${Host_IP} ${Host_User} ${Host_PWD} # IP、数据库安装用户、密码
[Documentation] 1、启动数据库服务
log 启动DB2数据库服务
Open Connection ${Host_IP} 22
SSHLibrary.Login ${Host_User} ${Host_PWD}
Execute Command db2start
sleep 15s
Close Connection
log DB2服务已启动
设置缓存备份路径
log Windows代理设置缓存路径
元素点击 ${Change_Cachepath} 点击更改缓存路径 定位更改缓存路径
元素输入 ${Informix_Cache_Path} C:\\backup 定位缓存路径输入框失败
元素点击 ${Fin_CachePath} 缓存路径设置完毕 定位缓存路径设置确定按钮失败
设置缓存恢复路径
log Windows代理设置恢复缓存路径
元素点击 ${Gbase8s_changecache} 点击更改缓存路径 定位更改缓存路径
元素输入 ${Rcache_path} C:\\backup 定位缓存路径输入框失败
元素点击 ${SF_Recover_Cache_Confirm} 缓存路径设置完毕 定位缓存路径设置确定按钮失败