From 32e5bf77e60fd45d97a225d1c6bb39a74c1bb66a Mon Sep 17 00:00:00 2001 From: byb11 Date: Wed, 10 Mar 2021 18:27:18 +0800 Subject: [PATCH] =?UTF-8?q?=E6=96=B0=E5=A2=9E=E5=AE=89=E5=85=A8=E4=BB=A3?= =?UTF-8?q?=E7=90=86=E7=AD=96=E7=95=A5=E6=B5=8B=E8=AF=95=E7=94=A8=E4=BE=8B?= =?UTF-8?q?=EF=BC=8C=E4=BF=AE=E6=94=B9=E5=88=9B=E5=BB=BA=E7=AD=96=E7=95=A5?= =?UTF-8?q?=E5=85=B3=E9=94=AE=E5=AD=97?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- 01-TestCase/tsg_ui/ui_proxy/ProxyCase.robot | 205 ++++++++++++++++++ .../tsg_ui/ui_security/SecurityCase.robot | 16 +- 02-Keyword/tsg_ui/policy/UIPolicy.robot | 170 +++++++++++---- 3 files changed, 333 insertions(+), 58 deletions(-) create mode 100644 01-TestCase/tsg_ui/ui_proxy/ProxyCase.robot diff --git a/01-TestCase/tsg_ui/ui_proxy/ProxyCase.robot b/01-TestCase/tsg_ui/ui_proxy/ProxyCase.robot new file mode 100644 index 0000000..f3b57d6 --- /dev/null +++ b/01-TestCase/tsg_ui/ui_proxy/ProxyCase.robot @@ -0,0 +1,205 @@ +*** Settings *** +Force Tags tsg-ui Policies Proxy +Library Selenium2Library +Resource ../../../02-Keyword/tsg_ui/objects/NewObjectPages.robot +Resource ../../../02-Keyword/tsg_ui/objects/NewObject.robot +Resource ../../../02-Keyword/tsg_ui/Menu.robot +Resource ../../../03-Variable/PolicyObjectDefault.txt +Resource ../../../02-Keyword/tsg_ui/policy/UIPolicy.robot + +*** Test Cases *** + +CreateProxyAllow + [Tags] Positive UI Proxy Policies Allow + CreatePage FQDN single ProxyFQDN keywordtext=*travelgam.com + CreatePage URL single ProxyURL keywordtext=*travelgam.com + CreatePage HTTPSignature single ProxyHTTPSignature reqrestype=req reqresheader=ck keywordtext=1234@#% + ${ip_name1} create list Proxy_IP + ${filter} create list Host URL Request Header Response Header + ${Host} create list ProxyFQDN + ${URL} create list ProxyURL + ${Request Header} create list ProxyHTTPSignature + ${Response Header} create list ProxyHTTPSignature + ${filterInfo} Create Dictionary Filter=${filter} Hostname=${Host} URLname=${URL} Request Headername=${Request Header} Response Headername=${Response Header} + ${dip1} Create Dictionary Sordtype=Destination Type1=Ip CreateOrSearch=Search ObjectName=${ip_name1} + ${destinationAddIpList} Create List ${dip1} + ${destinationInfo} Create Dictionary destinationAddIpList=${destinationAddIpList} + ${sip} Create Dictionary Sordtype=Source Type1=Ip CreateOrSearch=Create Add=Address Name=Proxy_IP Ipclienttext1=192.168.40.11-192.168.40.110 Port=1-65535 + ${sourceAddIpList} Create List ${sip} + ${sourceInfo} Create Dictionary sourceAddIpList=${sourceAddIpList} + ${policyInfo} Create Dictionary PolicyType=Proxy Policy PolicyName=${TEST NAME} PolicyAction=Allow ApplicationSearch=HTTP PolicyLogSession=1 PolicyEnabled=1 + UIAddPolicies ${policyInfo} SourceInfo=${sourceInfo} DestinationInfo=${destinationInfo} FilterInfo=${filterInfo} + PoliciesDelete + +CreateProxyDeny + [Tags] Positive UI Proxy Policies Deny + CreatePage Key single proxykey keywordtext=Poplar Systems + ${httpsignature} set variable ProxyHTTPSignature + ${Key} set variable proxykey + ${ip_name1} create list Proxy_IP + ${filter} create list Host URL Request Header Response Header Request Content Response Content + ${Host} create list ProxyFQDN + ${URL} create list ProxyURL + ${Request Header} create list ${httpsignature} + ${Response Header} create list ${httpsignature} + ${Request Content} create list ${Key} + ${Response Content} create list ${Key} + ${filterInfo} Create Dictionary Filter=${filter} Hostname=${Host} URLname=${URL} Request Headername=${Request Header} Response Headername=${Response Header} Request Contentname=${Request Content} Response Contentname=${Response Content} + ${dip1} Create Dictionary Sordtype=Destination Type1=Ip CreateOrSearch=Search ObjectName=${ip_name1} + ${destinationAddIpList} Create List ${dip1} + ${destinationInfo} Create Dictionary destinationAddIpList=${destinationAddIpList} + ${sip} Create Dictionary Sordtype=Source Type1=Ip CreateOrSearch=Search ObjectName=${ip_name1} + ${sourceAddIpList} Create List ${sip} + ${sourceInfo} Create Dictionary sourceAddIpList=${sourceAddIpList} + ${policyInfo} Create Dictionary PolicyType=Proxy Policy PolicyName=${TEST NAME} PolicyAction=Deny ApplicationSearch=HTTP PolicyLogSession=1 PolicyEnabled=1 + ${ProxyDenyadd} Create Dictionary DenyCode=403 Action=Deny ContentType=TEXT TextValue=Test + UIAddPolicies ${policyInfo} SourceInfo=${sourceInfo} FilterInfo=${filterInfo} ProxyDenyadd=${ProxyDenyadd} + PoliciesDelete + +CreateProxyMonitor + [Tags] Positive UI Proxy Policies Monitor + ${httpsignature} set variable ProxyHTTPSignature + ${Key} set variable proxykey + ${ip_name1} create list Proxy_IP + ${filter} create list Host URL Request Header Response Header Request Content Response Content + ${Host} create list ProxyFQDN + ${URL} create list ProxyURL + ${Request Header} create list ${httpsignature} + ${Response Header} create list ${httpsignature} + ${Request Content} create list ${Key} + ${Response Content} create list ${Key} + ${filterInfo} Create Dictionary Filter=${filter} Hostname=${Host} URLname=${URL} Request Headername=${Request Header} Response Headername=${Response Header} Request Contentname=${Request Content} Response Contentname=${Response Content} + ${dip1} Create Dictionary Sordtype=Destination Type1=Ip CreateOrSearch=Search ObjectName=${ip_name1} + ${destinationAddIpList} Create List ${dip1} + ${destinationInfo} Create Dictionary destinationAddIpList=${destinationAddIpList} + ${sip} Create Dictionary Sordtype=Source Type1=Ip CreateOrSearch=Search ObjectName=${ip_name1} + ${sourceAddIpList} Create List ${sip} + ${sourceInfo} Create Dictionary sourceAddIpList=${sourceAddIpList} + ${policyInfo} Create Dictionary PolicyType=Proxy Policy PolicyName=${TEST NAME} PolicyAction=Monitor ApplicationSearch=HTTP PolicyLogSession=1 PolicyEnabled=1 + UIAddPolicies ${policyInfo} SourceInfo=${sourceInfo} FilterInfo=${filterInfo} + PoliciesDelete + +CreateProxyRedirect + [Tags] Positive UI Proxy Policies Redirect + ${httpsignature} set variable ProxyHTTPSignature + ${Key} set variable proxykey + ${ip_name1} create list Proxy_IP + ${filter} create list Host URL Request Header Response Header Request Content + ${Host} create list ProxyFQDN + ${URL} create list ProxyURL + ${Request Header} create list ${httpsignature} + ${Response Header} create list ${httpsignature} + ${Request Content} create list ${Key} + ${HTTPRedirectadd} Create Dictionary Response Code=301 Redirect URL=https://www.vip.com + ${filterInfo} Create Dictionary Filter=${filter} Hostname=${Host} URLname=${URL} Request Headername=${Request Header} Response Headername=${Response Header} Request Contentname=${Request Content} + ${dip1} Create Dictionary Sordtype=Destination Type1=Ip CreateOrSearch=Search ObjectName=${ip_name1} + ${destinationAddIpList} Create List ${dip1} + ${destinationInfo} Create Dictionary destinationAddIpList=${destinationAddIpList} + ${sip} Create Dictionary Sordtype=Source Type1=Ip CreateOrSearch=Search ObjectName=${ip_name1} + ${sourceAddIpList} Create List ${sip} + ${sourceInfo} Create Dictionary sourceAddIpList=${sourceAddIpList} + ${policyInfo} Create Dictionary PolicyType=Proxy Policy PolicyName=${TEST NAME} PolicyAction=Redirect ApplicationSearch=HTTP PolicyLogSession=1 PolicyEnabled=1 + UIAddPolicies ${policyInfo} SourceInfo=${sourceInfo} FilterInfo=${filterInfo} HTTPRedirectadd=${HTTPRedirectadd} + PoliciesDelete + +CreateProxyReplace + [Tags] Positive UI Proxy Policies Replace + ${httpsignature} set variable ProxyHTTPSignature + ${ip_name1} create list Proxy_IP + ${filter} create list Host URL Request Header Response Header + ${Host} create list ProxyFQDN + ${URL} create list ProxyURL + ${Request Header} create list ${httpsignature} + ${Response Header} create list ${httpsignature} + ${filterInfo} Create Dictionary Filter=${filter} Hostname=${Host} URLname=${URL} Request Headername=${Request Header} Response Headername=${Response Header} + ${dip1} Create Dictionary Sordtype=Destination Type1=Ip CreateOrSearch=Search ObjectName=${ip_name1} + ${destinationAddIpList} Create List ${dip1} + ${destinationInfo} Create Dictionary destinationAddIpList=${destinationAddIpList} + ${sip} Create Dictionary Sordtype=Source Type1=Ip CreateOrSearch=Search ObjectName=${ip_name1} + ${sourceAddIpList} Create List ${sip} + ${sourceInfo} Create Dictionary sourceAddIpList=${sourceAddIpList} + ${policyInfo} Create Dictionary PolicyType=Proxy Policy PolicyName=${TEST NAME} PolicyAction=Replace ApplicationSearch=HTTP PolicyLogSession=1 PolicyEnabled=1 + ${ParametersType} create list HTTP Request-URI + ${ReplaceActionParameters} Create Dictionary ParametersType=${ParametersType} RequestURIFind=test RequestURIReplacewith=TEXT + UIAddPolicies ${policyInfo} SourceInfo=${sourceInfo} FilterInfo=${filterInfo} ReplaceActionParameters=${ReplaceActionParameters} + PoliciesDelete + +CreateProxyHijack + [Tags] Positive UI Proxy Policies Hijack + ${httpsignature} set variable ProxyHTTPSignature + ${ip_name1} create list Proxy_IP + ${filter} create list Host URL Request Header Response Header + ${Host} create list ProxyFQDN + ${URL} create list ProxyURL + ${Request Header} create list ${httpsignature} + ${Response Header} create list ${httpsignature} + ${filterInfo} Create Dictionary Filter=${filter} Hostname=${Host} URLname=${URL} Request Headername=${Request Header} Response Headername=${Response Header} + ${dip1} Create Dictionary Sordtype=Destination Type1=Ip CreateOrSearch=Search ObjectName=${ip_name1} + ${destinationAddIpList} Create List ${dip1} + ${destinationInfo} Create Dictionary destinationAddIpList=${destinationAddIpList} + ${sip} Create Dictionary Sordtype=Source Type1=Ip CreateOrSearch=Search ObjectName=${ip_name1} + ${sourceAddIpList} Create List ${sip} + ${sourceInfo} Create Dictionary sourceAddIpList=${sourceAddIpList} + ${policyInfo} Create Dictionary PolicyType=Proxy Policy PolicyName=${TEST NAME} PolicyAction=Hijack ApplicationSearch=HTTP PolicyLogSession=1 PolicyEnabled=1 + ${HijackFileadd} Create Dictionary SearchorCreate=Search Hijackname=by自动化测试勿动 + UIAddPolicies ${policyInfo} SourceInfo=${sourceInfo} FilterInfo=${filterInfo} HijackFileadd=${HijackFileadd} + PoliciesDelete + +CreateProxyInsert + [Tags] Positive UI Proxy Policies Insert + ${httpsignature} set variable ProxyHTTPSignature + ${ip_name1} create list Proxy_IP + ${filter} create list Host URL Request Header Response Header + ${Host} create list ProxyFQDN + ${URL} create list ProxyURL + ${Request Header} create list ${httpsignature} + ${Response Header} create list ${httpsignature} + ${filterInfo} Create Dictionary Filter=${filter} Hostname=${Host} URLname=${URL} Request Headername=${Request Header} Response Headername=${Response Header} + ${dip1} Create Dictionary Sordtype=Destination Type1=Ip CreateOrSearch=Search ObjectName=${ip_name1} + ${destinationAddIpList} Create List ${dip1} + ${destinationInfo} Create Dictionary destinationAddIpList=${destinationAddIpList} + ${sip} Create Dictionary Sordtype=Source Type1=Ip CreateOrSearch=Search ObjectName=${ip_name1} + ${sourceAddIpList} Create List ${sip} + ${sourceInfo} Create Dictionary sourceAddIpList=${sourceAddIpList} + ${policyInfo} Create Dictionary PolicyType=Proxy Policy PolicyName=${TEST NAME} PolicyAction=Insert ApplicationSearch=HTTP PolicyLogSession=1 PolicyEnabled=1 + ${InsertScript} Create Dictionary SearchorCreate=Search Insertname=自动化-勿动 + UIAddPolicies ${policyInfo} SourceInfo=${sourceInfo} FilterInfo=${filterInfo} InsertScript=${InsertScript} + PoliciesDelete + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/01-TestCase/tsg_ui/ui_security/SecurityCase.robot b/01-TestCase/tsg_ui/ui_security/SecurityCase.robot index 21be51d..8d24c17 100644 --- a/01-TestCase/tsg_ui/ui_security/SecurityCase.robot +++ b/01-TestCase/tsg_ui/ui_security/SecurityCase.robot @@ -1,4 +1,5 @@ *** Settings *** +Force Tags tsg-ui Policies Security Library Selenium2Library Resource ../../../02-Keyword/tsg_ui/objects/NewObjectPages.robot Resource ../../../02-Keyword/tsg_ui/objects/NewObject.robot @@ -421,18 +422,3 @@ CreateSecurityIntercept ${policyInfo} Create Dictionary PolicyType=Security Policy PolicyName=${TEST NAME} PolicyAction=Intercept ApplicationSearch=SSL PolicyLogSession=1 PolicyEnabled=1 UIAddPolicies ${policyInfo} SourceInfo=${sourceInfo} DestinationInfo=${destinationInfo} FilterInfo=${filterInfo} PoliciesDelete - - - - - - - - - - - - - - - diff --git a/02-Keyword/tsg_ui/policy/UIPolicy.robot b/02-Keyword/tsg_ui/policy/UIPolicy.robot index 739c78d..7a9c49a 100644 --- a/02-Keyword/tsg_ui/policy/UIPolicy.robot +++ b/02-Keyword/tsg_ui/policy/UIPolicy.robot @@ -10,7 +10,7 @@ Resource ../../../03-Variable/BifangApiVariable.txt UIAddPolicies [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 + ... ${ProxyDenyadd}=null ${DenyRedirectadd}=null ${HTTPRedirectadd}=null ${ReplaceActionParameters}=null ${HijackFileadd}=null ${InsertScript}=null [Documentation] 创建策略 ... 调用次关键字前需要添加参数: ... ${PolicyInfo}是个字典:实例 ${PolicyInfo} Create Dictionary PolicyType=Security Policy PolicyName=${TEST NAME} PolicyAction=deny PolicySubAction=RST ApplicationSearch=HTTP PolicyLogSession=1 PolicyEnabled=1 @@ -78,18 +78,20 @@ UIAddPolicies Run Keyword If "${DestinationInfo}"=="${EMPTY}" log there is no DestinationInfo ... ELSE UIPolicy.CreateEditDeleteDestination ${DestinationInfo} - UIPolicy.Create-Application-Button ${PolicyType} ${ApplicationSearchV} ${PolicyAction} + UIPolicy.Create-Application-Button ${PolicyType} ${ApplicationSearchV} ${PolicyAction} #编辑filter Run Keyword If "${FilterInfo}"=="null" log there is no FilterInfo - ... ELSE Create-Filter-SecurityOrProxy ${PolicyType} ${ApplicationSearchV}[0] ${FilterInfo} + ... ELSE Create-Filter-SecurityOrProxy ${PolicyType} ${ApplicationSearchV}[0] ${FilterInfo} ${PolicyAction} Run Keyword If "${PolicyType}"=="Security Policy" and "${PolicyAction}"=="Deny" run keywords sleep ${sleep} ... AND Deny-subaction-1 ${PolicyAction} ${PolicySubAction} ${Subactionadd} Run Keyword If "${PolicyType}"=="Security Policy" and "${PolicyAction}"=="intercept" and "${ApplicationSearchV}"=="SSL" run keywords sleep ${sleep} ... AND Interceptadd ${Keyring} ${MirrorDecryptedTrafficInfo} ${DecryptionProfile} Run Keyword If "${PolicyType}"=="Proxy Policy" and "${PolicyAction}"=="Deny" run keywords sleep ${sleep} ... AND Proxy-Deny ${ProxyDenyadd} - Run Keyword If "${PolicyType}"=="Proxy Policy" and "${PolicyAction}"=="Redirect" run keywords sleep ${sleep} + Run Keyword If "${PolicyType}"=="Proxy Policy" and "${PolicyAction}"=="Redirect" and "${ApplicationSearch}" == "DoH" run keywords sleep ${sleep} ... AND Deny-Redirect ${DenyRedirectadd} + Run Keyword If "${PolicyType}"=="Proxy Policy" and "${PolicyAction}"=="Redirect" and "${ApplicationSearch}" == "HTTP" run keywords sleep ${sleep} + ... AND ProxyHTTPRedirect ${HTTPRedirectadd} Run Keyword If "${PolicyType}"=="Proxy Policy" and "${PolicyAction}"=="Replace" run keywords sleep ${sleep} ... AND Replace-Action-Parameters-for1 ${ReplaceActionParameters} Run Keyword If "${PolicyType}"=="Proxy Policy" and "${PolicyAction}"=="Hijack" run keywords sleep ${sleep} @@ -497,7 +499,7 @@ Create-name run keyword if "${PolicyType}"=="Security Policy" run keywords sleep ${sleep} ... AND input text xpath=//*[@id="policy_paper_left"]/div[2]/label[contains(text(), "Name")]/following-sibling::div/div/input ${Name} run keyword if "${PolicyType}"=="Proxy Policy" run keywords sleep ${sleep} - ... AND input text id=manipulation_elInput_policyName ${Name} + ... AND input text id=manipulation_elInput_policyName1 ${Name} Create-actions [Arguments] ${PolicyType} ${Action} sleep ${sleep} @@ -606,7 +608,7 @@ ProxyApplicationSearch [Documentation] 调用次关键字前需要添加必填参数: ... ${Action}:填入是action的内容,例如redirect或deny ... 选择search对象 - run keyword if "${Action}"=="redirect" run keywords sleep ${sleep} + run keyword if "${Action}"=="Redirect" run keywords sleep ${sleep} ... AND click element id=interceptionadd_application ... AND sleep ${sleep} ... AND HttpOrDoh ${HttpOrDoh} @@ -616,16 +618,17 @@ HttpOrDoh [Documentation] 调用次关键字前需要添加必填参数: ... ${HttpOrDoh}:填入是Application的内容,例如Doh或HTTP ... 选择search对象 + ${HttpOrDoh} set variable ${HttpOrDoh}[0] 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} + ... 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-SecurityOrProxy - [Arguments] ${PolicyType} ${Application} ${addFilter} + [Arguments] ${PolicyType} ${Application} ${addFilter} ${PolicyAction} [Documentation] 点击Application的加号 ${return} ${Filter} Run Keyword And Ignore Error Get From Dictionary ${addFilter} Filter ${Filter} Run Keyword If "${return}"=="FAIL" or "${Filter}"=="${EMPTY}" set variable null @@ -699,8 +702,8 @@ Create-Filter-SecurityOrProxy run keyword if "${PolicyType}"=="Security Policy" Create-SecurityFilter-judge ${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} - run keyword if "${PolicyType}"=="Proxy Policy" Create-ProxyFilter ${Application} ${Filter} ${Hostname} ${URLname} ${Request Headername} ${Response Headername} ${Request Contentname} - ... ${Response Contentname} ${QNAMEname} ${DohHostname} + run keyword if "${PolicyType}"=="Proxy Policy" and "${PolicyAction}" == "Redirect" Create_Proxy_RedirectFilter ${Application} ${Filter} ${Hostname} ${URLname} ${Request Headername} ${Response Headername} ${Request Contentname} ${Response Contentname} ${QNAMEname} ${DohHostname} + ... ELSE Create-ProxyFilter ${Application} ${Filter} ${Hostname} ${URLname} ${Request Headername} ${Response Headername} ${Request Contentname} ${Response Contentname} ${QNAMEname} ${DohHostname} Create-SecurityFilter-judge [Arguments] ${Application}=null ${Filter}=null ${Hostname}=null ${URLname}=null ${Request Headername}=null ${Response Headername}=null ${Request Contentname}=null @@ -803,6 +806,7 @@ Create-SecurityFilter ... AND click element xpath=//*[@id="condistions_protocol"]/div/div[1]/div/div/div/ul/li[2] ... AND Create-Object-Search ${Toname} ${i} END + Create-ProxyFilter [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 @@ -818,29 +822,60 @@ Create-ProxyFilter 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} + ... AND Create-Object-Proxy-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} + ... AND Create-Object-Proxy-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} + ... AND Create-Object-Proxy-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} + ... AND Create-Object-Proxy-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} + ... AND Create-Object-Proxy-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} + ... AND Create-Object-Proxy-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} + ... AND Create-Object-Proxy-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} + ... AND Create-Object-Proxy-Search ${QNAMEname} ${i} END + +Create_Proxy_RedirectFilter + [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_checkappshow1"][contains(text(), "${i}")] + ... AND Create-Object-Proxy-Search ${Hostname} ${i} + run keyword if "${Application}"=="HTTP" and "${i}"=="URL" run keywords sleep ${sleep} + ... AND click element xpath=//*[@id="interceptionadd_checkappshow0"][contains(text(), "${i}")] + ... AND Create-Object-Proxy-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-Proxy-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-Proxy-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-Proxy-Search ${Request Contentname} ${i} + END + Deny-subaction-1 [Arguments] ${Action} ${subaction} ${Subactionadd} [Documentation] 调用次关键字前需要添加必填参数: @@ -979,19 +1014,19 @@ Deny-Redirect ... ${CNAMEvalue}:根据${QType}填入A的CNAME的域名值或AAAA的CNAME域名值 ... ${CNAMEttl}:根据${QType}填入A的CNAME的ttl值或AAAA的CNAME的ttl值 ... 新建Redirect - ${return} ${QType} Run Keyword And Ignore Error Get From Dictionary ${${DenyRedirectadd}} QType + ${return} ${QType} Run Keyword And Ignore Error Get From Dictionary ${DenyRedirectadd} QType ${QType} Run Keyword If "${return}"=="FAIL" or "${QType}"=="${EMPTY}" set variable null ... ELSE set variable ${QType} - ${return} ${Avalue} Run Keyword And Ignore Error Get From Dictionary ${${DenyRedirectadd}} Avalue + ${return} ${Avalue} Run Keyword And Ignore Error Get From Dictionary ${DenyRedirectadd} Avalue ${Avalue} Run Keyword If "${return}"=="FAIL" or "${Avalue}"=="${EMPTY}" set variable null ... ELSE set variable ${Avalue} - ${return} ${Attl} Run Keyword And Ignore Error Get From Dictionary ${${DenyRedirectadd}} Attl + ${return} ${Attl} Run Keyword And Ignore Error Get From Dictionary ${DenyRedirectadd} Attl ${Attl} Run Keyword If "${return}"=="FAIL" or "${Attl}"=="${EMPTY}" set variable null ... ELSE set variable ${Attl} - ${return} ${CNAMEvalue} Run Keyword And Ignore Error Get From Dictionary ${${DenyRedirectadd}} CNAMEvalue + ${return} ${CNAMEvalue} Run Keyword And Ignore Error Get From Dictionary ${DenyRedirectadd} CNAMEvalue ${CNAMEvalue} Run Keyword If "${return}"=="FAIL" or "${CNAMEvalue}"=="${EMPTY}" set variable null ... ELSE set variable ${CNAMEvalue} - ${return} ${CNAMEttl} Run Keyword And Ignore Error Get From Dictionary ${${DenyRedirectadd}} CNAMEttl + ${return} ${CNAMEttl} Run Keyword And Ignore Error Get From Dictionary ${DenyRedirectadd} CNAMEttl ${CNAMEttl} Run Keyword If "${return}"=="FAIL" or "${CNAMEttl}"=="${EMPTY}" set variable null ... ELSE set variable ${CNAMEttl} run keyword if "${QType}"=="A" run keywords sleep ${sleep} @@ -1017,6 +1052,26 @@ Deny-Redirect ... AND input text id=ttl01 ${CNAMEttl} sleep ${sleep} click element id=interceptionadd_shezhidns + +ProxyHTTPRedirect + [Arguments] ${HTTPRedirectadd} + [Documentation] 调用次关键字前需要添加必填参数: + ... ${Response Code}: 填入响应码302或者301 + ... ${Redirect URL}: 填入重定向的URL地址 + ${return} ${Response Code} Run Keyword And Ignore Error Get From Dictionary ${HTTPRedirectadd} Response Code + ${Response Code} Run Keyword If "${return}"=="FAIL" or "${Response Code}"=="${EMPTY}" set variable null + ... ELSE set variable ${Response Code} + ${return} ${Redirect URL} Run Keyword And Ignore Error Get From Dictionary ${HTTPRedirectadd} Redirect URL + ${Redirect URL} Run Keyword If "${return}"=="FAIL" or "${Redirect URL}"=="${EMPTY}" set variable null + ... ELSE set variable ${Redirect URL} + sleep ${sleep} + click element xpath=//*[@id="policy_paper_left"]/div[12]/div/div/form/div[1]/div[1]/div/div/div/span/span/i + run keyword if "${Response Code}" == "302" or "${Response Code}" == "301" run keywords sleep ${sleep} + ... AND click element //span[.="${Response Code}"] + sleep ${sleep} + input text id=manipulontion_elInput_userRegin1 ${Redirect URL} + sleep ${sleep} + Interceptadd [Arguments] ${Keyring} ${MirrorDecryptedTrafficInfo} ${DecryptionProfile} [Documentation] 引用次关键字,填入必填参数 @@ -1354,6 +1409,23 @@ Create-Object-Search 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 + +Create-Object-Proxy-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 SourceIPCreateOrSearch [Arguments] ${PolicyType} ${CreateOrSearch} ${Add} ${Ip_type} ${Name} ${ObjectName} ${Ipclienttext1} @@ -1656,8 +1728,8 @@ DestinationIPGroupAdd SourceCreate-name [Arguments] ${ObjName} - Wait Until Element Is Enabled id=objectAdd_name ${sleep_Wait} - input text id=objectAdd_name ${ObjName} + Wait Until Element Is Enabled id=objectAdd_name1 ${sleep_Wait} + input text id=objectAdd_name1 ${ObjName} SourceCreate-ok sleep ${sleep} @@ -1783,7 +1855,7 @@ Deny-subaction ... 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] 调用次关键字前需要添加必填参数: @@ -1796,7 +1868,7 @@ Deny-content ... ${TextValue}:填入text输入框内容 ... 添加block数据内容 sleep ${sleep} - run keyword if "${ContentType}"=="File" run keywords sleep ${sleep} + run keyword if "${ContentType}"=="Profile" run keywords sleep ${sleep} ... AND click element id=manipulation_select_blockInfo ... AND sleep ${sleep} ... AND click element id=ResponseContentFile @@ -1804,12 +1876,12 @@ Deny-content ... 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} + 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 click element id=ResponseContentTEXT + ... AND sleep 1 + ... AND input text id=manipulation_elInput_blockselect1 ${TextValue} ... AND sleep ${sleep} @@ -1874,37 +1946,49 @@ Replace-Action-Parameters-for2 ... ${xxxFind}:是Find输入框输入的值 ... ${XXXReplacewith} :是 Replacewith输入框中输入的值 FOR ${j} IN @{ParametersType} - run keyword if "${j}"=="RequestURI" run keywords sleep ${sleep} + run keyword if "${j}"=="HTTP Request-URI" 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 click element //li[.="${j}"] + ... 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 click element //li[.="${j}"] + ... 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} + run keyword if "${j}"=="HTTP Request Body" 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 click element //li[.="${j}"] + ... 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} + run keyword if "${j}"=="HTTP Response Body" 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 click element //li[.="${j}"] + ... 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} + run keyword if "${j}"=="HTTP Request Header" 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 click element //li[.="${j}"] + ... 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} + run keyword if "${j}"=="HTTP Response Header" 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 click element //li[.="${j}"] + ... 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} @@ -1944,11 +2028,11 @@ HijackFile-SearchorCreate 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 input text xpath=/html/body/div[last()]/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 press keys xpath=/html/body/div[last()]/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 click element xpath=/html/body/div[last()]/div[1]/div[1]/ul/div[2]/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 @@ -2008,12 +2092,12 @@ InsertScript-SearchorCreate 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 ${Insertname} + ... AND input text xpath=/html/body/div/div[1]/div[1]/ul/div[1]/div/input ${Insertname} ... 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 press keys xpath=/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]/li[2] + ... 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}