robotframework-demo/Project/task4/Resource/RE6_Sync/KeyWord_Sync.robot

366 lines
24 KiB
Plaintext
Raw Normal View History

2023-12-14 03:19:52 +00:00
*** Settings ***
Library Selenium2Library
Resource ElementPath.robot
Resource ../RE0_Common/KeyWord.robot
*** Keywords ***
创建实时同步任务
[Arguments] ${agent_name} ${Tun_enc} ${Tun_com} ${Tun_dup} # cdp代理名称|管道加密框|管道压缩框|管道重删框
Unselect Frame
元素点击 ${Sync} 点击进入异地灾备页面 定位异地灾备按钮失败
Sleep 5s
元素点击 ${Sync_Tunnel} 选择同步管道 定位同步管道失败
Mouse Out ${Sync_Tunnel}
Sleep 2s
循环点击 ${Add_Sync_Task} ${Task_CDP}
Sleep 2s
元素点击 ${Task_CDP} 选择创建实时数据同步任务 定位实时数据保护按钮失败
元素点击 xpath=//span[text()="${agent_name}"]/../..//td[2] 选择需要同步的cdp代理 定位cdp代理失败
元素点击 ${Add_Sync_Source} 点击添加数据源 定位添加数据源失败
${date} Evaluate time.strftime('%Y%m%d%H%M%S',time.localtime()) time
${Sync_Name}= Catenate SEPARATOR=_ CDP同步 ${date}
Set Suite Variable ${Sync_Name}
Log 设置同步任务名称为全局变量
元素输入 ${Sync_Policy_Name} ${Sync_Name} 定位远程同步任务名称输入框失败
元素点击 ${SyncPolicy_NextStep} 点击下一步进入同步选项 定位下一步按钮失败
元素点击 ${Manual_MDS} 选择手动指定介质 定位手动指定介质失败
Run Keyword If ${Tun_enc}==1 Click Element ${Sync_Tun_Encryption}
... ELSE Log 不勾选管道加密
Sleep 1s
Run Keyword If ${Tun_com}==1 Click Element ${Sync_Tun_Compress}
... ELSE Log 不勾选管道压缩
Sleep 1s
Run Keyword If ${Tun_dup}==1 Click Element ${Sync_Tun_Dedup}
... ELSE Log 不勾选管道重删
Sleep 1s
循环点击 ${Complete_Create_SyncTask} ${Success_Confirm}
元素点击 ${Success_Confirm} 同步任务创建成功 同步任务创建失败
元素点击 xpath=//td[text()="${Sync_Name}"]/..//span[text()="启动"] 开启同步任务 定位启动任务按钮失败
Sleep 120s
元素点击 ${Success_Confirm} 确认任务创建成功 定位任务创建成功失败
Sleep 5s
FOR ${n} IN RANGE 100
元素点击 xpath=//td[text()="${Sync_Name}"]/..//span[text()="详情"] 打开同步任务详情 定位详情失败
${sync_snapshot_1}= Get Text ${Snap_Num1}
${sync_snapshot_2}= Get Text ${Snap_Num2}
${Sync_Status}= Set Variable If ${sync_snapshot_1}==${sync_snapshot_2} True False
元素点击 ${Sync_Task_More} 关闭详情弹窗 定位详情弹窗关闭按钮失败
Run Keyword If "${Sync_Status}"=="True" Exit For Loop
... ELSE Log 同步任务未完成
Sleep 50s
END
循环点击 xpath=//td[text()="${Sync_Name}"]/..//span[text()="详情"] xpath=//td[contains(text(),"B/")]
${Sync_Status} Run Keyword And Return Status Wait Until Element Is Visible xpath=//div[contains(text(),"B/0B")]
Run Keyword If "${Sync_Status}"=="False" Fail 同步失败
... ELSE Log 同步成功
元素点击 ${Sync_Task_More} 关闭详情弹窗 定位详情弹窗关闭按钮失败
创建定时同步任务
[Arguments] ${agent_name} ${Tun_enc} ${Tun_com} ${encrption} ${compress} ${dedup} # 代理名称|管道加密|管道压缩|加密|压缩|重删
元素点击 ${Remote_Sync} 点击进入异地灾备页面 定位异地灾备按钮失败
元素点击 ${Sync_Tunnel} 选择同步管道 定位同步管道失败
Mouse Out ${Sync_Tunnel}
${Sync_Info} Run Keyword And Return Status Wait Until Element Is Visible ${DPM_Sync_Status}
Run Keyword If ${Sync_Info}==True 删除定时同步任务
... ELSE Log 不存在副本同步任务
元素点击 ${Add_Sync_Task} 点击添加同步任务 定位添加任务失败
元素点击 ${Task_DPM} 点击创建定时同步任务 定位远程同步定时数据保护任务
元素点击 xpath=//span[text()="${agent_name}"]/../../td[1] 点击展开代理任务 定位代理任务展开失败
元素点击 xpath=//span[text()="${random_strategyName}"]/../../td[2] 点击选择备份任务 定位任务失败
元素点击 ${Add_Sync_Source} 点击添加数据源 定位添加数据源失败
${date} Evaluate time.strftime('%Y%m%d%H%M%S',time.localtime()) time
${Sync_Name}= Catenate SEPARATOR=_ DPM同步 ${date}
Set Suite Variable ${Sync_Name}
元素输入 ${Sync_Policy_Name} ${Sync_Name} 定位远程同步任务名称输入框失败
元素点击 ${SyncPolicy_NextStep} 点击下一步进入同步选项 定位下一步按钮失败
元素点击 ${Manual_MDS} 选择手动指定介质 定位手动指定介质失败
Run Keyword If ${encrption}==1 同步新设置 ${Y} ${N}
Sleep 1s
Run Keyword If ${compress}==1 同步新设置 ${N} ${Y}
Sleep 1s
Run Keyword If ${dedup}==1 Click Element ${Sync_Dep}
... ELSE Log 不勾选管道重删
Sleep 1s
循环点击 ${Complete_Create_SyncTask} ${Success_Confirm}
元素点击 ${Success_Confirm} 同步任务创建成功 同步任务创建失败
循环点击 xpath=//td[text()="${Sync_Name}"]/../..//span[text()="启动"] ${Success_Confirm}
Sleep 30s
元素点击 ${Success_Confirm} 点击确定完成任务创建 任务启动失败
Sleep 150s
创建副本同步任务
[Arguments] ${agent_name} ${Tun_enc} ${Tun_com} ${Tun_dup} # 代理名称|管道加密|管道压缩|管道重删
[Documentation] 功能:创建副本同步任务
...
... 使用方法:创建副本同步任务 \ 代理名 \ 管道加密 \ 管道压缩 \ 管道重删
...
... 变量:${agnet_name} \ \ ${Tun_enc} \ \ ${Tun_com} \ \ $${Tun_dup}
... ${Y}表示勾选
... ${N}表示不勾选
元素点击 ${Remote_Sync} 点击进入异地灾备页面 定位异地灾备按钮失败
Mouse Out ${Remote_Sync}
Sleep 5s
元素点击 ${Sync_Tunnel} 选择同步管道 定位同步管道失败
Mouse Out ${Sync_Tunnel}
Sleep 2s
${Sync_Info} Run Keyword And Return Status Wait Until Element Is Visible ${CDM_Sync_Status}
Run Keyword If ${Sync_Info}==True 删除副本同步任务
... ELSE Log 不存在副本同步任务
循环点击 ${Add_Sync_Task} ${Task_CDM}
Sleep 2s
元素点击 ${Task_CDM} 点击创建定时同步任务 定位远程同步定时数据保护任务
${Tunnel_name_status} Run Keyword And Return Status Wait Until Element Is Visible ${Inverse_Sync_Task_List}
Log 判断反向同步管道名称是否存在,以此判断是否为反向同步任务
Run Keyword If ${Tunnel_name_status} Click Element ${Inverse_Sync_Task_List}
... ELSE Log 此任务为正向同步任务
元素点击 xpath=//span[text()="${agent_name}"]/../../td[1] 点击展开代理任务 定位代理任务展开失败
元素点击 xpath=//span[text()="${random_strategyName}"]/../../td[2] 点击选择备份任务 定位任务失败
元素点击 ${Add_Sync_Source} 点击添加数据源 定位添加数据源失败
Sleep 2s
${date} Evaluate time.strftime('%Y%m%d%H%M%S',time.localtime()) time
${Sync_Name}= Catenate SEPARATOR=_ CDM同步 ${date}
Set Suite Variable ${Sync_Name}
元素输入 ${Sync_Policy_Name} ${Sync_Name} 定位远程同步任务名称输入框失败
元素点击 ${SyncPolicy_NextStep} 点击下一步进入同步选项 定位下一步按钮失败
元素点击 ${Manual_MDS} 选择手动指定介质 定位手动指定介质失败
Run Keyword If ${Tun_enc}==1 Click Element ${Sync_Tun_Encryption}
... ELSE Log 不勾选管道加密
Sleep 1s
Run Keyword If ${Tun_com}==1 Click Element ${Sync_Tun_Compress}
... ELSE Log 不勾选管道压缩
Sleep 1s
Run Keyword If ${Tun_dup}==1 Click Element ${Sync_Tun_Dedup}
... ELSE Log 不勾选管道重删
Sleep 1s
循环点击 ${Complete_Create_SyncTask} ${Success_Confirm}
元素点击 ${Success_Confirm} 同步任务创建成功 同步任务创建失败
Sleep 2s
元素点击 xpath=//td[text()="${Sync_Name}"]/..//span[text()="启动"] 开启CDM同步任务 定位启动任务按钮失败
Sleep 45s
元素点击 ${Success_Confirm} 点击确定完成任务创建 任务启动失败
Sleep 120s
Log 等待同步任务执行完毕
删除定时同步任务
元素点击 ${Remote_Sync} 点击进入异地灾备页面 定位异地灾备按钮失败
元素点击 ${Sync_Tunnel} 选择同步管道 定位同步管道失败
元素点击 xpath=//td[text()="${Sync_Name}"]/..//span[text()="停止"] 点击停止同步任务 定位同步任务停止失败
Sleep 5s
元素点击 ${Success_Confirm} 点击确认任务停止成功 定位确认弹窗失败
元素点击 xpath=//td[text()="${Sync_Name}"]/..//span[text()="删除"] 点击删除同步任务 定位同步任务删除失败
元素点击 ${DelTask_Confirm} 点击确定删除同步任务按钮 定位确定按钮失败
Sleep 5s
元素点击 ${Success_Confirm} 确认任务删除成功 定位任务删除确认按钮失败
删除副本同步任务
元素点击 ${Remote_Sync} 点击进入异地灾备页面 定位异地灾备按钮失败
元素点击 ${Sync_Tunnel} 选择同步管道 定位同步管道失败
元素点击 xpath=//td[text()="${Sync_Name}"]/..//span[text()="停止"] 点击停止同步任务 定位同步任务停止失败
Sleep 20s
元素点击 ${Success_Confirm} 点击确认任务停止成功 定位确认弹窗失败
元素点击 xpath=//td[text()="${Sync_Name}"]/..//span[text()="删除"] 点击删除同步任务 定位同步任务删除失败
元素点击 ${DelTask_Confirm} 点击确定删除同步任务按钮 定位确定按钮失败
Sleep 5s
元素点击 ${Success_Confirm} 确认任务删除成功 定位任务删除确认按钮失败
创建同步管道
[Arguments] ${sou_ip} ${des_ip} ${name} ${pwd} # 源端IP|目标端IP|目标端用户名|目标端密码
Sleep 2s
元素点击 ${Sync} 点击进入异地灾备页面 定位异地灾备按钮失败
元素点击 ${Tunnel_Manage} 点击管道管理 定位管道管理失败
元素点击 ${Create_Tunnel} 点击新建同步管道 定位新建同步管道失败
元素输入 ${Sou_Name} sou 定位管道名称(源端)失败
元素输入 ${Des_Name} des 定位管道名称(目标端)失败
元素输入 ${Sou_BC} ${sou_ip} 定位源端ip输入框失败
元素输入 ${Des_BC} ${des_ip} 定位目标端ip输入框失败
元素输入 ${Login_Name} ${name} 定位目标端用户名输入框失败
元素输入 ${Login_Pwd} ${pwd} 定位目标端密码输入框失败
元素点击 ${Confirm_Create_Tunnel} 确认创建管道 定位确认按钮失败
Sleep 10s
元素点击 ${Success_Confirm} 同步管道创建成功 定位同步管道创建成功确定按钮失败
Sleep 2s
清除MDS日志
[Arguments] ${bc_ip} # 黑方ip地址
Open Connection ${bc_ip}
SSHLibrary.Login root 2008Bc1223!@#
Log 黑方连接成功
Write rm -rf /var/log/mds/*.log
Execute Command /unary/unabackup/bin/stop_mds.sh
Execute Command /unary/unabackup/bin/start_mds.sh
Log MDS重启完毕
Close Connection
MDS日志校验
[Arguments] ${bc_ip} ${Tun_enc} ${Tun_com} ${Tun_dup} # 源端黑方IP|管道加密|管道压缩|管道重删
Open Connection ${bc_ip}
SSHLibrary.Login root 2008Bc1223!@#
Log 黑方连接成功
${log_name}= Execute Command ls /var/log/mds/mdsclient_tranfer*
${check_enc}= Execute Command grep -c "encrypt_sign: 3" ${log_name}
${check_com}= Execute Command grep -c "compress_sign: 1" ${log_name}
${check_dup}= Execute Command grep -c "m_dedup_sign: 1" ${log_name}
Run Keyword If ${Tun_enc}==1 and ${check_enc}!=0 Log 管道加密验证成功
... ELSE IF ${Tun_enc}==1 and ${check_enc}==0 Fail 管道加密验证失败
... ELSE IF ${Tun_enc}==0 Log 不校验管道加密
Run Keyword If ${Tun_com}==1 and ${check_com}!=0 Log 管道压缩验证成功
... ELSE IF ${Tun_com}==1 and ${check_com}==0 Fail 管道压缩验证失败
... ELSE IF ${Tun_com}==0 Log 不校验管道压缩
Run Keyword If ${Tun_dup}==1 and ${check_dup}!=0 Log 管道重删验证成功
... ELSE IF ${Tun_dup}==1 and ${check_dup}==0 Fail 管道重删验证失败
... ELSE IF ${Tun_dup}==0 Log 不校验管道重删
Close Connection
删除实时同步任务
元素点击 ${Sync} 点击进入异地灾备页面 定位异地灾备按钮失败
元素点击 ${Sync_Tunnel} 选择同步管道 定位同步管道失败
Mouse Out ${Sync_Tunnel}
元素点击 xpath=//td[text()="${Sync_Name}"]/..//span[text()="停止"] 点击停止同步任务 定位同步任务停止失败
sleep 20s
元素点击 ${Success_Confirm} 点击确认任务停止成功 定位确认弹窗失败
元素点击 xpath=//td[text()="${Sync_Name}"]/..//span[text()="删除"] 点击删除同步任务 定位同步任务删除失败
元素点击 ${DelTask_Confirm} 点击确定删除同步任务按钮 定位确定按钮失败
sleep 10s
元素点击 ${Success_Confirm} 确认任务删除成功 定位任务删除确认按钮失败
删除目标端磁盘
元素点击 xpath=//span[@id="unaryhost.unarydomain"] 点击集成代理 定位集成代理失败
元素点击 ${Umount_Disk} 点击卸载磁盘 定位卸载磁盘按钮失败
元素点击 ${Button_umount_confirm} 点击确定卸载按钮 定位确定卸载弹窗失败
Sleep 10s
元素点击 ${Umount_Success} 卸载快照成功 定位卸载成功弹窗失败
循环点击 xpath=//span[contains(text(),"来自")]/../../..//span[@id="linux-sync"] ${Snapshot_Manage}
元素点击 ${Snapshot_Manage} 点击进入快照管理页面 定位快照管理页面失败
Sleep 2s
元素点击 ${First_Snapshot} 点击选择指定快照 定位快照失败
元素点击 ${Del_SnapShot} 点击删除快照按钮 定位删除快照按钮失败
循环点击 ${Del_SnapShot_Confirm} ${Del_Success}
元素点击 ${Del_Snapshot_Success} 快照删除成功 定位快照删除成功确定按钮失败
Log 快照删除成功
删除同步代理
[Arguments] ${agent_name} # 同步代理名称
Right Click Element ${agent_name}
Wait Until Element Is Visible ${Del_Sync_Agent}
元素点击 ${Del_Sync_Agent} 点击删除离线同步代理 定位离线代理删除按钮失败
Sleep 5s
元素点击 ${Del_Agent_Confirm} 点击确定删除代理 定位确定删除按钮失败
同步新设置
[Arguments] ${encryption} ${compress} # 加密|压缩
元素点击 ${Sync_New_Set} 点击勾选同步新设置 定位新设置选项失败
Run Keyword If ${encryption}==1 Click Element ${Sync_enc}
... ELSE Log 不勾选加密
Sleep 1s
Run Keyword If ${compress}==1 Click Element ${Sync_com}
... ELSE Log 不勾选压缩
Sleep 1s
卸载目标端磁盘
元素点击 ${Page_Monut} 进入挂载点页面 进入挂载点页面失败
元素点击 ${Mount_Del} 点击卸载按钮 定位卸载按钮失败
元素点击 ${Mount_Del_Ensure} 点击确认卸载按钮 定位确认卸载按钮失败
sleep 10s
元素点击 ${Mount_Del_Confirm} 点击卸载成功确定按钮 定位卸载成功确定按钮失败
创建定时同步任务_限速
[Arguments] ${agent_name} ${sync_speed} # 代理名称|同步速度
元素点击 ${Remote_Sync} 点击进入异地复制页面 定位异地复制按钮失败
元素点击 ${Sync_Tunnel} 选择同步管道 定位同步管道失败
Mouse Out ${Sync_Tunnel}
${Sync_Info} Run Keyword And Return Status Wait Until Element Is Visible ${DPM_Sync_Status}
Run Keyword If ${Sync_Info}==True 删除定时同步任务
... ELSE Log 不存在副本同步任务
元素点击 ${Add_Sync_Task} 点击添加同步任务 定位添加任务失败
元素点击 ${Task_DPM} 点击创建定时同步任务 定位远程同步定时数据保护任务
元素点击 xpath=//span[text()="${agent_name}"]/../../td[1] 点击展开代理任务 定位代理任务展开失败
元素点击 xpath=//span[text()="${random_strategyName}"]/../../td[2] 点击选择备份任务 定位任务失败
元素点击 ${Add_Sync_Source} 点击添加数据源 定位添加数据源失败
${date} Evaluate time.strftime('%Y%m%d%H%M%S',time.localtime()) time
${Sync_Name}= Catenate SEPARATOR=_ DPM同步 ${date}
Set Suite Variable ${Sync_Name}
元素输入 ${Sync_Policy_Name} ${Sync_Name} 定位远程同步任务名称输入框失败
元素点击 ${SyncPolicy_NextStep} 点击下一步进入同步选项 定位下一步按钮失败
元素点击 ${Choose_SyncSpeed} 勾选限速 定位限速选项失败
元素输入 ${Input_SyncSpeed} ${sync_speed} 定位限速输入框失败
元素点击 ${Manual_MDS} 选择手动指定介质 定位手动指定介质失败
循环点击 ${Complete_Create_SyncTask} ${Success_Confirm}
元素点击 ${Success_Confirm} 同步任务创建成功 同步任务创建失败
元素点击 xpath=//td[text()="${Sync_Name}"]/../..//span[text()="启动"] 开启DPM同步任务 定位启动任务按钮失败
Sleep 30s
元素点击 ${Success_Confirm} 点击确定完成任务创建 任务启动失败
创建副本同步任务_限速
[Arguments] ${agent_name} ${sync_speed} # 代理名称|同步传输速度
[Documentation] 功能:创建副本同步任务
...
... 使用方法:创建副本同步任务 \ 代理名 \ 管道加密 \ 管道压缩 \ 管道重删
...
... 变量:${agnet_name} \ \ ${Tun_enc} \ \ ${Tun_com} \ \ $${Tun_dup}
... ${Y}表示勾选
... ${N}表示不勾选
元素点击 ${Remote_Sync} 点击进入异地灾备页面 定位异地灾备按钮失败
Mouse Out ${Remote_Sync}
Sleep 5s
元素点击 ${Sync_Tunnel} 选择同步管道 定位同步管道失败
Mouse Out ${Sync_Tunnel}
Sleep 2s
${Sync_Info} Run Keyword And Return Status Wait Until Element Is Visible ${CDM_Sync_Status}
Run Keyword If ${Sync_Info}==True 删除副本同步任务
... ELSE Log 不存在副本同步任务
循环点击 ${Add_Sync_Task} ${Task_CDM}
Sleep 2s
元素点击 ${Task_CDM} 点击创建副本同步任务 定位远程同步副本数据保护任务
${Tunnel_name_status} Run Keyword And Return Status Wait Until Element Is Visible ${Inverse_Sync_Task_List}
Log 判断反向同步管道名称是否存在,以此判断是否为反向同步任务
Run Keyword If ${Tunnel_name_status} Click Element ${Inverse_Sync_Task_List}
... ELSE Log 此任务为正向同步任务
元素点击 xpath=//span[text()="${agent_name}"]/../../td[1] 点击展开代理任务 定位代理任务展开失败
元素点击 xpath=//span[text()="${random_strategyName}"]/../../td[2] 点击选择备份任务 定位任务失败
元素点击 ${Add_Sync_Source} 点击添加数据源 定位添加数据源失败
Sleep 2s
${date} Evaluate time.strftime('%Y%m%d%H%M%S',time.localtime()) time
${Sync_Name}= Catenate SEPARATOR=_ CDM同步 ${date}
Set Suite Variable ${Sync_Name}
元素输入 ${Sync_Policy_Name} ${Sync_Name} 定位远程同步任务名称输入框失败
元素点击 ${SyncPolicy_NextStep} 点击下一步进入同步选项 定位下一步按钮失败
元素点击 ${Choose_SyncSpeed} 勾选限速 定位限速选项失败
元素输入 ${Input_SyncSpeed} ${sync_speed} 定位限速输入框失败
元素点击 ${Manual_MDS} 选择手动指定介质 定位手动指定介质失败
循环点击 ${Complete_Create_SyncTask} ${Success_Confirm}
元素点击 ${Success_Confirm} 同步任务创建成功 同步任务创建失败
Sleep 2s
元素点击 xpath=//td[text()="${Sync_Name}"]/..//span[text()="启动"] 开启CDM同步任务 定位启动任务按钮失败
Sleep 30s
元素点击 ${Success_Confirm} 点击确定完成任务创建 任务启动失败
创建实时同步任务_限速
[Arguments] ${agent_name} ${sync_speed} # cdp代理名称|同步限速
Unselect Frame
元素点击 ${Sync} 点击进入异地灾备页面 定位异地灾备按钮失败
Sleep 5s
元素点击 ${Sync_Tunnel} 选择同步管道 定位同步管道失败
Mouse Out ${Sync_Tunnel}
Sleep 2s
循环点击 ${Add_Sync_Task} ${Task_CDP}
Sleep 2s
元素点击 ${Task_CDP} 选择创建实时数据同步任务 定位实时数据保护按钮失败
元素点击 xpath=//span[text()="${agent_name}"]/../..//td[2] 选择需要同步的cdp代理 定位cdp代理失败
元素点击 ${Add_Sync_Source} 点击添加数据源 定位添加数据源失败
${date} Evaluate time.strftime('%Y%m%d%H%M%S',time.localtime()) time
${Sync_Name}= Catenate SEPARATOR=_ CDP同步 ${date}
Set Suite Variable ${Sync_Name}
Log 设置同步任务名称为全局变量
元素输入 ${Sync_Policy_Name} ${Sync_Name} 定位远程同步任务名称输入框失败
元素点击 ${SyncPolicy_NextStep} 点击下一步进入同步选项 定位下一步按钮失败
元素点击 ${Choose_SyncSpeed} 勾选限速 定位限速选项失败
元素输入 ${Input_SyncSpeed} ${sync_speed} 定位限速输入框失败
元素点击 ${Manual_MDS} 选择手动指定介质 定位手动指定介质失败
循环点击 ${Complete_Create_SyncTask} ${Success_Confirm}
sleep 10s
元素点击 ${Success_Confirm} 同步任务创建成功 同步任务创建失败
元素点击 xpath=//td[text()="${Sync_Name}"]/..//span[text()="启动"] 开启同步任务 定位启动任务按钮失败
Sleep 40s
元素点击 ${Success_Confirm} 确认任务创建成功 定位任务创建成功失败
Sleep 20s