From 04cdc115dd7f2f8c3fef9d6a4a103a4be7863eaf Mon Sep 17 00:00:00 2001 From: lyf Date: Thu, 25 Feb 2021 17:23:52 +0800 Subject: [PATCH] =?UTF-8?q?=E6=8F=90=E4=BA=A4=E7=AD=96=E7=95=A5=E6=96=B0?= =?UTF-8?q?=E5=A2=9E=E5=85=B3=E9=94=AE=E5=AD=97=E5=92=8C=E5=88=A0=E9=99=A4?= =?UTF-8?q?=E6=97=A0=E7=94=A8=E6=96=87=E4=BB=B6?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../SecurityPolicy/SecurityPolicy.robot | 647 ------------------ .../tsg_ui/policy/Testcase-UIPolicy.robot | 9 +- 02-Keyword/tsg_ui/policy/UIPolicy.robot | 122 +++- .../tsg_ui/proxyPolicy/ProxyPolicy.robot | 558 --------------- 4 files changed, 116 insertions(+), 1220 deletions(-) delete mode 100644 02-Keyword/tsg_ui/SecurityPolicy/SecurityPolicy.robot delete mode 100644 02-Keyword/tsg_ui/proxyPolicy/ProxyPolicy.robot diff --git a/02-Keyword/tsg_ui/SecurityPolicy/SecurityPolicy.robot b/02-Keyword/tsg_ui/SecurityPolicy/SecurityPolicy.robot deleted file mode 100644 index c00008d..0000000 --- a/02-Keyword/tsg_ui/SecurityPolicy/SecurityPolicy.robot +++ /dev/null @@ -1,647 +0,0 @@ -*** Settings *** -Library Selenium2Library -Resource ../objects/NewObject.robot -Resource SourceAndDestination.robot -*** Keywords *** -CreateButton - [Documentation] 点击安全策略中的Create按钮 - Wait Until Element Is Enabled id=app_create - sleep ${sleep} - click element id=app_create - -Create-name - [Arguments] ${name} - [Documentation] 输入name - sleep ${sleep} - input text id=interceptionadd_name ${name} - -Create-action - [Arguments] ${action} - [Documentation] 调用次关键字前需要添加必填参数: - ... ${action}:填入allow或deny或monitor或intercept - ... 判断要创建什么动作的策略 - sleep ${sleep} - run keyword if "${action}"=="allow" run keywords sleep ${sleep} - ... AND click element id=security_action_allow - ... ELSE IF "${action}"=="deny" run keywords sleep ${sleep} - ... AND click element id=security_action_deny - ... ELSE IF "${action}"=="monitor" run keywords sleep ${sleep} - ... AND click element id=security_action_monitor - ... ELSE IF "${action}"=="intercept" run keywords sleep ${sleep} - ... AND click element id=security_action_intercept - -Create-Source-Button - [Documentation] 点击Source的加号 - sleep ${sleep} - click element xpath=/html/body/div[1]/div/div[3]/div[2]/div/div[1]/form/div/div[4]/div[1]/div/div - -Create-Destination-Button - [Documentation] 点击Destination的加号 - sleep ${sleep} - click element xpath=/html/body/div[1]/div/div[3]/div[2]/div/div[1]/form/div/div[5]/div[1]/div/div - sleep ${sleep} -Create-Application-Button - [Documentation] 点击Application的加号 - Wait Until Element Is Enabled id=interceptionadd_application 10 - click element id=interceptionadd_application - -ApplicationSearch - [Arguments] ${Application} - [Documentation] 调用次关键字前需要添加必填参数: - ... ${Application}:填入是Application的内容,例如SSL或HTTP - ... 选择search对象 - input text xpath=/html/body/div[1]/div/div[3]/div[2]/div/div[5]/div[2]/div[2]/div/div[1]/input ${Application} - sleep ${sleep} - press keys xpath=/html/body/div[1]/div/div[3]/div[2]/div/div[5]/div[2]/div[2]/div/div[1]/input ENTER - sleep ${sleep} - click element xpath=/html/body/div[1]/div/div[3]/div[2]/div/div[5]/div[2]/div[2]/div/div[3]/div/div/ul/li[1] - sleep ${sleep} -Create-Filter-judge - [Arguments] ${Application}=null ${Filter}=null ${Hostname}=null ${URLname}=null ${Request Headername}=null ${Response Headername}=null ${Request Contentname}=null - ... ${Response Contentname}=null ${SSLSNIname}=null ${CNname}=null ${SANname}=null ${QNAMEname}=null ${Subjectname}=null ${MAILContentname}=null ${Attachment Namename}=null - ... ${Attachment Contentname}=null ${Fromname}=null ${Toname}=null ${MAILAccountname}=null ${URIname}=null ${FTPContentname}=null ${FTPAccountname}=null ${QUICSNIname}=null - [Documentation] 调用次关键字前需要添加必填参数: - ... ${Application}:填入是Application的内容,例如SSL或HTTP - ... ${Filter}:是一个列表,列表中填入filter类型,例如Host或URL等 - ... name:各个对象名称的列表 - ... 判断filter是否可以点击 - ${class}= Get Element Attribute xpath=/html/body/div[1]/div/div[3]/div[2]/div/div[1]/form/div/div[8]/div[1]/div/div[1] class - run keyword if "${class}"=="addobject addobject-long-list obj-content-null filter-width-style cursor addobject-long-list-disabled" log filter不可点击,不可添加filter - run keyword if "${class}"=="addobject addobject-long-list obj-content-null filter-width-style cursor" run keywords sleep ${sleep} - ... AND Create-Filter ${Application} ${Filter} ${Hostname} ${URLname} ${Request Headername} ${Response Headername} ${Request Contentname} - ... ${Response Contentname} ${SSLSNIname} ${CNname} ${SANname} ${QNAMEname} ${Subjectname} ${MAILContentname} ${Attachment Namename} - ... ${Attachment Contentname} ${Fromname} ${Toname} ${MAILAccountname} ${URIname} ${FTPContentname} ${FTPAccountname} ${QUICSNIname} - -Create-Filter - [Arguments] ${Application} ${Filter} ${Hostname} ${URLname} ${Request Headername} ${Response Headername} ${Request Contentname} - ... ${Response Contentname} ${SSLSNIname} ${CNname} ${SANname} ${QNAMEname} ${Subjectname} ${MAILContentname} ${Attachment Namename} - ... ${Attachment Contentname} ${Fromname} ${Toname} ${MAILAccountname} ${URIname} ${FTPContentname} ${FTPAccountname} ${QUICSNIname} - [Documentation] 调用次关键字前需要添加必填参数: - ... ${Application}:填入是Application的内容,例如SSL或HTTP - ... ${Filter}:是一个列表,列表中填入filter类型,例如Host或URL等 - ... name:各个对象名称的列表 - ... 判断添加filter类型 - sleep ${sleep} - FOR ${i} IN @{Filter} - sleep ${sleep} - click element id=interceptionadd_add_filter - sleep ${sleep} - run keyword if "${Application}"=="HTTP" and "${i}"=="Host" run keywords sleep ${sleep} - ... AND click element xpath=//*[@id="condistions_protocol"]/div/div[1]/div/div/div/ul/li[1] - ... AND Create-Object-Search ${Hostname} ${i} - run keyword if "${Application}"=="HTTP" and "${i}"=="URL" run keywords sleep ${sleep} - ... AND click element xpath=//*[@id="condistions_protocol"]/div/div[1]/div/div/div/ul/li[2] - ... AND Create-Object-Search ${URLname} ${i} - run keyword if "${Application}"=="HTTP" and "${i}"=="Request Header" run keywords sleep ${sleep} - ... AND click element xpath=//*[@id="condistions_protocol"]/div/div[1]/div/div/div/ul/li[3] - ... AND Create-Object-Search ${Request Headername} ${i} - run keyword if "${Application}"=="HTTP" and "${i}"=="Response Header" run keywords sleep ${sleep} - ... AND click element xpath=//*[@id="condistions_protocol"]/div/div[1]/div/div/div/ul/li[4] - ... AND Create-Object-Search ${Response Headername} ${i} - run keyword if "${Application}"=="HTTP" and "${i}"=="Request Content" run keywords sleep ${sleep} - ... AND click element xpath=//*[@id="condistions_protocol"]/div/div[1]/div/div/div/ul/li[5] - ... AND Create-Object-Search ${Request Contentname} ${i} - run keyword if "${Application}"=="HTTP" and "${i}"=="Response Content" run keywords sleep ${sleep} - ... AND click element xpath=//*[@id="condistions_protocol"]/div/div[1]/div/div/div/ul/li[6] - ... AND Create-Object-Search ${Response Contentname} ${i} - run keyword if "${Application}"=="SSL" and "${i}"=="SNI" run keywords sleep ${sleep} - ... AND click element xpath=//*[@id="condistions_protocol"]/div/div[1]/div/div/div/ul/li[1] - ... AND Create-Object-Search ${SSLSNIname} ${i} - run keyword if "${Application}"=="SSL" and "${i}"=="CN" run keywords sleep ${sleep} - ... AND click element xpath=//*[@id="condistions_protocol"]/div/div[1]/div/div/div/ul/li[2] - ... AND Create-Object-Search ${CNname} ${i} - run keyword if "${Application}"=="SSL" and "${i}"=="SAN" run keywords sleep ${sleep} - ... AND click element xpath=//*[@id="condistions_protocol"]/div/div[1]/div/div/div/ul/li[3] - ... AND Create-Object-Search ${SANname} ${i} - run keyword if "${Application}"=="DNS" and "${i}"=="QNAME" run keywords sleep ${sleep} - ... AND click element xpath=//*[@id="condistions_protocol"]/div/div[1]/div/div/div/ul/li[1] - ... AND Create-Object-Search ${QNAMEname} ${i} - run keyword if "${Application}"=="MAIL" and "${i}"=="Subject" run keywords sleep ${sleep} - ... AND click element xpath=//*[@id="condistions_protocol"]/div/div[1]/div/div/div/ul/li[1] - ... AND Create-Object-Search ${Subjectname} ${i} - run keyword if "${Application}"=="MAIL" and "${i}"=="Content" run keywords sleep ${sleep} - ... AND click element xpath=//*[@id="condistions_protocol"]/div/div[1]/div/div/div/ul/li[2] - ... AND Create-Object-Search ${MAILContentname} ${i} - run keyword if "${Application}"=="MAIL" and "${i}"=="Attachment Name" run keywords sleep ${sleep} - ... AND click element xpath=//*[@id="condistions_protocol"]/div/div[1]/div/div/div/ul/li[3] - ... AND Create-Object-Search ${Attachment Namename} ${i} - run keyword if "${Application}"=="MAIL" and "${i}"=="Attachment Content" run keywords sleep ${sleep} - ... AND click element xpath=//*[@id="condistions_protocol"]/div/div[1]/div/div/div/ul/li[4] - ... AND Create-Object-Search ${Attachment Contentname} ${i} - run keyword if "${Application}"=="MAIL" and "${i}"=="From" run keywords sleep ${sleep} - ... AND click element xpath=//*[@id="condistions_protocol"]/div/div[1]/div/div/div/ul/li[5] - ... AND Create-Object-Search ${Fromname} ${i} - run keyword if "${Application}"=="MAIL" and "${i}"=="To" run keywords sleep ${sleep} - ... AND click element xpath=//*[@id="condistions_protocol"]/div/div[1]/div/div/div/ul/li[6] - ... AND Create-Object-Search ${Toname} ${i} - run keyword if "${Application}"=="MAIL" and "${i}"=="Account" run keywords sleep ${sleep} - ... AND click element xpath=//*[@id="condistions_protocol"]/div/div[1]/div/div/div/ul/li[7] - ... AND Create-Object-Search ${MAILAccountname} ${i} - run keyword if "${Application}"=="FTP" and "${i}"=="URI" run keywords sleep ${sleep} - ... AND click element xpath=//*[@id="condistions_protocol"]/div/div[1]/div/div/div/ul/li[1] - ... AND Create-Object-Search ${URIname} ${i} - run keyword if "${Application}"=="FTP" and "${i}"=="Content" run keywords sleep ${sleep} - ... AND click element xpath=//*[@id="condistions_protocol"]/div/div[1]/div/div/div/ul/li[2] - ... AND Create-Object-Search ${FTPContentname} ${i} - run keyword if "${Application}"=="FTP" and "${i}"=="Account" run keywords sleep ${sleep} - ... AND click element xpath=//*[@id="condistions_protocol"]/div/div[1]/div/div/div/ul/li[3] - ... AND Create-Object-Search ${FTPAccountname} ${i} - run keyword if "${Application}"=="QUIC" and "${i}"=="SNI" run keywords sleep ${sleep} - ... AND click element xpath=//*[@id="condistions_protocol"]/div/div[1]/div/div/div/ul/li[1] - ... AND Create-Object-Search ${QUICSNIname} ${i} - END -Deny-subaction - [Arguments] ${action}=null ${subaction}=null ${code}=null ${Content}=null ${block-text}=null ${SearchorCreate}=null - ... ${ProfileName}=null ${file}=null ${QType}=null ${Avalue}=null ${Attl}=null ${CNAMEvalue}=null ${CNAMEttl}=null - [Documentation] 调用次关键字前需要添加必填参数: - ... ${code}:填入403或404 - ... ${Content}:填入TEXT或Profile - ... ${SearchorCreate}:填入Search或Create - ... ${block-text}:填入TEXT文本框内容 - ... ${ProfileName}:Profile的名字 - ... ${file}:上传文件路径 - ... ${QType}:填入A或AAAA - ... ${Avalue}:根据${QType}填入IPV4或IPV6的值 - ... ${Attl}:根据${QType}填入A的ttl值或AAAA的ttl值 - ... ${CNAMEvalue}:根据${QType}填入A的CNAME的域名值或AAAA的CNAME域名值 - ... ${CNAMEttl}:根据${QType}填入A的CNAME的ttl值或AAAA的CNAME的ttl值 - ... 添加subaction - run keyword if "${action}"=="deny" and "${subaction}"=="Drop" run keywords sleep ${sleep} - ... AND click element id=denyUserRegionBlock_method0 - run keyword if "${action}"=="deny" and "${subaction}"=="RST" run keywords sleep ${sleep} - ... AND click element id=denyUserRegionBlock_method1 - run keyword if "${action}"=="deny" and "${subaction}"=="Block" run keywords sleep ${sleep} - ... AND click element id=denyUserRegionBlock_method2 - ... AND Deny-Block ${code} ${Content} ${block-text} ${SearchorCreate} ${ProfileName} ${file} - run keyword if "${action}"=="deny" and "${subaction}"=="Alert" run keywords sleep ${sleep} - ... AND click element id=denyUserRegionBlock_method3 - ... AND Deny-Block ${code} ${Content} ${block-text} ${SearchorCreate} ${ProfileName} ${file} - run keyword if "${action}"=="deny" and "${subaction}"=="Redirect" run keywords sleep ${sleep} - ... AND click element id=denyUserRegionBlock_method4 - ... AND sleep ${sleep} - ... AND click element id=interceptionadd_rightdetails - ... AND sleep ${sleep} - ... AND Deny-Redirect ${QType} ${Avalue} ${Attl} ${CNAMEvalue} ${CNAMEttl} - -Deny-Block - [Arguments] ${code} ${Content} ${block-text} ${SearchorCreate} ${ProfileName} ${file} - [Documentation] 调用次关键字前需要添加必填参数: - ... ${code}:填入403或404 - ... ${Content}:填入TEXT或Profile - ... ${SearchorCreate}:填入Search或Create - ... ${block-text}:填入TEXT文本框内容 - ... ${ProfileName}:Profile的名字 - ... ${file}:上传文件路径 - ... 添加block数据内容 - sleep ${sleep} - click element id=denyUserRegionBlock_code - run keyword if "${code}"=="403" or "${code}"=="200" run keywords sleep ${sleep} - ... AND click element id=denyUserRegionBlock_code_select0 - ... AND sleep ${sleep} - ... AND click element id=blockselect - ... ELSE IF "${code}"=="404" run keywords sleep ${sleep} - ... AND click element id=denyUserRegionBlock_code_select1 - ... AND sleep ${sleep} - ... AND click element id=blockselect - ... ELSE IF "${code}"=="204" run keywords sleep ${sleep} - ... AND click element id=denyUserRegionBlock_code_select1 - run keyword if "${Content}"=="TEXT" run keywords sleep ${sleep} - ... AND click element id=blockselect_select0 - ... AND sleep ${sleep} - ... AND input text id=denyUserRegionBlock_message ${block-text} - ... ELSE IF "${Content}"=="Profile" run keywords sleep ${sleep} - ... AND click element id=blockselect_select1 - ... AND sleep ${sleep} - ... AND Profile-SearchorCreate ${SearchorCreate} ${ProfileName} ${file} -Profile-SearchorCreate - [Arguments] ${SearchorCreate} ${ProfileName} ${file} - [Documentation] 调用次关键字前需要添加必填参数: - ... ${SearchorCreate}:填入Search或Create - ... ${ProfileName}:Profile的名字 - ... ${file}:上传文件路径 - ... 判断是新建还是搜索profile - sleep ${sleep} - click element id=html_profile - sleep ${sleep} - run keyword if "${SearchorCreate}"=="Search" run keywords sleep ${sleep} - ... AND input text id=filedata_profileName ${ProfileName} - ... AND sleep ${sleep} - ... AND press keys id=filedata_profileName ENTER - ... AND sleep ${sleep} - ... AND click element id=filelist_select0 - ... ELSE IF "${SearchorCreate}"=="Create" run keywords sleep ${sleep} - ... AND click element id=interceptionadd_fileadd - ... AND sleep ${sleep} - ... AND input text id=responsepages_profileName ${ProfileName} - ... AND sleep ${sleep} - ... AND Choose File xpath=//*[@id="policy_Manipulation_create6"]/div[2]/form/div[2]/div/div/div/input ${file} #上传文件 - ... AND sleep ${sleep} - ... AND clcik element id=responseAddOk1 - ... ELSE log 传入参数错误 -Deny-Redirect - [Arguments] ${QType} ${Avalue} ${Attl} ${CNAMEvalue} ${CNAMEttl} - [Documentation] 调用次关键字前需要添加必填参数: - ... ${QType}:填入A或AAAA - ... ${Avalue}:根据${QType}填入IPV4或IPV6的值 - ... ${Attl}:根据${QType}填入A的ttl值或AAAA的ttl值 - ... ${CNAMEvalue}:根据${QType}填入A的CNAME的域名值或AAAA的CNAME域名值 - ... ${CNAMEttl}:根据${QType}填入A的CNAME的ttl值或AAAA的CNAME的ttl值 - ... 新建Redirect - run keyword if "${QType}"=="A" run keywords sleep ${sleep} - ... AND input text id=A00 ${Avalue} - ... AND sleep ${sleep} - ... AND input text id=ttl00 ${Attl} - ... AND sleep ${sleep} - ... AND click element id=interceptionadd_addForm - ... AND sleep ${sleep} - ... AND input text id=Cname01 ${CNAMEvalue} - ... AND sleep ${sleep} - ... AND input text id=ttl01 ${CNAMEttl} - run keyword if "${QType}"=="AAAA" run keywords sleep ${sleep} - ... AND click element id=dns_qtype_radio01 - ... AND input text id=AAAA00 ${Avalue} - ... AND sleep ${sleep} - ... AND input text id=ttl00 ${Attl} - ... AND sleep ${sleep} - ... AND click element id=interceptionadd_addForm - ... AND sleep ${sleep} - ... AND input text id=Cname01 ${CNAMEvalue} - ... AND sleep ${sleep} - ... AND input text id=ttl01 ${CNAMEttl} - sleep ${sleep} - click element id=interceptionadd_shezhidns -Intercept-SSL-Keyring-SearchorCreate - [Arguments] ${KeySearchorCreate} ${keyname} ${file}=null ${file1}=null ${ExpiryHours1or2}=null ${type}=null ${type1}=null - ... ${shift}=close ${PrivateKeyType}=PrivateKeyFile - [Documentation] 引用次关键字,填入必填参数 - ... 必填参数: - ... ${KeySearchorCreate}:填入Create或Search - ... ${name}:新建页面name输入框里的内容 - ... ${file}:上传文件所在本地的路径 - ... ${file1}:上传文件所在本地的路径 - ... ${ExpiryHours1or2}:根证书时间填入1:自定义定义 2:原时间 - ... ${type}:上传证书类型的元素 - ... ${type1}:上传证书加密解密算法的元素 - ... ${shift}:是否打开客户端包含证书按钮 - ... ${PrivateKeyType}:私钥类型 - sleep ${sleep} - click element id=interceptionadd_eventkeying1 - sleep ${sleep} - run keyword if "${KeySearchorCreate}"=="Create" run keywords sleep ${sleep} - ... AND click element id=interceptionadd_keyadd - ... AND sleep ${sleep} - ... AND Create-Keyring ${keyname} ${file} ${file1} ${ExpiryHours1or2} ${type} ${type1} - ... ${shift}=close ${PrivateKeyType}=PrivateKeyFile - run keyword if "${KeySearchorCreate}"=="Search" run keywords sleep ${sleep} - ... AND input text id=card_keyringName1 ${keyname} - ... AND sleep ${sleep} - ... AND press keys id=card_keyringName1 ENTER - ... AND sleep ${sleep} - ... AND clcik element id=card_keylist0 - -Create-Keyring - [Arguments] ${name} ${file} ${file1} ${ExpiryHours1or2} ${type} ${type1} - ... ${shift}=close ${PrivateKeyType}=PrivateKeyFile - [Documentation] 引用次关键字,填入必填参数 - ... 必填参数: - ... ${name}:新建页面name输入框里的内容 - ... ${file}:上传文件所在本地的路径 - ... ${file1}:上传文件所在本地的路径 - ... ${ExpiryHours1or2}:根证书时间填入1:自定义定义 2:原时间 - ... ${type}:上传证书类型的元素 - ... ${type1}:上传证书加密解密算法的元素 - ... ${shift}:是否打开客户端包含证书按钮 - ... ${PrivateKeyType}:私钥类型 - sleep ${sleep} - input id=keyringsadd_name ${name} #输入name - sleep ${sleep} - Choose File xpath=//*[@id="app"]/div/div[3]/div[2]/div/div/div[2]/div[2]/form/div[2]/div/div/div/input ${file} #上传文件 - sleep ${sleep} - Choose File xpath=//*[@id="app"]/div/div[3]/div[2]/div/div/div[2]/div[2]/form/div[3]/div/div[2]/div/div/input ${file1} #上传文件 - ${select} Set Variable ${ExpiryHours1or2} - Run Keyword If '${select}'=='1' click element id=keyringsadd_customized - Run Keyword If '${select}'=='1' input text id=reissueExpiryDate 10 - sleep ${sleep} - click element xpath=//*[@id="app"]/div/div[3]/div[2]/div/div/div[2]/div[2]/form/div[6]/div/div/div[1]/span/span/i #点击下拉框 - sleep ${sleep} - click element ${type} #选择证书类型 - sleep ${sleep} - click element xpath=//*[@id="app"]/div/div[3]/div[2]/div/div/div[2]/div[2]/form/div[7]/div/div/div[1]/span/span/i #点击下拉框 - sleep ${sleep} - click element ${type1} #选择加密解密类型 - sleep ${sleep} - ${root} Set Variable ${shift} - run keyword if "${root}"=="open" run keywords sleep ${sleep} - ... AND click element xpath=//*[@id="app"]/div/div[3]/div[2]/div/div/div[2]/div[2]/form/div[9]/div/div/span - ... ELSE IF "${root}"=="close" log "go on" - Run Keyword If '${PrivateKeyType}'=='HSM' run keywords sleep ${sleep} - ... AND click element id=privateHSM - ... AND sleep ${sleep} - ... AND input text id=keyringsadd_slotid 10 - sleep ${sleep} - click id=keyringsadd_sub #点击OK缇交 -Intercept-SSL-MirrorDecryptedTraffic-Open - [Arguments] ${MirrorDecryptedTraffic}=null ${MirrorDecryptedTrafficSearchorCreate}=null ${MirrorDecryptedTrafficname}=null ${type}=null ${shuru}=null - [Documentation] 引用次关键字,填入必填参数 - ... 必填参数: - ... ${MirrorDecryptedTraffic}:输入open代表开启按钮,其他代表不开启 - ... ${MirrorDecryptedTrafficSearchorCreate}:填入Create或Search - ... ${MirrorDecryptedTrafficname}:解密流量文件的name - ... ${type}:是mac还是vlan的定位元素 - ... ${shuru}:输入mac或vlan的值 - sleep ${sleep} - run keyword if "${MirrorDecryptedTraffic}"=="open" run keywords sleep ${sleep} - ... AND click element xpath=///*[@id="policy_paper_left"]/div[10]/div[2]/label[contains(text(), "Mirror Decrypted Traffic")]/following-sibling::div/div - ... AND sleep ${sleep} - ... AND clcik element id=mirror_profile - ... AND MirrorDecryptedTraffic-SearchorCreate ${MirrorDecryptedTrafficSearchorCreate} ${MirrorDecryptedTrafficname} ${type} ${shuru} - ... ELSE log 不开启 -MirrorDecryptedTraffic-SearchorCreate - [Arguments] ${MirrorDecryptedTrafficSearchorCreate} ${MirrorDecryptedTrafficname} ${type} ${shuru} - [Documentation] 引用次关键字,填入必填参数 - ... 必填参数: - ... ${MirrorDecryptedTrafficSearchorCreate}:填入Create或Search - ... ${MirrorDecryptedTrafficname}:解密流量文件的name - ... ${type}:是mac还是vlan的定位元素 - ... ${shuru}:输入mac或vlan的值 - sleep ${sleep} - run keyword if "${MirrorDecryptedTrafficSearchorCreate}"=="Create" run keywords sleep ${sleep} - ... AND click element id=interceptionadd_trarightadd - ... AND sleep ${sleep} - ... AND Create-MirrorDecryptedTraffic ${MirrorDecryptedTrafficname} ${type} ${shuru} - run keyword if "${MirrorDecryptedTrafficSearchorCreate}"=="Search" run keywords sleep ${sleep} - ... AND input text id=tradata_profileName ${MirrorDecryptedTrafficname} - ... AND sleep ${sleep} - ... AND press keys id=tradata_profileName ENTER - ... AND sleep ${sleep} - ... AND clcik element id=tralist_length0 -Create-MirrorDecryptedTraffic - [Arguments] ${MirrorDecryptedTrafficname} ${type} ${shuru} - [Documentation] 引用次关键字,填入必填参数 - ... 必填参数: - ... ${MirrorDecryptedTrafficname}:解密流量文件的name - ... ${type}:是mac还是vlan的定位元素 - ... ${shuru}:输入mac或vlan的值 - sleep ${sleep} - input id=trafficmirror_profileName ${MirrorDecryptedTrafficname} #输入name - sleep ${sleep} - click id=addrTypeChoose #点击下拉框 - sleep ${sleep} - click ${type} #选择vlan或者mac - sleep ${sleep} - input id=trafficmirror_addrArray0 ${shuru} - sleep ${sleep} - click xpath=//*[@id="app"]/div/div[3]/div[2]/div/div/div[2]/button[1] #点击OK -DecryptionProfile-SearchorCreate - [Arguments] ${DecryptionProfileSearchorCreate}=null ${DecryptionProfilename}=null ${dict1}=null ${fail1}=null ${min1}=null ${max1}=null - [Documentation] 引用次关键字,填入必填参数 - ... 必填参数: - ... ${DecryptionProfileSearchorCreate}:填入Create或Search - ... ${DecryptionProfilename}:文件name - ... ${dict1}:是个字典,等于1为开启,等于0为关闭,例如:Common Name=1 Issuer=1 Self-signed=1 Expiry Date=1 EV Certificat=1 - ... Certificate Transparency=1 Mutual Authentication=1 On Protocol Errors=1 Certificate Pinning=1 Certificate Not Installed=1 Mirror Client Versions=1 - ... Allow HTTP/2=1 - ... ${fail1} :输入Fail-close或Pass-through - ... ${min1}:输入协议版本, - ... ${max1}:输入协议版本, - sleep ${sleep} - click element id=interceptionadd_eventkeying - sleep ${sleep} - run keyword if "${DecryptionProfileSearchorCreate}"=="Create" run keywords sleep ${sleep} - ... AND click element id=interceptionadd_decryptionProfileId - ... AND sleep ${sleep} - ... AND Create-DecryptionProfile ${DecryptionProfilename} ${dict1} ${fail1} ${min1} ${max1} - run keyword if "${DecryptionProfileSearchorCreate}"=="Search" run keywords sleep ${sleep} - ... AND input text id=card_keyringName ${DecryptionProfilename} - ... AND sleep ${sleep} - ... AND press keys id=card_keyringName ENTER - ... AND sleep ${sleep} - ... AND clcik element xpath=//*[@id="decryptionProfileList"]/following-sibling::li[2] -Create-DecryptionProfile - [Arguments] ${name} ${dict1} ${fail1} ${min1} ${max1} - sleep ${sleep} - input id=insert_profileName ${name} - sleep ${sleep} - DecryptionProfileButtonSwitch ${dict1} //*[@id="policy_Manipulation_create8"]/div[2]/form/div/div/label[contains(text(), " ")]/following-sibling::div/div el-switch is-checked el-switch - ${fail} Set Variable ${fail1} - run keyword if "${fail}"=="Fail-close" Run Keywords sleep ${sleep} - ... AND click xpath=//*[@id="policy_Manipulation_create8"]/div[2]/form/div[3]/div[5]/div/div/label[1]/span - ... ELSE IF "${fail}"=="Pass-through" Run Keywords sleep ${sleep} - ... AND click xpath=//*[@id="policy_Manipulation_create8"]/div[2]/form/div[3]/div[5]/div/div/label[2]/span - ... ELSE log 1111 - ${min} Set Variable ${min1} - ${max} Set Variable ${max1} - run keyword if "${min}"=="TLSv1.0" Run Keywords sleep ${sleep} - ... AND click xpath=//*[@id="policy_Manipulation_create8"]/div[2]/form/div[7]/div[2]/div/div/div/span/span/i - ... AND sleep ${sleep} - ... AND click id=pro_min1 - ... ELSE IF "${min}"=="TLSv1.1" Run Keywords sleep ${sleep} - ... AND click xpath=//*[@id="policy_Manipulation_create8"]/div[2]/form/div[7]/div[2]/div/div/div/span/span/i - ... AND sleep ${sleep} - ... AND click id=pro_min2 - ... ELSE IF "${min}"=="TLSv1.2" Run Keywords sleep ${sleep} - ... AND click xpath=//*[@id="policy_Manipulation_create8"]/div[2]/form/div[7]/div[2]/div/div/div/span/span/i - ... AND sleep ${sleep} - ... AND click id=pro_min3 - ... ELSE IF "${min}"=="TLSv1.3" Run Keywords sleep ${sleep} - ... AND click xpath=//*[@id="policy_Manipulation_create8"]/div[2]/form/div[7]/div[2]/div/div/div/span/span/i - ... AND sleep ${sleep} - ... AND click id=pro_min4 - ... ELSE IF "${min}"=="SSLv3.0" Run Keywords sleep ${sleep} - ... AND click xpath=//*[@id="policy_Manipulation_create8"]/div[2]/form/div[7]/div[2]/div/div/div/span/span/i - ... AND sleep ${sleep} - ... AND click id=pro_min0 - ... ELSE log 错误 - run keyword if "${max}"=="TLSv1.0" Run Keywords sleep ${sleep} - ... AND click xpath=//*[@id="policy_Manipulation_create8"]/div[2]/form/div[7]/div[3]/div/div/div/span/span/i - ... AND sleep ${sleep} - ... AND click id=pro_max1 - ... ELSE IF "${max}"=="TLSv1.1" Run Keywords sleep ${sleep} - ... AND click xpath=//*[@id="policy_Manipulation_create8"]/div[2]/form/div[7]/div[3]/div/div/div/span/span/i - ... AND sleep ${sleep} - ... AND click id=pro_max2 - ... ELSE IF "${max}"=="TLSv1.2" Run Keywords sleep ${sleep} - ... AND click xpath=//*[@id="policy_Manipulation_create8"]/div[2]/form/div[7]/div[3]/div/div/div/span/span/i - ... AND sleep ${sleep} - ... AND click id=pro_max3 - ... ELSE IF "${max}"=="TLSv1.3" Run Keywords sleep ${sleep} - ... AND click xpath=//*[@id="policy_Manipulation_create8"]/div[2]/form/div[7]/div[3]/div/div/div/span/span/i - ... AND sleep ${sleep} - ... AND click id=pro_max4 - ... ELSE IF "${max}"=="SSLv3.0" Run Keywords sleep ${sleep} - ... AND click xpath=//*[@id="policy_Manipulation_create8"]/div[2]/form/div[7]/div[3]/div/div/div/span/span/i - ... AND sleep ${sleep} - ... AND click id=pro_max0 - ... ELSE log 错误 - sleep ${sleep} - click id=decryption-ok - sleep ${sleep} - Settings-Search ${name} ${search} #搜索框的关键字 - sleep ${sleep} - ${name1} get text xpath=//*[@id="app"]/div/div[3]/div[2]/div/div[3]/div/div/div[2]/div/div[3]/table/tbody/tr/td[2]/div/div/span - Should Be Equal As Strings ${name1} ${name} - - -DecryptionProfileButtonSwitch - [Arguments] ${dict1} ${xpath1} ${xpath2} ${open} ${close} - ${dict} Set Variable ${dict1} - FOR ${list} ${key} IN ENUMERATE @{dict} - ${class}= Get Element Attribute xpath=${xpath1}${key}${xpath2} class - run keyword if "${class}"=="${open}" and "${dict}[${key}]"=="1" log 默认开启,不进行操作 - run keyword if "${class}"=="${open}" and "${dict}[${key}]"=="0" Run Keywords log 默认开启,但需求需要关闭,进行点击关闭按钮 - ... AND sleep ${sleep} - ... AND click xpath=${xpath1}${key}${xpath2}/span - run keyword if "${class}"=="${close}" and "${dict}[${key}]"=="1" Run Keywords log 默认关闭,但需求需要开启,进行点击开启按钮 - ... AND sleep ${sleep} - ... AND click xpath=${xpath1}${key}${xpath2}/span - run keyword if "${class}"=="${close}" and "${dict}[${key}]"=="0" log 默认关闭,不进行操作 - END -LogSession - [Arguments] ${LogSession} - [Documentation] 调用次关键字前需要添加必填参数: - ... ${LogSession}:填入clcos或其他 - run keyword if "${LogSession}"=="close" run keywords sleep ${sleep} - ... AND click element id=addlabel_labels_log - ... ELSE log 开启日志 -Enabled - [Arguments] ${Enabled} - [Documentation] 调用次关键字前需要添加必填参数: - ... ${Enabled}:填入open或其他 - run keyword if "${Enabled}"=="open" run keywords sleep ${sleep} - ... AND click element xpath=//*[@id="policy_paper_left"]/div/label[contains(text(), "Enabled")]/following-sibling::div/div - ... AND sleep ${sleep} - ... AND click element xpath=/html/body/div/div/div[3]/button[2] - ... ELSE log 开启日志 - -Security-Policies-OK - sleep ${sleep} - click element id=interceptionadd_sub -Create-Object-Search - [Arguments] ${name} ${filter} - [Documentation] 调用次关键字前需要添加必填参数: - ... ${name}:填入是一个列表,列表内容为object的name - ... 选择search对象 - sleep ${sleep} - click element xpath=//*[@id="policy_paper_left"]/div[8]/div/div[1]/label[contains(text(), "${filter}")]/following-sibling::div/div - sleep ${sleep} - FOR ${i} IN @{name} - input text xpath=//*[@id="condistions_protocol"]/div[2]/p[contains(text(), "${filter}")]/following-sibling::div[2]/div/div[1]/input ${i} - sleep ${sleep} - press keys xpath=//*[@id="condistions_protocol"]/div[2]/p[contains(text(), "${filter}")]/following-sibling::div[2]/div/div[1]/input ENTER - sleep ${sleep} - click element xpath=//*[@id="condistions_protocol"]/div[2]/p[contains(text(), "${filter}")]/following-sibling::div[2]/div/div[2]/div/div/ul/li[1] - sleep ${sleep} - END - - -Security-Source - [Arguments] ${SourceType} ${SourceValue} - Wait Until Element Is Enabled xpath=//*[@id="app"]/div/div[3]/div[2]/div/div[1]/div[1]/span/div/div/div[2]/div/div 10 - click element xpath=//*[@id="app"]/div/div[3]/div[2]/div/div[1]/div[1]/span/div/div/div[2]/div/div - sleep ${sleep} - run keyword if "${SourceType}"=="ID" run keywords sleep ${sleep} - ... AND click element xpath=/html/body/div/div[1]/div[1]/ul/li[2] - run keyword if "${SourceType}"=="Name" run keywords sleep ${sleep} - ... AND click element xpath=/html/body/div/div[1]/div[1]/ul/li[3] - run keyword if "${SourceType}"=="Action" run keywords sleep ${sleep} - ... AND click element xpath=/html/body/div/div[1]/div[1]/ul/li[4] - sleep ${sleep} - input text xpath=//*[@id="app"]/div/div[3]/div[2]/div/div[1]/div[1]/span/div/div/div[2]/div/div[1]/div[3]/div/input ${SourceValue} - sleep ${sleep} - click element xpath=//*[@id="app"]/div/div[3]/div[2]/div/div[1]/div[1]/span/div/i - sleep ${sleep} - click element xpath=//*[@id="ly-table1-listcontent"]/div/div[3]/table/tbody/tr[1] - sleep ${sleep} - -EditButton - sleep ${sleep} - click element xpath=//*[@id="appEdit"]/span/div/div[2] - sleep ${sleep} - -Initialize-Policie - [Arguments] ${InitializeAction} - [Documentation] 调用次关键字前需要添加必填参数: - ... ${InitializeAction}:根据用例进行填写,意思就是是那一个action就不要点击哪一个,以免初始化失败 - run keyword if "${InitializeAction}"=="Allow" run keywords sleep ${sleep} - ... AND click element id=security_action_deny - ... AND sleep ${sleep} - ... ELSE IF "${InitializeAction}"=="Deny" run keywords sleep ${sleep} - ... AND click element id=security_action_allow - ... ELSE IF "${InitializeAction}"=="Monitor" run keywords sleep ${sleep} - ... AND click element id=security_action_deny - ... ELSE IF "${InitializeAction}"=="Intercept" run keywords sleep ${sleep} - ... AND click element id=security_action_deny - ... ELSE log 不修改 - sleep ${sleep} - ${status} Run Keyword And Return Status Page should contain element xpath=/html/body/div[1]/div/div[3]/div[2]/div/div[1]/form[1]/div/div[4]/div[1]/div/div/div #判断页面是否包含该元素 - run keyword if "${status}"=="False" log go on - run keyword if "${status}"=="True" run keywords sleep ${sleep} - ... AND click element xpath=/html/body/div[1]/div/div[3]/div[2]/div/div[1]/form[1]/div/div[4]/div[1]/div/div/div/p/span/span/i[2] - ... AND sleep ${sleep} - ${status1} Run Keyword And Return Status Page should contain element xpath=/html/body/div[1]/div/div[3]/div[2]/div/div[1]/form[1]/div/div[5]/div[1]/div/div/div #判断页面是否包含该元素 - run keyword if "${status1}"=="False" log go on - run keyword if "${status1}"=="True" run keywords sleep ${sleep} - ... AND click element xpath=/html/body/div[1]/div/div[3]/div[2]/div/div[1]/form[1]/div/div[5]/div[1]/div/div/div/p/span/span/i[2] - ... AND sleep ${sleep} - -Delete-Security-estimate - [Arguments] ${securityname} - run keyword if "${securityname}"!="null" run keywords sleep ${sleep} - ... AND Delete-Security ${securityname} - ... ELSE log go on - -Delete-Security - [Arguments] ${securityname} - - Menu policys Security Policy - sleep ${sleep} - Wait Until Element Is Enabled xpath=//*[@id="app"]/div/div[3]/div[2]/div/div[1]/div[1]/span/div/div/div[2]/div/div 10 - click element xpath=//*[@id="app"]/div/div[3]/div[2]/div/div[1]/div[1]/span/div/div/div[2]/div/div - sleep ${sleep} - click element xpath=/html/body/div/div[1]/div[1]/ul/li[3] - sleep ${sleep} - input text xpath=//*[@id="app"]/div/div[3]/div[2]/div/div[1]/div[1]/span/div/div/div[2]/div/div[1]/div[3]/div/input ${securityname} - sleep ${sleep} - click element xpath=//*[@id="app"]/div/div[3]/div[2]/div/div[1]/div[1]/span/div/i - sleep ${sleep} - Run Keyword And Ignore Error click element xpath=//*[@id="ly-table1-listcontent"]/div/div[3]/table/tbody/tr[1] - sleep ${sleep} - sleep ${sleep} - Run Keyword And Ignore Error click element id=appDel - sleep ${sleep} - Run Keyword And Ignore Error click element xpath=/html/body/div/div/div[3]/button[2] - sleep ${sleep} - -Delete-object-estimate - [Arguments] ${obj} - run keyword if "${obj}"!="null" run keywords sleep ${sleep} - ... AND Delete-object ${obj} - ... ELSE log go on -Delete-object - [Arguments] ${obj} - FOR ${num} ${key} IN ENUMERATE @{obj} - Forname ${obj}[${key}] ${key} - - END - -Forname - [Arguments] ${objectname} ${key} - FOR ${i} IN @{objectname} - Menu objects ${key} - sleep ${sleep} - click element xpath=//*[@id="app"]/div/div[3]/div[2]/div/div[1]/div[1]/span/div/div/div[2]/div/div/div/input #点击输入框 - sleep ${sleep} - click element xpath=/html/body/div/div[1]/div[1]/ul/li[3] #点击name为搜索类型 - sleep ${sleep} - input text xpath=//*[@id="app"]/div/div[3]/div[2]/div/div[1]/div[1]/span/div/div/div[2]/div/div[1]/div[3]/div/input ${i} #输入搜索内容 - sleep ${sleep} - click element xpath=//*[@id="app"]/div/div[3]/div[2]/div/div[1]/div[1]/span/div/i #点击搜索按钮 - sleep ${sleep} - Run Keyword And Ignore Error click element xpath=//*[@id="ly-table1-listcontent"]/div/div[3]/table/tbody/tr[1]/td[1]/div/div/span #选择搜索到的列表 - sleep ${sleep} - sleep ${sleep} - Run Keyword And Ignore Error click element id=objectDel #点击删除按钮 - sleep ${sleep} - Run Keyword And Ignore Error click element xpath=/html/body/div/div/div[3]/button[2] - sleep ${sleep} - END diff --git a/02-Keyword/tsg_ui/policy/Testcase-UIPolicy.robot b/02-Keyword/tsg_ui/policy/Testcase-UIPolicy.robot index 8784e98..1e2dd00 100644 --- a/02-Keyword/tsg_ui/policy/Testcase-UIPolicy.robot +++ b/02-Keyword/tsg_ui/policy/Testcase-UIPolicy.robot @@ -36,7 +36,7 @@ Test-UIAddPolicies ${ResponseHeadername} create list zdhressck zdhresct ${RequestContentname} create list zdhreqcontent ${filter} create list Host URL Request Header Response Header Request Content - ${policyInfo} Create Dictionary policyType=Security Policy policyName=${TEST NAME} policyAction=deny policySubAction=Drop ApplicationSearch=HTTP policyLogSession=1 policyEnabled=1 + ${policyInfo} Create Dictionary policyType=Security Policy policyName=${TEST NAME} policyAction=deny policySubAction=RST ApplicationSearch=HTTP policyLogSession=1 policyEnabled=1 ${sip1} Create Dictionary sordtype=Source type1=Ip CreateOrSearch=Create Add=Address name=${TEST NAME}_IP1 ipclienttext1=192.168.40.11-192.168.40.110 port=1-65535 ${ip_name} create list ${TEST NAME}_IP1 ${sip2} Create Dictionary sordtype=Source type1=Ip CreateOrSearch=Create Add=Group name=${TEST NAME}_IPGroup1 object_name=${ip_name} @@ -50,8 +50,7 @@ Test-UIAddPolicies ${ssub1} Create Dictionary sordtype=Source type1=SUBID CreateOrSearch=Create Add=Address name=${TEST NAME}_Subid1 keywordtext=$test25 ${sub_name} create list ${TEST NAME}_Subid1 ${ssub2} Create Dictionary sordtype=Source type1=SUBID CreateOrSearch=Create Add=Group name=${TEST NAME}_Subid2 object_name=${sub_name} - #${sourceAddIpList} Create List ${sip1} ${sip2} ${slearn1} ${slearn2} ${ssub1} ${ssub2} ${sgeo1} ${sgeo2} - ${sourceAddIpList} Create List ${sgeo1} ${sgeo2} + ${sourceAddIpList} Create List ${sip1} ${sip2} ${slearn1} ${slearn2} ${ssub1} ${ssub2} ${sgeo1} ${sgeo2} ${sourceInfo} Create Dictionary sourceAddIpList=${sourceAddIpList} ${ip_name1} create list ${TEST NAME}_IP1 ${TEST NAME}_IPGroup1 ${sgeo_name1} create list ${TEST NAME}_Geo1 ${TEST NAME}_GeoGroup1 @@ -64,5 +63,5 @@ Test-UIAddPolicies ${destinationInfo} Create Dictionary destinationAddIpList=${destinationAddIpList} ${filterInfo} Create Dictionary Filter=${filter} Hostname=${hostname} URLname=${urlname} Request Headername=${RequestHeadername} Response Headername=${ResponseHeadername} ... Request Contentname=${RequestContentname} - #UIAddPolicies ${policyInfo} sourceInfo=${sourceInfo} destinationInfo=${destinationInfo} filterInfo=${filterInfo} - UIAddPolicies ${policyInfo} destinationInfo=${destinationInfo} filterInfo=${filterInfo} + UIAddPolicies ${policyInfo} sourceInfo=${sourceInfo} destinationInfo=${destinationInfo} filterInfo=${filterInfo} + diff --git a/02-Keyword/tsg_ui/policy/UIPolicy.robot b/02-Keyword/tsg_ui/policy/UIPolicy.robot index 87940de..724ed03 100644 --- a/02-Keyword/tsg_ui/policy/UIPolicy.robot +++ b/02-Keyword/tsg_ui/policy/UIPolicy.robot @@ -31,7 +31,7 @@ UIAddPolicies ... ELSE set variable ${policySubAction} ${return} ${ApplicationSearch} Run Keyword And Ignore Error Get From Dictionary ${policyInfo} ApplicationSearch - #${ApplicationSearchV} Run Keyword If "${return}"!="FAIL" and "${ApplicationSearch}"!="${EMPTY}" and "${ApplicationSearch}"!="${None}" Evaluate list(map(int, re.split('[,]', '${ApplicationSearch}'))) re + ${ApplicationSearchV} Run Keyword If "${return}"!="FAIL" and "${ApplicationSearch}"!="${EMPTY}" and "${ApplicationSearch}"!="${None}" Evaluate list(re.split('[,]', '${ApplicationSearch}')) re ... ELSE Set Variable ${emptyList} @@ -51,9 +51,7 @@ UIAddPolicies Menu policys ${policyType} Comment 新建策略 打开安全策略列表上方的新建策略按钮 UIPolicy.CreateButton - #${return} ${policyType} Run Keyword And Ignore Error Get From Dictionary ${policy} policyType - #Run Keyword If "${return}"=="FAIL" or "${policyType}"=="${EMPTY}" Set To Dictionary ${returnDict} policyType=${Default_PolicyType} - #... ELSE Set To Dictionary ${returnDict} policyType=${policyType} + UIPolicy.Create-name ${policyType} ${policyName} UIPolicy.Create-actions ${policyType} ${policyAction} #Create-Source-Button @@ -61,20 +59,18 @@ UIAddPolicies ... ELSE UIPolicy. Create-Source-Button Run Keyword If "${sourceInfo}"=="${EMPTY}" log there is no sourceInfoDict ... ELSE UIPolicy.CreateEditDeleteSources ${sourceInfo} - #Create-Source type1=Ip CreateOrSearch=Create Add=Address name=zdhip001 ipclienttext1=192.168.100.1 post=1 - #Create-Destination-Button + Run Keyword If "${destinationInfo}"=="${EMPTY}" log there is no destinationInfo ... ELSE UIPolicy.Create-Destination-Button Run Keyword If "${destinationInfo}"=="${EMPTY}" log there is no destinationInfo ... ELSE UIPolicy.CreateEditDeleteDestination ${destinationInfo} - #Create-Destination type1=Ip CreateOrSearch=Create Add=Address name=zdhip001 ipclienttext1=192.168.100.1 post=1 + UIPolicy.Create-Application-Button ${policyType} ${ApplicationSearchV} ${policyAction} #编辑filter Run Keyword If "${filterInfo}"=="${EMPTY}" log there is no filterInfo ... ELSE Create-Filter-SecurityOrProxy ${policyType} ${ApplicationSearchV}[0] ${filterInfo} - log 111111111111111111 Run Keyword If "${policyType}"=="Security Policy" and "${policyAction}"=="deny" run keywords sleep 2 - ... AND Deny-subaction ${policyAction} ${policySubAction} ${subactionadd} + ... AND Deny-subaction-1 ${policyAction} ${policySubAction} ${subactionadd} Run Keyword If "${policyType}"=="Security Policy" and "${policyAction}"=="intercept" and "ApplicationSearchV"=="SSL" run keywords sleep 2 ... AND interceptadd ${Keyring} ${MirrorDecryptedTrafficInfo} ${DecryptionProfile} Run Keyword If "${policyType}"=="Proxy Policy" and "${policyAction}"=="deny" run keywords sleep 2 @@ -94,9 +90,114 @@ UIAddPolicies ... ELSE ProxyEnabled ${policyEnabled} Run Keyword If "${policyType}"=="Security Policy" Security-Policies-OK ... ELSE Proxy-Policies-OK + Security-Source Name ${policyName} + Run Keyword If "${policyType}"=="Security Policy" SecurityAssert ${policyName} + ... ELSE ProxyAssert ${policyName} +UIUpdataPolicies + [Arguments] ${policyInfo} ${sourceInfo}=null ${destinationInfo}=null ${filterInfo}=null ${subactionadd}=null ${Keyring}=null ${MirrorDecryptedTrafficInfo}=null ${DecryptionProfile}=null + ... ${ProxyDenyadd}=null ${DenyRedirectadd}=null ${ReplaceActionParameters}=null ${HijackFileadd}=null ${InsertScript}=null + [Documentation] 编辑策略 + ${emptyList} Create List + ${return} ${policyType} Run Keyword And Ignore Error Get From Dictionary ${policyInfo} policyType + ${policyType} Run Keyword If "${return}"=="FAIL" or "${policyType}"=="${EMPTY}" set variable ${Default_PolicyType} + ... ELSE set variable ${policyType} + + ${return} ${policyName} Run Keyword And Ignore Error Get From Dictionary ${policyInfo} policyName + ${policyName} Run Keyword If "${return}"=="FAIL" or "${policyName}"=="${EMPTY}" set variable ${Default_PolicyName} + ... ELSE set variable ${policyName} + + ${return} ${policyEditName} Run Keyword And Ignore Error Get From Dictionary ${policyInfo} policyEditName + ${policyEditName} Run Keyword If "${return}"=="FAIL" or "${policyEditName}"=="${EMPTY}" set variable ${Default_PolicyName} + ... ELSE set variable ${policyEditName} + ${return} ${policyAction} Run Keyword And Ignore Error Get From Dictionary ${policyInfo} policyAction + ${policyAction} Run Keyword If "${return}"=="FAIL" or "${policyAction}"=="${EMPTY}" set variable ${Default_Action} + ... ELSE set variable ${policyAction} + + ${return} ${policySubAction} Run Keyword And Ignore Error Get From Dictionary ${policyInfo} policySubAction + ${policySubAction} Run Keyword If "${return}"=="FAIL" or "${policySubAction}"=="${EMPTY}" set variable ${Default_PolicySubAction} + ... ELSE set variable ${policySubAction} + + ${return} ${ApplicationSearch} Run Keyword And Ignore Error Get From Dictionary ${policyInfo} ApplicationSearch + + ${ApplicationSearchV} Run Keyword If "${return}"!="FAIL" and "${ApplicationSearch}"!="${EMPTY}" and "${ApplicationSearch}"!="${None}" Evaluate list(re.split('[,]', '${ApplicationSearch}')) re + ... ELSE Set Variable ${emptyList} + + ${return} ${policyLogSession} Run Keyword And Ignore Error Get From Dictionary ${policyInfo} policyLogSession + ${policyLogSession} Run Keyword If "${return}"=="FAIL" or "${policyLogSession}"=="${EMPTY}" set variable ${Default_PolicyLogSession} + ... ELSE set variable ${policyName} + + ${return} ${LogOptions} Run Keyword And Ignore Error Get From Dictionary ${policyInfo} LogOptions + ${LogOptions} Run Keyword If "${return}"=="FAIL" or "${LogOptions}"=="${EMPTY}" set variable 1 + ... ELSE set variable ${LogOptions} + + ${return} ${policyEnabled} Run Keyword And Ignore Error Get From Dictionary ${policyInfo} policyEnabled + ${policyEnabled} Run Keyword If "${return}"=="FAIL" or "${policyEnabled}"=="${EMPTY}" set variable ${Default_PolicyEnabled} + ... ELSE set variable ${policyEnabled} + + Comment 新建策略 打开菜单 + Menu policys ${policyType} + + Comment 新建策略 打开安全策略列表上方的新建策略按钮 + UIPolicy.CreateButton + Comment 搜索要编辑的策略 + Security-Source Name ${policyName} + Comment 点击编辑按钮Edit + EditButton + Comment 编辑name + UIPolicy.Create-name ${policyType} ${policyEditName} + UIPolicy.Create-actions ${policyType} ${policyAction} + #Create-Source-Button + Run Keyword If "${sourceInfo}"=="${EMPTY}" log there is no sourceInfoDict + ... ELSE UIPolicy. Create-Source-Button + Run Keyword If "${sourceInfo}"=="${EMPTY}" log there is no sourceInfoDict + ... ELSE UIPolicy.CreateEditDeleteSources ${sourceInfo} + + Run Keyword If "${destinationInfo}"=="${EMPTY}" log there is no destinationInfo + ... ELSE UIPolicy.Create-Destination-Button + Run Keyword If "${destinationInfo}"=="${EMPTY}" log there is no destinationInfo + ... ELSE UIPolicy.CreateEditDeleteDestination ${destinationInfo} + + UIPolicy.Create-Application-Button ${policyType} ${ApplicationSearchV} ${policyAction} + #编辑filter + Run Keyword If "${filterInfo}"=="${EMPTY}" log there is no filterInfo + ... ELSE Create-Filter-SecurityOrProxy ${policyType} ${ApplicationSearchV}[0] ${filterInfo} + log 111111111111111111 + Run Keyword If "${policyType}"=="Security Policy" and "${policyAction}"=="deny" run keywords sleep 2 + ... AND Deny-subaction-1 ${policyAction} ${policySubAction} ${subactionadd} + Run Keyword If "${policyType}"=="Security Policy" and "${policyAction}"=="intercept" and "ApplicationSearchV"=="SSL" run keywords sleep 2 + ... AND interceptadd ${Keyring} ${MirrorDecryptedTrafficInfo} ${DecryptionProfile} + Run Keyword If "${policyType}"=="Proxy Policy" and "${policyAction}"=="deny" run keywords sleep 2 + ... AND Proxy-Deny ${ProxyDenyadd} + Run Keyword If "${policyType}"=="Proxy Policy" and "${policyAction}"=="redirect" run keywords sleep 2 + ... AND Deny-Redirect ${DenyRedirectadd} + Run Keyword If "${policyType}"=="Proxy Policy" and "${policyAction}"=="replace" run keywords sleep 2 + ... AND Replace-Action-Parameters-for1 ${ReplaceActionParameters} + Run Keyword If "${policyType}"=="Proxy Policy" and "${policyAction}"=="hijack" run keywords sleep 2 + ... AND HijackFile-SearchorCreate ${HijackFileadd} + Run Keyword If "${policyType}"=="Proxy Policy" and "${policyAction}"=="insert" run keywords sleep 2 + ... AND InsertScript-SearchorCreate ${InsertScript} + Run Keyword If "${policyType}"=="Proxy Policy" run keywords ProxyLogSession ${policyLogSession} + ... AND ProxyLogOptions ${LogOptions} + ... ELSE LogSession ${policyLogSession} + Run Keyword If "${policyType}"=="Security Policy" Enabled ${policyEnabled} + ... ELSE ProxyEnabled ${policyEnabled} + Run Keyword If "${policyType}"=="Security Policy" Security-Policies-OK + ... ELSE Proxy-Policies-OK + Security-Source Name ${policyName} + Run Keyword If "${policyType}"=="Security Policy" SecurityAssert ${policyName} + ... ELSE ProxyAssert ${policyName} + +SecurityAssert + [Arguments] ${policyName} + ${text} get text xpath=//*[@id="ly-table1-listcontent"]/div/div[3]/table/tbody/tr/td[2]/div/div/p + Should Be Equal As Strings ${text} ${policyName} +ProxyAssert + [Arguments] ${policyName} + ${text} get text xpath=//*[@id="ly-table1-listcontent"]/div/div[3]/table/tbody/tr/td[2]/div/div/div/p + Should Be Equal As Strings ${text} ${policyName} CreateEditDeleteSources [Arguments] ${sourceInfoDict} [Documentation] 策略源条件处理、包括增加:create、search,update、delete几个列表; @@ -691,7 +792,7 @@ Create-ProxyFilter ... AND click element xpath=//*[@id="interceptionadd_checkappshow1"][contains(text(), "${i}")] ... AND Create-Object-Search ${QNAMEname} ${i} END -Deny-subaction +Deny-subaction-1 [Arguments] ${action} ${subaction} ${subactionadd} [Documentation] 调用次关键字前需要添加必填参数: ... ${code}:填入403或404 @@ -1518,6 +1619,7 @@ Security-Source sleep 1 click element xpath=//*[@id="ly-table1-listcontent"]/div/div[3]/table/tbody/tr[1] sleep 1 + EditButton sleep 1 diff --git a/02-Keyword/tsg_ui/proxyPolicy/ProxyPolicy.robot b/02-Keyword/tsg_ui/proxyPolicy/ProxyPolicy.robot deleted file mode 100644 index f99291b..0000000 --- a/02-Keyword/tsg_ui/proxyPolicy/ProxyPolicy.robot +++ /dev/null @@ -1,558 +0,0 @@ -*** Settings *** -Library Selenium2Library -Resource ../objects/NewObject.robot - -*** Keywords *** -CreateButton - [Documentation] 点击安全策略中的Create按钮 - Wait Until Element Is Enabled id=app_create - sleep ${sleep} - click element id=app_create - -Create-name - [Arguments] ${name} - [Documentation] 输入name - sleep ${sleep} - input text id=manipulation_elInput_policyName ${name} - -Create-action - [Arguments] ${action} - [Documentation] 调用次关键字前需要添加必填参数: - ... ${action}:填入allow或deny或monitor或intercept - ... 判断要创建什么动作的策略 - sleep ${sleep} - run keyword if "${action}"=="allow" run keywords sleep ${sleep} - ... AND click element id=proxyManipulationallow - ... ELSE IF "${action}"=="deny" run keywords sleep ${sleep} - ... AND click element id=proxyManipulationdeny - ... ELSE IF "${action}"=="monitor" run keywords sleep ${sleep} - ... AND click element id=proxyManipulationmonitor - ... ELSE IF "${action}"=="redirect" run keywords sleep ${sleep} - ... AND click element id=proxyManipulationredirect - ... ELSE IF "${action}"=="replace" run keywords sleep ${sleep} - ... AND click element id=proxyManipulationreplace - ... ELSE IF "${action}"=="hijack" run keywords sleep ${sleep} - ... AND click element id=proxyManipulationhijack - ... ELSE IF "${action}"=="insert" run keywords sleep ${sleep} - ... AND click element id=proxyManipulationinsert - -Create-Source-Button - [Documentation] 点击Source的加号 - sleep ${sleep} - click element xpath=/html/body/div[1]/div/div[3]/div[2]/div/div[1]/form/div/div[4]/div[1]/div/div - -Create-Destination-Button - [Documentation] 点击Destination的加号 - Wait Until Element Is Enabled xpath=/html/body/div[1]/div/div[3]/div[2]/div/div[1]/form/div/div[5]/div[1]/div/div 10 - sleep ${sleep} - click element xpath=/html/body/div[1]/div/div[3]/div[2]/div/div[1]/form/div/div[5]/div[1]/div/div - - -ApplicationSearch - [Arguments] ${action} ${HttpOrDoh} - [Documentation] 调用次关键字前需要添加必填参数: - ... ${action}:填入是action的内容,例如redirect或deny - ... 选择search对象 - run keyword if "${action}"=="redirect" run keywords sleep ${sleep} - ... AND click element id=interceptionadd_application - ... AND sleep ${sleep} - ... AND HttpOrDoh ${HttpOrDoh} - ... ELSE log 不操作 -HttpOrDoh - [Arguments] ${HttpOrDoh} - [Documentation] 调用次关键字前需要添加必填参数: - ... ${HttpOrDoh}:填入是Application的内容,例如SSL或HTTP - ... 选择search对象 - run keyword if "${HttpOrDoh}"=="HTTP" run keywords sleep ${sleep} - ... AND click element id=interceptionadd_checkappshow1 - ... AND sleep ${sleep} - ... AND click element xpath=/html/body/div[1]/div/div[3]/div[2]/div/div[7]/div[3]/div/button - ... ELSE IF "${HttpOrDoh}"=="Doh" run keywords sleep ${sleep} - ... AND click element id=interceptionadd_checkappshow0 - ... AND sleep ${sleep} - ... AND click element xpath=/html/body/div[1]/div/div[3]/div[2]/div/div[7]/div[3]/div/button - - -Create-Filter - [Arguments] ${Application}=null ${Filter}=null ${Hostname}=null ${URLname}=null ${Request Headername}=null ${Response Headername}=null ${Request Contentname}=null - ... ${Response Contentname}=null ${QNAMEname}=null ${DohHostname}=null - [Documentation] 调用次关键字前需要添加必填参数: - ... ${Application}:填入是Application的内容,例如SSL或HTTP - ... ${Filter}:是一个列表,列表中填入filter类型,例如Host或URL等 - ... name:各个对象名称的列表 - ... 判断添加filter类型 xpath=//*[@id="policy_paper_left"]/div[8]/div/div[1]/label[contains(text(), "${filter}")]/following-sibling::div/div //*[@id="interceptionadd_checkappshow0"][contains(text(), "${filter}")] - sleep ${sleep} - FOR ${i} IN @{Filter} - sleep ${sleep} - click element id=interceptionadd_add_filter - sleep ${sleep} - run keyword if "${Application}"=="HTTP" and "${i}"=="Host" run keywords sleep ${sleep} - ... AND click element xpath=//*[@id="interceptionadd_checkappshow0"][contains(text(), "${i}")] - ... AND Create-Object-Search ${Hostname} ${i} - run keyword if "${Application}"=="HTTP" and "${i}"=="URL" run keywords sleep ${sleep} - ... AND click element xpath=//*[@id="interceptionadd_checkappshow1"][contains(text(), "${i}")] - ... AND Create-Object-Search ${URLname} ${i} - run keyword if "${Application}"=="HTTP" and "${i}"=="Request Header" run keywords sleep ${sleep} - ... AND click element xpath=//*[@id="interceptionadd_checkappshow2"][contains(text(), "${i}")] - ... AND Create-Object-Search ${Request Headername} ${i} - run keyword if "${Application}"=="HTTP" and "${i}"=="Response Header" run keywords sleep ${sleep} - ... AND click element xpath=//*[@id="interceptionadd_checkappshow3"][contains(text(), "${i}")] - ... AND Create-Object-Search ${Response Headername} ${i} - run keyword if "${Application}"=="HTTP" and "${i}"=="Request Content" run keywords sleep ${sleep} - ... AND click element xpath=//*[@id="interceptionadd_checkappshow4"][contains(text(), "${i}")] - ... AND Create-Object-Search ${Request Contentname} ${i} - run keyword if "${Application}"=="HTTP" and "${i}"=="Response Content" run keywords sleep ${sleep} - ... AND click element xpath=//*[@id="interceptionadd_checkappshow5"][contains(text(), "${i}")] - ... AND Create-Object-Search ${Response Contentname} ${i} - run keyword if "${Application}"=="Doh" and "${i}"=="Host" run keywords sleep ${sleep} - ... AND click element xpath=//*[@id="interceptionadd_checkappshow0"][contains(text(), "${i}")] - ... AND Create-Object-Search ${DohHostname} ${i} - run keyword if "${Application}"=="Doh" and "${i}"=="QNAME" run keywords sleep ${sleep} - ... AND click element xpath=//*[@id="interceptionadd_checkappshow1"][contains(text(), "${i}")] - ... AND Create-Object-Search ${QNAMEname} ${i} - END -Deny-subaction - [Arguments] ${action} ${denycode} - [Documentation] 调用次关键字前需要添加必填参数: - ... ${denycode}:填入403或404或451 - ... ${action}:填入deny - ... 添加subaction - run keyword if "${action}"=="deny" and "${denycode}"=="403" run keywords sleep ${sleep} - ... AND click element id=manipulation_select_addAction - ... AND sleep ${sleep} - ... AND click element //span[.="${denycode}"] - ... AND sleep ${sleep} - run keyword if "${action}"=="deny" and "${denycode}"=="404" run keywords sleep ${sleep} - ... AND click element id=manipulation_select_addAction - ... AND sleep ${sleep} - ... AND click element //span[.="${denycode}"] - ... AND sleep ${sleep} - run keyword if "${action}"=="deny" and "${denycode}"=="451" run keywords sleep ${sleep} - ... AND click element id=manipulation_select_addAction - ... AND sleep ${sleep} - ... AND click element //span[.="${denycode}"] - ... AND sleep ${sleep} - ... AND -Deny-content - [Arguments] ${contenttype}=File ${SearchorCreate}=null ${ProfileName}=null ${file}=null ${textvalue}=null - [Documentation] 调用次关键字前需要添加必填参数: - ... ${code}:填入403或404 - ... ${Content}:填入TEXT或Profile - ... ${SearchorCreate}:填入Search或Create - ... ${block-text}:填入TEXT文本框内容 - ... ${ProfileName}:Profile的名字 - ... ${file}:上传文件路径 - ... ${textvalue}:填入text输入框内容 - ... 添加block数据内容 - sleep ${sleep} - run keyword if "${contenttype}"=="File" run keywords sleep ${sleep} - ... AND click element id=manipulation_select_blockInfo - ... AND sleep ${sleep} - ... AND click element id=ResponseContentFile - ... AND sleep ${sleep} - ... AND click element id=manipulation_select_htmlProfile - ... AND sleep ${sleep} - ... AND Profile-SearchorCreate ${SearchorCreate} ${ProfileName} ${file} - run keyword if "${contenttype}"=="Text" run keywords sleep ${sleep} - ... AND click element id=manipulation_select_blockInfo - ... AND sleep ${sleep} - ... AND click ellement id=ResponseContentText - ... AND sllep 1 - ... AND input text id=manipulation_elInput_blockselect ${textvalue} - ... AND sleep ${sleep} -Profile-SearchorCreate - [Arguments] ${SearchorCreate} ${ProfileName} ${file} - [Documentation] 调用次关键字前需要添加必填参数: - ... ${SearchorCreate}:填入Search或Create - ... ${ProfileName}:Profile的名字 - ... ${file}:上传文件路径 - ... 判断是新建还是搜索profile - sleep ${sleep} - run keyword if "${SearchorCreate}"=="Search" run keywords sleep ${sleep} - ... AND input text xapth=/html/body/div/div[1]/div[1]/ul/div[1]/div/input ${ProfileName} - ... AND sleep ${sleep} - ... AND press keys xapth=/html/body/div/div[1]/div[1]/ul/div[1]/div/input ENTER - ... AND sleep ${sleep} - ... AND click element xpath=/html/body/div/div[1]/div[1]/ul/div[2]/div/li[1] - ... AND sleep ${sleep} - ... ELSE IF "${SearchorCreate}"=="Create" run keywords sleep ${sleep} - ... AND click element xpath=/html/body/div/div[1]/div[1]/ul/div[1]/div/div/button - ... AND sleep ${sleep} - ... AND input text id=responsepages_profileName ${ProfileName} - ... AND sleep ${sleep} - ... AND Choose File xpath=//*[@id="policy_Manipulation_create6"]/div[2]/form/div[2]/div/div/div/input ${file} #上传文件 - ... AND sleep ${sleep} - ... AND click element id=responseAddOk1 - ... AND sleep ${sleep} - ... ELSE log 传入参数错误 -Deny-Redirect - [Arguments] ${QType} ${Avalue} ${Attl} ${CNAMEvalue} ${CNAMEttl} - [Documentation] 调用次关键字前需要添加必填参数: - ... ${QType}:填入A或AAAA - ... ${Avalue}:根据${QType}填入IPV4或IPV6的值 - ... ${Attl}:根据${QType}填入A的ttl值或AAAA的ttl值 - ... ${CNAMEvalue}:根据${QType}填入A的CNAME的域名值或AAAA的CNAME域名值 - ... ${CNAMEttl}:根据${QType}填入A的CNAME的ttl值或AAAA的CNAME的ttl值 - ... 新建Redirect - sleep ${sleep} - click element id=interceptionadd_add_filter - sleep ${sleep} - run keyword if "${QType}"=="A" run keywords sleep ${sleep} - ... AND input text id=A00 ${Avalue} - ... AND sleep ${sleep} - ... AND input text id=ttl00 ${Attl} - ... AND sleep ${sleep} - ... AND click element id=interceptionadd_addForm - ... AND sleep ${sleep} - ... AND input text id=Cname01 ${CNAMEvalue} - ... AND sleep ${sleep} - ... AND input text id=ttl01 ${CNAMEttl} - run keyword if "${QType}"=="AAAA" run keywords sleep ${sleep} - ... AND click element id=dns_qtype_radio01 - ... AND input text id=AAAA00 ${Avalue} - ... AND sleep ${sleep} - ... AND input text id=ttl00 ${Attl} - ... AND sleep ${sleep} - ... AND click element id=interceptionadd_addForm - ... AND sleep ${sleep} - ... AND input text id=Cname01 ${CNAMEvalue} - ... AND sleep ${sleep} - ... AND input text id=ttl01 ${CNAMEttl} - sleep ${sleep} - click element id=interceptionadd_shezhidns - -Replace-Action-Parameters-for1 - [Arguments] ${ParametersType} ${RequestURIFind}=null ${RequestURIReplacewith}=null ${RequestBodyFind}=null ${RequestBodyReplacewith}=null ${ResponseBodyFind}=null - ... ${ResponseBodyReplacewith}=null ${RequestHeaderFind}=null ${RequestHeaderReplacewith}=null ${ResponseHeaderFind}=null ${ResponseHeaderReplacewith}=null - [Documentation] 调用次关键字前需要添加必填参数: - ... ${ParametersType}:列表格式,Search 下拉框中内容 - ... ${i}:索引值 - ... ${xxxFind}:是Find输入框输入的值 - ... ${XXXReplacewith} :是 Replacewith输入框中输入的值 - ${len} Get Length ${ParametersType} - ${len1} evaluate ${len}+1 - FOR ${i} IN RANGE 1 ${len1} - Replace-Action-Parameters-for2 ${ParametersType} ${i} ${RequestURIFind} ${RequestURIReplacewith} ${RequestBodyFind} ${RequestBodyReplacewith} ${ResponseBodyFind} - ... ${ResponseBodyReplacewith} ${RequestHeaderFind} ${RequestHeaderReplacewith} ${ResponseHeaderFind} ${ResponseHeaderReplacewith} - sleep ${sleep} - run keyword if "${len}"!="1" run keywords sleep ${sleep} - ... AND clcik element id=replaceadd_btn - ... AND sleep ${sleep} - END - sleep ${sleep} - -Replace-Action-Parameters-for2 - [Arguments] ${ParametersType} ${i} ${RequestURIFind} ${RequestURIReplacewith} ${RequestBodyFind} ${RequestBodyReplacewith} ${ResponseBodyFind} - ... ${ResponseBodyReplacewith} ${RequestHeaderFind} ${RequestHeaderReplacewith} ${ResponseHeaderFind} ${ResponseHeaderReplacewith} - [Documentation] 调用次关键字前需要添加必填参数: - ... ${ParametersType}:列表格式,Search 下拉框中内容 - ... ${i}:索引值 - ... ${xxxFind}:是Find输入框输入的值 - ... ${XXXReplacewith} :是 Replacewith输入框中输入的值 - FOR ${j} IN @{ParametersType} - run keyword if "${j}"=="RequestURI" run keywords sleep ${sleep} - ... AND click element xpath=//*[@id="policy_paper_left"]/div[12]/div/div/form/div[3]/ul/li[${i}]/div[1]/div/div/div[1]/input - ... AND sleep ${sleep} - ... AND input text xpath=//*[@id="policy_paper_left"]/div[12]/div/div/form/div[3]/ul/li[${i}]/div[2]/div/div/input ${RequestURIFind} - ... AND sleep ${sleep} - ... AND input text xpath=//*[@id="policy_paper_left"]/div[12]/div/div/form/div[3]/ul/li[${i}]/div[3]/div/div/input ${RequestURIReplacewith} - ... AND sleep ${sleep} - run keyword if "${j}"=="RequestBody" run keywords sleep ${sleep} - ... AND click element xpath=//*[@id="policy_paper_left"]/div[12]/div/div/form/div[3]/ul/li[${i}]/div[1]/div/div/div[1]/input - ... AND sleep ${sleep} - ... AND input text xpath=//*[@id="policy_paper_left"]/div[12]/div/div/form/div[3]/ul/li[${i}]/div[2]/div/div/input ${RequestBodyFind} - ... AND sleep ${sleep} - ... AND input text xpath=//*[@id="policy_paper_left"]/div[12]/div/div/form/div[3]/ul/li[${i}]/div[3]/div/div/input ${RequestBodyReplacewith} - ... AND sleep ${sleep} - run keyword if "${j}"=="ResponseBody" run keywords sleep ${sleep} - ... AND click element xpath=//*[@id="policy_paper_left"]/div[12]/div/div/form/div[3]/ul/li[${i}]/div[1]/div/div/div[1]/input - ... AND sleep ${sleep} - ... AND input text xpath=//*[@id="policy_paper_left"]/div[12]/div/div/form/div[3]/ul/li[${i}]/div[2]/div/div/input ${ResponseBodyFind} - ... AND sleep ${sleep} - ... AND input text xpath=//*[@id="policy_paper_left"]/div[12]/div/div/form/div[3]/ul/li[${i}]/div[3]/div/div/input ${ResponseBodyReplacewith} - ... AND sleep ${sleep} - run keyword if "${j}"=="RequestHeader" run keywords sleep ${sleep} - ... AND click element xpath=//*[@id="policy_paper_left"]/div[12]/div/div/form/div[3]/ul/li[${i}]/div[1]/div/div/div[1]/input - ... AND sleep ${sleep} - ... AND input text xpath=//*[@id="policy_paper_left"]/div[12]/div/div/form/div[3]/ul/li[${i}]/div[2]/div/div/input ${RequestHeaderFind} - ... AND sleep ${sleep} - ... AND input text xpath=//*[@id="policy_paper_left"]/div[12]/div/div/form/div[3]/ul/li[${i}]/div[3]/div/div/input ${RequestHeaderReplacewith} - ... AND sleep ${sleep} - run keyword if "${j}"=="ResponseHeader" run keywords sleep ${sleep} - ... AND click element xpath=//*[@id="policy_paper_left"]/div[12]/div/div/form/div[3]/ul/li[${i}]/div[1]/div/div/div[1]/input - ... AND sleep ${sleep} - ... AND input text xpath=//*[@id="policy_paper_left"]/div[12]/div/div/form/div[3]/ul/li[${i}]/div[2]/div/div/input ${ResponseHeaderFind} - ... AND sleep ${sleep} - ... AND input text xpath=//*[@id="policy_paper_left"]/div[12]/div/div/form/div[3]/ul/li[${i}]/div[3]/div/div/input ${ResponseHeaderReplacewith} - ... AND sleep ${sleep} - END - -HijackFile-SearchorCreate - [Arguments] ${SearchorCreate} ${Hijackname} ${Hijackfile} ${dow_name} ${input} ${Hijackname} ${Hijacktype} - [Documentation] 调用次关键字前需要添加必填参数: - ... ${SearchorCreate}:填入Search或Create - ... ${Hijackname}:填入新建hijack的name - ... ${Hijackfile}:填入新建hijack文件的路径 - ... ${dow_name}:根据情况填入close或open或其他 - ... ${input};填入shuru或其他 - ... ${Hijacktype}:填入选择文件类型的元素 - ... 判断是新建还是搜索HijackFile - sleep ${sleep} - click element xpath=//*[@id="policy_paper_left"]/div[12]/div/div/form/div[4]/div/div/div/div - sleep ${sleep} - run keyword if "${SearchorCreate}"=="Search" run keywords sleep ${sleep} - ... AND input text xapth=/html/body/div/div[1]/div[1]/ul/div[1]/div/input ${Hijackname} - ... AND sleep ${sleep} - ... AND press keys xapth=/html/body/div/div[1]/div[1]/ul/div[1]/div/input ENTER - ... AND sleep ${sleep} - ... AND click element xpath=/html/body/div/div[1]/div[1]/ul/div[2]/div/li[1] - ... AND sleep ${sleep} - ... ELSE IF "${SearchorCreate}"=="Create" run keywords sleep ${sleep} - ... AND click element xpath=/html/body/div/div[1]/div[1]/ul/div[1]/div/div/button - ... AND sleep ${sleep} - ... AND HijackFile-Create ${Hijackname} ${Hijackfile} ${dow_name} ${input} ${Hijackname} ${Hijacktype} - ... ELSE log 传入参数错误 - -HijackFile-Create - [Arguments] ${Hijackname} ${Hijackfile} ${dow_name} ${input} ${Hijackname} ${Hijacktype} - [Documentation] 调用次关键字前需要添加必填参数: - ... ${Hijackname}:填入新建hijack的name - ... ${Hijackfile}:填入新建hijack文件的路径 - ... ${dow_name}:根据情况填入close或open或其他 - ... ${input};填入shuru或其他 - ... ${Hijacktype}:填入选择文件类型的元素 - ... 新建hijack - sleep ${sleep} - input id=hijack_profileName ${Hijackname} #输入name - sleep ${sleep} - Choose File xpath=//*[@id="proxy"]/div[11]/div/div[1]/div[2]/form/div[2]/div/div/div[1]/input ${Hijackfile} #上传文件 - sleep ${sleep} - run keyword if "${dow_name}"=="close" and "${input}"=="shuru" run keywords sleep ${sleep} - ... AND input text id=hijack_contentName ${Hijackname} - ... ELSE IF "${dow_name}"=="open" click element xpath=//*[@id="contentNameChoose"]/div[1]/span[2] - sleep ${sleep} - click element id=hijackAddContentType #点击+ 打开侧滑窗口 - sleep ${sleep} - click element ${Hijacktype} #选择文件类型 - sleep ${sleep} - click element id=hijackAddOk1 #点击OK - -InsertScript-SearchorCreate - [Arguments] ${SearchorCreate} ${Insertname} ${Insertfile} ${Inserttype} ${Insertjstype} - [Documentation] 调用次关键字前需要添加必填参数: - ... ${SearchorCreate}:填入Search或Create - ... ${Insertname}:填入新建insert的name - ... ${Insertfile}:填入新建insert文件的路径 - ... ${Inserttype}:根据情况填入css或js - ... ${Insertjstype};填入Before Page Load或After Page Load - ... 判断是新建还是搜索insert - sleep ${sleep} - click element id=manipulation_select_insetScript - sleep ${sleep} - run keyword if "${SearchorCreate}"=="Search" run keywords sleep ${sleep} - ... AND input text xapth=/html/body/div/div[1]/div[1]/ul/div[1]/div/input ${Hijackname} - ... AND sleep ${sleep} - ... AND press keys xapth=/html/body/div/div[1]/div[1]/ul/div[1]/div/input ENTER - ... AND sleep ${sleep} - ... AND click element xpath=/html/body/div/div[1]/div[1]/ul/div[2]/div/li[1] - ... AND sleep ${sleep} - ... ELSE IF "${SearchorCreate}"=="Create" run keywords sleep ${sleep} - ... AND click element xpath=/html/body/div/div[1]/div[1]/ul/div[1]/div/div/button - ... AND sleep ${sleep} - ... AND InsertScript-Create ${Insertname} ${Insertfile} ${Inserttype} ${Insertjstype} - ... ELSE log 传入参数错误 - -InsertScript-Create - [Arguments] ${Insertname} ${Insertfile} ${Inserttype} ${Insertjstype} - [Documentation] 调用次关键字前需要添加必填参数: - ... ${Insertname}:填入新建insert的name - ... ${Insertfile}:填入新建insert文件的路径 - ... ${Inserttype}:根据情况填入css或js - ... ${Insertjstype};填入Before Page Load或After Page Load - ... 新建insert - sleep ${sleep} - input id=insert_profileName ${Insertname} #输入name - sleep ${sleep} - Choose File xpath=//*[@id="insertAddUpload"]/div[1]/input ${Insertfile} #上传文件 - sleep ${sleep} - clcik element id=insert_select_format - sleep ${sleep} - run keyword if "${Inserttype}"=="css" run keywords sleep ${sleep} - ... AND click element //span[.="${Inserttype}"] #选择css - run keyword if "${Inserttype}"=="js" run keywords sleep ${sleep} - ... AND click element //span[.="${Inserttype}"] - ... AND sleep ${sleep} - ... AND click element id=insert_select_insertOn #点击下拉框 - ... AND sleep ${sleep} - ... AND click element //span[.="${Insertjstype}"] - sleep ${sleep} - click element id=insertAddOk1 #点击OK - - - - -LogSession - [Arguments] ${LogSession} - [Documentation] 调用次关键字前需要添加必填参数: - ... ${LogSession}:填入clcos或其他 - run keyword if "${LogSession}"=="close" run keywords sleep ${sleep} - ... AND click element id=manipulationSwitch0 - ... ELSE log 开启日志 - -LogOptions - [Arguments] ${LogOptions} - [Documentation] 调用次关键字前需要添加必填参数: - ... ${LogOptions}:填入All或其他 - run keyword if "${LogOptions}"=="All" run keywords sleep ${sleep} - ... AND click element id=logType1 - ... ELSE log 选择Metadata only -Enabled - [Arguments] ${Enabled} - [Documentation] 调用次关键字前需要添加必填参数: - ... ${Enabled}:填入open或其他 - run keyword if "${Enabled}"=="open" run keywords sleep ${sleep} - ... AND click element xpath=//*[@id="proxyManipulationUse"]/label[contains(text(), "Enabled")]/following-sibling::div/div - ... AND sleep ${sleep} - ... AND click element xpath=/html/body/div/div/div[3]/button[2] - ... ELSE log 开启日志 - -Proxy-Policies-OK - sleep ${sleep} - click element id=proxyManipulationSuccess - sleep ${sleep} -Create-Object-Search - [Arguments] ${name} ${filter} - [Documentation] 调用次关键字前需要添加必填参数: - ... ${name}:填入是一个列表,列表内容为object的name - ... 选择search对象 - sleep ${sleep} - click element xpath=//*[@id="policy_paper_left"]/div[9]/div/div[1]/label[contains(text(), "${filter}")]/following-sibling::div/div - sleep ${sleep} - FOR ${i} IN @{name} - input text xpath=//*[@id="condistions_protocol"]/div[2]/p[contains(text(), "${filter}")]/following-sibling::div[2]/div/div[1]/input ${i} - sleep ${sleep} - press keys xpath=//*[@id="condistions_protocol"]/div[2]/p[contains(text(), "${filter}")]/following-sibling::div[2]/div/div[1]/input ENTER - sleep ${sleep} - click element xpath=//*[@id="condistions_protocol"]/div[2]/p[contains(text(), "${filter}")]/following-sibling::div[2]/div/div[2]/div/div/ul/li[1] - sleep ${sleep} - END - - -Proxy-Source - [Arguments] ${SourceType} ${SourceValue} - Wait Until Element Is Enabled xpath=//*[@id="app"]/div/div[3]/div[2]/div/div[1]/div[1]/span/div/div/div[2]/div/div 10 - sleep ${sleep} - click element xpath=//*[@id="app"]/div/div[3]/div[2]/div/div[1]/div[1]/span/div/div/div[2]/div/div - sleep ${sleep} - run keyword if "${SourceType}"=="ID" run keywords sleep ${sleep} - ... AND click element xpath=/html/body/div/div[1]/div[1]/ul/li[2] - run keyword if "${SourceType}"=="Name" run keywords sleep ${sleep} - ... AND click element xpath=/html/body/div/div[1]/div[1]/ul/li[3] - run keyword if "${SourceType}"=="Action" run keywords sleep ${sleep} - ... AND click element xpath=/html/body/div/div[1]/div[1]/ul/li[4] - sleep ${sleep} - input text xpath=//*[@id="app"]/div/div[3]/div[2]/div/div[1]/div[1]/span/div/div/div[2]/div/div[1]/div[3]/div/input ${SourceValue} - sleep ${sleep} - click element xpath=//*[@id="app"]/div/div[3]/div[2]/div/div[1]/div[1]/span/div/i - sleep ${sleep} - click element xpath=//*[@id="ly-table1-listcontent"]/div/div[3]/table/tbody/tr[1] - sleep ${sleep} - -EditButton - sleep ${sleep} - click element xpath=//*[@id="appEdit"]/span/div/div[2] - sleep ${sleep} - -Initialize-Policie - [Arguments] ${InitializeAction} - [Documentation] 调用次关键字前需要添加必填参数: - ... ${InitializeAction}:根据用例进行填写,意思就是是那一个action就不要点击哪一个,以免初始化失败 - run keyword if "${InitializeAction}"=="Allow" run keywords sleep ${sleep} - ... AND click element id=proxyManipulationdeny - ... AND sleep ${sleep} - ... ELSE IF "${InitializeAction}"=="Deny" run keywords sleep ${sleep} - ... AND click element id=proxyManipulationallow - ... ELSE IF "${InitializeAction}"=="Monitor" run keywords sleep ${sleep} - ... AND click element id=proxyManipulationdeny - ... ELSE IF "${InitializeAction}"=="Redirect" run keywords sleep ${sleep} - ... AND click element id=proxyManipulationdeny - ... ELSE IF "${InitializeAction}"=="Replace" run keywords sleep ${sleep} - ... AND click element id=proxyManipulationdeny - ... ELSE IF "${InitializeAction}"=="Hijack" run keywords sleep ${sleep} - ... AND click element id=proxyManipulationdeny - ... ELSE IF "${InitializeAction}"=="Insert" run keywords sleep ${sleep} - ... AND click element id=proxyManipulationdeny - ... ELSE log 不修改 - sleep ${sleep} - ${status} Run Keyword And Return Status Page should contain element xpath=/html/body/div[1]/div/div[3]/div[2]/div/div[1]/form[1]/div/div[4]/div[1]/div/div/div #判断页面是否包含该元素 - run keyword if "${status}"=="False" log go on - run keyword if "${status}"=="True" run keywords sleep ${sleep} - ... AND click element xpath=/html/body/div[1]/div/div[3]/div[2]/div/div[1]/form[1]/div/div[4]/div[1]/div/div/div/p/span/span/i[2] - ... AND sleep ${sleep} - ${status1} Run Keyword And Return Status Page should contain element xpath=/html/body/div[1]/div/div[3]/div[2]/div/div[1]/form[1]/div/div[5]/div[1]/div/div/div #判断页面是否包含该元素 - run keyword if "${status1}"=="False" log go on - run keyword if "${status1}"=="True" run keywords sleep ${sleep} - ... AND click element xpath=/html/body/div[1]/div/div[3]/div[2]/div/div[1]/form[1]/div/div[5]/div[1]/div/div/div/p/span/span/i[2] - ... AND sleep ${sleep} - -Delete-Proxy-estimate - [Arguments] ${securityname} - run keyword if "${securityname}"!="null" run keywords sleep ${sleep} - ... AND Delete-Proxy ${securityname} - ... ELSE log go on - -Delete-Proxy - [Arguments] ${securityname} - - Menu policys Proxy Policy - sleep ${sleep} - Wait Until Element Is Enabled xpath=//*[@id="app"]/div/div[3]/div[2]/div/div[1]/div[1]/span/div/div/div[2]/div/div 10 - click element xpath=//*[@id="app"]/div/div[3]/div[2]/div/div[1]/div[1]/span/div/div/div[2]/div/div - sleep ${sleep} - click element xpath=/html/body/div/div[1]/div[1]/ul/li[3] - sleep ${sleep} - input text xpath=//*[@id="app"]/div/div[3]/div[2]/div/div[1]/div[1]/span/div/div/div[2]/div/div[1]/div[3]/div/input ${securityname} - sleep ${sleep} - click element xpath=//*[@id="app"]/div/div[3]/div[2]/div/div[1]/div[1]/span/div/i - sleep ${sleep} - Run Keyword And Ignore Error click element xpath=//*[@id="ly-table1-listcontent"]/div/div[3]/table/tbody/tr[1] - sleep ${sleep} - sleep ${sleep} - Run Keyword And Ignore Error click element id=appDel - sleep ${sleep} - Run Keyword And Ignore Error click element xpath=/html/body/div/div/div[3]/button[2] - sleep ${sleep} - -Delete-object-estimate - [Arguments] ${obj} - run keyword if "${obj}"!="null" run keywords sleep ${sleep} - ... AND Delete-object ${obj} - ... ELSE log go on -Delete-object - [Arguments] ${obj} - FOR ${num} ${key} IN ENUMERATE @{obj} - Forname ${obj}[${key}] ${key} - - END - -Forname - [Arguments] ${objectname} ${key} - FOR ${i} IN @{objectname} - Menu objects ${key} - sleep ${sleep} - click element xpath=//*[@id="app"]/div/div[3]/div[2]/div/div[1]/div[1]/span/div/div/div[2]/div/div/div/input #点击输入框 - sleep ${sleep} - click element xpath=/html/body/div/div[1]/div[1]/ul/li[3] #点击name为搜索类型 - sleep ${sleep} - input text xpath=//*[@id="app"]/div/div[3]/div[2]/div/div[1]/div[1]/span/div/div/div[2]/div/div[1]/div[3]/div/input ${i} #输入搜索内容 - sleep ${sleep} - click element xpath=//*[@id="app"]/div/div[3]/div[2]/div/div[1]/div[1]/span/div/i #点击搜索按钮 - sleep ${sleep} - Run Keyword And Ignore Error click element xpath=//*[@id="ly-table1-listcontent"]/div/div[3]/table/tbody/tr[1]/td[1]/div/div/span #选择搜索到的列表 - sleep ${sleep} - sleep ${sleep} - Run Keyword And Ignore Error click element id=objectDel #点击删除按钮 - sleep ${sleep} - Run Keyword And Ignore Error click element xpath=/html/body/div/div/div[3]/button[2] - sleep ${sleep} - END \ No newline at end of file