diff --git a/01-TestCase/tsg_adc/multi_step/a_p_Deny_Tests.robot b/01-TestCase/tsg_adc/multi_step/a_p_Deny_Tests.robot new file mode 100644 index 0000000..37a4a3d --- /dev/null +++ b/01-TestCase/tsg_adc/multi_step/a_p_Deny_Tests.robot @@ -0,0 +1,309 @@ +*** Settings *** +Force Tags tsg_adc_wp adc_api proxy_policy +Library OperatingSystem +Resource ../../../02-Keyword/tsg_adc/SystemCommand.robot +Resource ../../../02-Keyword/tsg_bfapi/PolicyObject.robot +Resource ../../../02-Keyword/tsg_bfapi/LogVariable.robot +Resource ../../../02-Keyword/tsg_adc/FileOperation.robot +Resource ../../../02-Keyword/tsg_bfapi/policy_object/Policy.robot + +*** Variables *** +${url} /v1/policy/profile/responsepages + +*** Test Cases *** +Proxy-Policy-deny-00001 + [Tags] fqdn + Comment 创建fqdn + ${objectDict} Create Dictionary objectType=fqdn isValid=${1} addItemList=$newsela.com + ${rescode} ${objectId} AddObject2 ${1} ${objectDict} + Comment 创建拦截策略 + ${policyDict} Create Dictionary policyName=SecurityPolicy-Intercept-deny policyType=tsg_security policyDesc=autotest action=intercept userRegion={"protocol":"SSL","keyring":1,"decryption":1,"decrypt_mirror":{"enable":0,"mirror_profile":null}} filterList=${objectId}|TSG_FIELD_SSL_SNI isValid=${1} appIdObjects=3 + log ${policyDict} + ${rescode} ${policyId1} AddPolicies 1 ${policyDict} v2 + Comment 创建deny策略 + ${policyDict} Create Dictionary policyName=Proxy-Policy-deny-00001 policyType=pxy_manipulation policyDesc=autotest action=deny userRegion={"method":"block","message":"重新开始","code":403,"protocol":"HTTP"} filterList=${objectId}|TSG_FIELD_HTTP_HOST isValid=${1} appIdObjects=2 + log ${policyDict} + ${rescode} ${policyId2} AddPolicies 1 ${policyDict} v2 + insert_policyId_to_file1 deny_objectId ${objectId} + insert_policyId_to_file1 intercept_deny_policyId ${policyId1} + insert_policyId_to_file1 deny_policyId ${policyId2} + +Proxy-Policy-deny-00002 + [Tags] cat + Comment 创建fqdn + ${objectDict} Create Dictionary objectType=fqdn_category isValid=${1} addItemList=*mathoverflow.net + ${rescode} ${objectId} AddObject2 ${1} ${objectDict} + Comment #创建引用文件 + ${response} CreatePolicyFile2 ${url} ${responsePageFiles} 404english.html resPages + ${profiledId} Get From Dictionary ${response} profileId + Comment Comment 创建拦截策略 + ${policyDict} Create Dictionary policyName=SecurityPolicy-Intercept-deny policyType=tsg_security policyDesc=autotest action=intercept userRegion={"protocol":"SSL","keyring":1,"decryption":1,"decrypt_mirror":{"enable":0,"mirror_profile":null}} filterList=${objectId}|TSG_FIELD_SSL_SNI isValid=${1} appIdObjects=3 + log ${policyDict} + ${rescode} ${policyId1} AddPolicies 1 ${policyDict} v2 + Comment 创建deny策略 + ${policyDict} Create Dictionary policyName=Proxy-Policy-deny-00002 policyType=pxy_manipulation policyDesc=autotest action=deny userRegion={"method":"block","html_profile":${profiledId},"code":403,"protocol":"HTTP"} filterList=${objectId}|TSG_FIELD_HTTP_HOST isValid=${1} appIdObjects=2 + log ${policyDict} + ${rescode} ${policyId2} AddPolicies 1 ${policyDict} v2 + insert_policyId_to_file1 deny_profileId ${profiledId} + insert_policyId_to_file1 deny_objectId1 ${objectId} + insert_policyId_to_file1 intercept_deny_policyId1 ${policyId1} + insert_policyId_to_file1 deny_policyId1 ${policyId2} + +Proxy-Policy-deny-00003 + [Tags] url + Comment 创建fqdn + ${objectDict} Create Dictionary objectType=fqdn_category isValid=${1} addItemList=*wmtransfer.com,verifone.com,bcg.com,rolandberger.com + ${rescode} ${objectId} AddObject2 ${1} ${objectDict} + Comment 创建url + ${objectDict} Create Dictionary objectType=url isValid=${1} addItemList=www.wmtransfer*,$ww.verifone.com/ru/ru/o-verifone,*country=RU,capabilities + ${rescode} ${objectId1} AddObject2 ${1} ${objectDict} + Comment #创建引用文件 + ${response} CreatePolicyFile2 ${url} ${responsePageFiles} 404china.html resPages + ${profiledId} Get From Dictionary ${response} profileId + Comment Comment 创建拦截策略 + ${policyDict} Create Dictionary policyName=SecurityPolicy-Intercept-deny policyType=tsg_security policyDesc=autotest action=intercept userRegion={"protocol":"SSL","keyring":1,"decryption":1,"decrypt_mirror":{"enable":0,"mirror_profile":null}} filterList=${objectId}|TSG_FIELD_SSL_SNI isValid=${1} appIdObjects=3 + log ${policyDict} + ${rescode} ${policyId1} AddPolicies 1 ${policyDict} v2 + Comment 创建deny策略 + ${policyDict} Create Dictionary policyName=Proxy-Policy-deny-00003 policyType=pxy_manipulation policyDesc=autotest action=deny userRegion={"method":"block","html_profile":${profiledId},"code":404,"protocol":"HTTP"} filterList=${objectId1}|TSG_FIELD_HTTP_URL isValid=${1} appIdObjects=2 + log ${policyDict} + ${rescode} ${policyId2} AddPolicies 1 ${policyDict} v2 + insert_policyId_to_file1 deny_profileId1 ${profiledId} + insert_policyId_to_file1 deny_objectId2 ${objectId} + insert_policyId_to_file1 deny_objectId3 ${objectId1} + insert_policyId_to_file1 intercept_deny_policyId2 ${policyId1} + insert_policyId_to_file1 deny_policyId2 ${policyId2} + +Proxy-Policy-deny-00004 + [Tags] 请求头 + Comment 创建fqdn + ${objectDict} Create Dictionary objectType=fqdn isValid=${1} addItemList=*nielsen.com + ${rescode} ${objectId} AddObject2 ${1} ${objectDict} + Comment 创建url + ${objectDict} Create Dictionary objectType=url isValid=${1} addItemList=insights + ${rescode} ${objectId1} AddObject2 ${1} ${objectDict} + Comment 创建请求头 + ${objectDict} Create Dictionary objectType=http_signature isValid=${1} addItemList=Mozilla/5.0*|User-Agent + ${rescode} ${objectId2} AddObject2 ${1} ${objectDict} + Comment 创建拦截策略 + ${policyDict} Create Dictionary policyName=SecurityPolicy-Intercept-deny policyType=tsg_security policyDesc=autotest action=intercept userRegion={"protocol":"SSL","keyring":1,"decryption":1,"decrypt_mirror":{"enable":0,"mirror_profile":null}} filterList=${objectId}|TSG_FIELD_SSL_SNI isValid=${1} appIdObjects=3 + log ${policyDict} + ${rescode} ${policyId1} AddPolicies 1 ${policyDict} v2 + Comment 创建deny策略 + ${policyDict} Create Dictionary policyName=Proxy-Policy-deny-00004 policyType=pxy_manipulation policyDesc=autotest action=deny userRegion={"method":"block","message":"qwertyuiop","code":404,"protocol":"HTTP"} filterList=${objectId1}|TSG_FIELD_HTTP_URL,${objectId2}|TSG_FIELD_HTTP_REQ_HDR isValid=${1} appIdObjects=2 + log ${policyDict} + ${rescode} ${policyId2} AddPolicies 1 ${policyDict} v2 + insert_policyId_to_file1 deny_objectId4 ${objectId} + insert_policyId_to_file1 deny_objectId5 ${objectId1} + insert_policyId_to_file1 deny_objectId6 ${objectId2} + insert_policyId_to_file1 intercept_deny_policyId3 ${policyId1} + insert_policyId_to_file1 deny_policyId3 ${policyId2} + +Proxy-Policy-deny-00005 + [Tags] 请求头 + Comment 创建fqdn + ${objectDict} Create Dictionary objectType=fqdn isValid=${1} addItemList=$www.thecolor.com + ${rescode} ${objectId} AddObject2 ${1} ${objectDict} + Comment 创建url + ${objectDict} Create Dictionary objectType=url isValid=${1} addItemList=popularcoloringpages + ${rescode} ${objectId1} AddObject2 ${1} ${objectDict} + Comment 创建请求头 + ${objectDict} Create Dictionary objectType=http_signature isValid=${1} addItemList=$Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML like Gecko) Chrome/31.0.1650.63 Safari/537.36|User-Agent + ${rescode} ${objectId2} AddObject2 ${1} ${objectDict} + Comment 创建拦截策略 + ${policyDict} Create Dictionary policyName=SecurityPolicy-Intercept-deny policyType=tsg_security policyDesc=autotest action=intercept userRegion={"protocol":"SSL","keyring":1,"decryption":1,"decrypt_mirror":{"enable":0,"mirror_profile":null}} filterList=${objectId}|TSG_FIELD_SSL_SNI isValid=${1} appIdObjects=3 + log ${policyDict} + ${rescode} ${policyId1} AddPolicies 1 ${policyDict} v2 + Comment 创建deny策略 + ${policyDict} Create Dictionary policyName=Proxy-Policy-deny-00005 policyType=pxy_manipulation policyDesc=autotest action=deny userRegion={"method":"block","message":" онлайн фильмы","code":451,"protocol":"HTTP"} filterList=${objectId1}|TSG_FIELD_HTTP_URL,${objectId2}|TSG_FIELD_HTTP_REQ_HDR isValid=${1} appIdObjects=2 + log ${policyDict} + ${rescode} ${policyId2} AddPolicies 1 ${policyDict} v2 + insert_policyId_to_file1 deny_objectId7 ${objectId} + insert_policyId_to_file1 deny_objectId8 ${objectId1} + insert_policyId_to_file1 deny_objectId9 ${objectId2} + insert_policyId_to_file1 intercept_deny_policyId4 ${policyId1} + insert_policyId_to_file1 deny_policyId4 ${policyId2} + +Proxy-Policy-deny-00006 + [Tags] 请求头 + Comment 创建fqdn + ${objectDict} Create Dictionary objectType=fqdn isValid=${1} addItemList=$sciencebob.com + ${rescode} ${objectId} AddObject2 ${1} ${objectDict} + Comment 创建url + ${objectDict} Create Dictionary objectType=url isValid=${1} addItemList=experiments + ${rescode} ${objectId1} AddObject2 ${1} ${objectDict} + Comment 创建请求头 + ${objectDict} Create Dictionary objectType=http_signature isValid=${1} addItemList=AppleWebKit|User-Agent + ${rescode} ${objectId2} AddObject2 ${1} ${objectDict} + Comment 创建拦截策略 + ${policyDict} Create Dictionary policyName=SecurityPolicy-Intercept-deny policyType=tsg_security policyDesc=autotest action=intercept userRegion={"protocol":"SSL","keyring":1,"decryption":1,"decrypt_mirror":{"enable":0,"mirror_profile":null}} filterList=${objectId}|TSG_FIELD_SSL_SNI isValid=${1} appIdObjects=3 + log ${policyDict} + ${rescode} ${policyId1} AddPolicies 1 ${policyDict} v2 + Comment 创建deny策略 + ${policyDict} Create Dictionary policyName=Proxy-Policy-deny-00006 policyType=pxy_manipulation policyDesc=autotest action=deny userRegion={"method":"block","message":"明天大涨","code":404,"protocol":"HTTP"} filterList=${objectId1}|TSG_FIELD_HTTP_URL,${objectId2}|TSG_FIELD_HTTP_REQ_HDR isValid=${1} appIdObjects=2 + log ${policyDict} + ${rescode} ${policyId2} AddPolicies 1 ${policyDict} v2 + insert_policyId_to_file1 deny_objectId10 ${objectId} + insert_policyId_to_file1 deny_objectId11 ${objectId1} + insert_policyId_to_file1 deny_objectId12 ${objectId2} + insert_policyId_to_file1 intercept_deny_policyId5 ${policyId1} + insert_policyId_to_file1 deny_policyId5 ${policyId2} + +Proxy-Policy-deny-00007 + [Tags] 请求头 + Comment 创建fqdn + ${objectDict} Create Dictionary objectType=fqdn isValid=${1} addItemList=$www.europages.com.ru + ${rescode} ${objectId} AddObject2 ${1} ${objectDict} + Comment 创建url + ${objectDict} Create Dictionary objectType=url isValid=${1} addItemList=ezhegodnik + ${rescode} ${objectId1} AddObject2 ${1} ${objectDict} + Comment 创建请求头 + ${objectDict} Create Dictionary objectType=http_signature isValid=${1} addItemList=*Safari/537.36|User-Agent + ${rescode} ${objectId2} AddObject2 ${1} ${objectDict} + Comment 创建拦截策略 + ${policyDict} Create Dictionary policyName=SecurityPolicy-Intercept-deny policyType=tsg_security policyDesc=autotest action=intercept userRegion={"protocol":"SSL","keyring":1,"decryption":1,"decrypt_mirror":{"enable":0,"mirror_profile":null}} filterList=${objectId}|TSG_FIELD_SSL_SNI isValid=${1} appIdObjects=3 + log ${policyDict} + ${rescode} ${policyId1} AddPolicies 1 ${policyDict} v2 + Comment 创建deny策略 + ${policyDict} Create Dictionary policyName=Proxy-Policy-deny-00007 policyType=pxy_manipulation policyDesc=autotest action=deny userRegion={"method":"block","message":"今天中奖","code":403,"protocol":"HTTP"} filterList=${objectId1}|TSG_FIELD_HTTP_URL,${objectId2}|TSG_FIELD_HTTP_REQ_HDR isValid=${1} appIdObjects=2 + log ${policyDict} + ${rescode} ${policyId2} AddPolicies 1 ${policyDict} v2 + insert_policyId_to_file1 deny_objectId13 ${objectId} + insert_policyId_to_file1 deny_objectId14 ${objectId1} + insert_policyId_to_file1 deny_objectId15 ${objectId2} + insert_policyId_to_file1 intercept_deny_policyId6 ${policyId1} + insert_policyId_to_file1 deny_policyId6 ${policyId2} + +Proxy-Policy-deny-00008 + [Tags] 应答头 + Comment 创建fqdn + ${objectDict} Create Dictionary objectType=fqdn isValid=${1} addItemList=*6renyou.com + ${rescode} ${objectId} AddObject2 ${1} ${objectDict} + Comment 创建url + ${objectDict} Create Dictionary objectType=url isValid=${1} addItemList=user_comment + ${rescode} ${objectId1} AddObject2 ${1} ${objectDict} + Comment 创建请求头 + ${objectDict} Create Dictionary objectType=http_signature isValid=${1} addItemList=*utf-8|Content-Type + ${rescode} ${objectId2} AddObject2 ${1} ${objectDict} + Comment #创建引用文件 + ${response} CreatePolicyFile2 ${url} ${responsePageFiles} 404china.html resPages + ${profiledId} Get From Dictionary ${response} profileId + Comment Comment 创建拦截策略 + ${policyDict} Create Dictionary policyName=SecurityPolicy-Intercept-deny policyType=tsg_security policyDesc=autotest action=intercept userRegion={"protocol":"HTTP"} filterList=${objectId}|TSG_FIELD_HTTP_HOST isValid=${1} appIdObjects=2 + log ${policyDict} + ${rescode} ${policyId1} AddPolicies 1 ${policyDict} v2 + Comment 创建deny策略 + ${policyDict} Create Dictionary policyName=Proxy-Policy-deny-00008 policyType=pxy_manipulation policyDesc=autotest action=deny userRegion={"method":"block","html_profile":${profiledId},"code":451,"protocol":"HTTP"} filterList=${objectId1}|TSG_FIELD_HTTP_URL,${objectId2}|TSG_FIELD_HTTP_RES_HDR isValid=${1} appIdObjects=2 + log ${policyDict} + ${rescode} ${policyId2} AddPolicies 1 ${policyDict} v2 + insert_policyId_to_file1 deny_profileId2 ${profiledId} + insert_policyId_to_file1 deny_objectId16 ${objectId} + insert_policyId_to_file1 deny_objectId17 ${objectId1} + insert_policyId_to_file1 deny_objectId18 ${objectId2} + insert_policyId_to_file1 intercept_deny_policyId7 ${policyId1} + insert_policyId_to_file1 deny_policyId7 ${policyId2} + +Proxy-Policy-deny-00009 + [Tags] 应答头 + Comment 创建fqdn + ${objectDict} Create Dictionary objectType=fqdn isValid=${1} addItemList=*ljale.com + ${rescode} ${objectId} AddObject2 ${1} ${objectDict} + Comment 创建url + ${objectDict} Create Dictionary objectType=url isValid=${1} addItemList=webdir.html + ${rescode} ${objectId1} AddObject2 ${1} ${objectDict} + Comment 创建请求头 + ${objectDict} Create Dictionary objectType=http_signature isValid=${1} addItemList=$text/html|Content-Type + ${rescode} ${objectId2} AddObject2 ${1} ${objectDict} + Comment #创建引用文件 + ${response} CreatePolicyFile2 ${url} ${responsePageFiles} 404china.html resPages + ${profiledId} Get From Dictionary ${response} profileId + Comment Comment 创建拦截策略 + ${policyDict} Create Dictionary policyName=SecurityPolicy-Intercept-deny policyType=tsg_security policyDesc=autotest action=intercept userRegion={"protocol":"HTTP"} filterList=${objectId}|TSG_FIELD_HTTP_HOST isValid=${1} appIdObjects=2 + log ${policyDict} + ${rescode} ${policyId1} AddPolicies 1 ${policyDict} v2 + Comment 创建deny策略 + ${policyDict} Create Dictionary policyName=Proxy-Policy-deny-00009 policyType=pxy_manipulation policyDesc=autotest action=deny userRegion={"method":"block","html_profile":${profiledId},"code":451,"protocol":"HTTP"} filterList=${objectId1}|TSG_FIELD_HTTP_URL,${objectId2}|TSG_FIELD_HTTP_RES_HDR isValid=${1} appIdObjects=2 + log ${policyDict} + ${rescode} ${policyId2} AddPolicies 1 ${policyDict} v2 + insert_policyId_to_file1 deny_profileId3 ${profiledId} + insert_policyId_to_file1 deny_objectId19 ${objectId} + insert_policyId_to_file1 deny_objectId20 ${objectId1} + insert_policyId_to_file1 deny_objectId21 ${objectId2} + insert_policyId_to_file1 intercept_deny_policyId8 ${policyId1} + insert_policyId_to_file1 deny_policyId8 ${policyId2} + +Proxy-Policy-deny-00010 + [Tags] 应答头 + Comment 创建fqdn + ${objectDict} Create Dictionary objectType=fqdn isValid=${1} addItemList=*duckduckmoose.com + ${rescode} ${objectId} AddObject2 ${1} ${objectDict} + Comment 创建url + ${objectDict} Create Dictionary objectType=url isValid=${1} addItemList=learn + ${rescode} ${objectId1} AddObject2 ${1} ${objectDict} + Comment 创建请求头 + ${objectDict} Create Dictionary objectType=http_signature isValid=${1} addItemList=text/html|Content-Type + ${rescode} ${objectId2} AddObject2 ${1} ${objectDict} + Comment #创建引用文件 + ${response} CreatePolicyFile2 ${url} ${responsePageFiles} 404english.html resPages + ${profiledId} Get From Dictionary ${response} profileId + Comment Comment 创建拦截策略 + ${policyDict} Create Dictionary policyName=SecurityPolicy-Intercept-deny policyType=tsg_security policyDesc=autotest action=intercept userRegion={"protocol":"HTTP"} filterList=${objectId}|TSG_FIELD_HTTP_HOST isValid=${1} appIdObjects=2 + log ${policyDict} + ${rescode} ${policyId1} AddPolicies 1 ${policyDict} v2 + Comment 创建deny策略 + ${policyDict} Create Dictionary policyName=Proxy-Policy-deny-00009 policyType=pxy_manipulation policyDesc=autotest action=deny userRegion={"method":"block","html_profile":${profiledId},"code":451,"protocol":"HTTP"} filterList=${objectId1}|TSG_FIELD_HTTP_URL,${objectId2}|TSG_FIELD_HTTP_RES_HDR isValid=${1} appIdObjects=2 + log ${policyDict} + ${rescode} ${policyId2} AddPolicies 1 ${policyDict} v2 + insert_policyId_to_file1 deny_profileId5 ${profiledId} + insert_policyId_to_file1 deny_objectId22 ${objectId} + insert_policyId_to_file1 deny_objectId23 ${objectId1} + insert_policyId_to_file1 deny_objectId24 ${objectId2} + insert_policyId_to_file1 intercept_deny_policyId9 ${policyId1} + insert_policyId_to_file1 deny_policyId9 ${policyId2} + +Proxy-Policy-deny-00011 + [Tags] 应答头 + Comment 创建fqdn + ${objectDict} Create Dictionary objectType=fqdn isValid=${1} addItemList=*tutcandy.com + ${rescode} ${objectId} AddObject2 ${1} ${objectDict} + Comment 创建url + ${objectDict} Create Dictionary objectType=url isValid=${1} addItemList=sketch-to + ${rescode} ${objectId1} AddObject2 ${1} ${objectDict} + Comment 创建请求头 + ${objectDict} Create Dictionary objectType=http_signature isValid=${1} addItemList=text*|Content-Type + ${rescode} ${objectId2} AddObject2 ${1} ${objectDict} + Comment #创建引用文件 + ${response} CreatePolicyFile2 ${url} ${responsePageFiles} 404english.html resPages + ${profiledId} Get From Dictionary ${response} profileId + Comment Comment 创建拦截策略 + ${policyDict} Create Dictionary policyName=SecurityPolicy-Intercept-deny policyType=tsg_security policyDesc=autotest action=intercept userRegion={"protocol":"HTTP"} filterList=${objectId}|TSG_FIELD_HTTP_HOST isValid=${1} appIdObjects=2 + log ${policyDict} + ${rescode} ${policyId1} AddPolicies 1 ${policyDict} v2 + Comment 创建deny策略 + ${policyDict} Create Dictionary policyName=Proxy-Policy-deny-00009 policyType=pxy_manipulation policyDesc=autotest action=deny userRegion={"method":"block","html_profile":${profiledId},"code":451,"protocol":"HTTP"} filterList=${objectId1}|TSG_FIELD_HTTP_URL,${objectId2}|TSG_FIELD_HTTP_RES_HDR isValid=${1} appIdObjects=2 + log ${policyDict} + ${rescode} ${policyId2} AddPolicies 1 ${policyDict} v2 + insert_policyId_to_file1 deny_profileId6 ${profiledId} + insert_policyId_to_file1 deny_objectId25 ${objectId} + insert_policyId_to_file1 deny_objectId26 ${objectId1} + insert_policyId_to_file1 deny_objectId27 ${objectId2} + insert_policyId_to_file1 intercept_deny_policyId10 ${policyId1} + insert_policyId_to_file1 deny_policyId10 ${policyId2} + +Proxy-Policy-deny-00012 + [Tags] cookie + +Proxy-Policy-deny-00013 + [Tags] set-cookie + +Proxy-Policy-deny-00014 + [Tags] 请求体 + +Proxy-Policy-deny-00015 + [Tags] 应答体 + +Proxy-Policy-deny-00016 + [Tags] 最大组合1 + +Proxy-Policy-deny-00017 + [Tags] 最大组合2 diff --git a/01-TestCase/tsg_bfapi/policy_object/PolicyObjectTests.robot b/01-TestCase/tsg_bfapi/policy_object/PolicyObjectTests.robot index 8c22e40..276ca79 100644 --- a/01-TestCase/tsg_bfapi/policy_object/PolicyObjectTests.robot +++ b/01-TestCase/tsg_bfapi/policy_object/PolicyObjectTests.robot @@ -438,9 +438,11 @@ Policy-Export-v1-00019 Policy-Verify-v1-00020 ${objectIds} Set Variable ${EMPTY} Comment 创建对象 - ${ipValue} Create Dictionary clientIp=192.168.41.67 clientPort=${1} serverIp=192.168.41.67 serverPort=${1} + ${ipValue} Create Dictionary ip=192.168.41.67 port=${1} ... addrType=${4} protocol=${6} - ${ipObj} Create Dictionary attributeType=ip tableName=TSG_OBJ_IP_ADDR protocol=HTTP attributeName=ip + ${ipObj} Create Dictionary attributeType=ip tableName=TSG_OBJ_IP_ADDR protocol=HTTP attributeName=source + ... attributeValue=${ipValue} + ${ipObj1} Create Dictionary attributeType=ip tableName=TSG_OBJ_IP_ADDR protocol=HTTP attributeName=destination ... attributeValue=${ipValue} ${stringValue} Create Dictionary string=*baidu.com ${stringObj} Create Dictionary attributeType=string tableName=TSG_OBJ_URL protocol=HTTP attributeName=url @@ -448,36 +450,40 @@ Policy-Verify-v1-00020 ${appIdValue} Create Dictionary string=http. ${appIdObj} Create Dictionary attributeType=string protocol=HTTP attributeName=app_id ... attributeValue=${appIdValue} - ${attributes} Create List ${ipObj} ${stringObj} ${appIdObj} + ${attributes} Create List ${ipObj} ${stringObj} ${appIdObj} ${ipObj1} ${verifySession} Create Dictionary attributes=${attributes} ${verifyList} Create Dictionary policyType=tsg_security verifySession=${verifySession} ${rescode} ${resData} VerifyPolicies ${verifyList} Policy-Verify-v1-00021 ${objectIds} Set Variable ${EMPTY} Comment 创建对象 - ${ipObj} Create Dictionary attributeType=ip tableName=TSG_OBJ_IP_ADDR protocol=HTTP attributeName=ip - ... attributeValue={"clientIp":"192.168.41.67","clientPort":1,"serverIp":"192.168.41.67","serverPort":1,"addrType":4,"protocol":6} + ${ipObj} Create Dictionary attributeType=ip tableName=TSG_OBJ_IP_ADDR protocol=HTTP attributeName=source + ... attributeValue={"ip":"192.168.41.67","port":1,"addrType":4,"protocol":6} + ${ipObj1} Create Dictionary attributeType=ip tableName=TSG_OBJ_IP_ADDR protocol=HTTP attributeName=destination + ... attributeValue={"ip":"192.168.41.67","port":1,"addrType":4,"protocol":6} ${stringValue} Create Dictionary string=*baidu.com ${stringObj} Create Dictionary attributeType=string tableName=TSG_OBJ_URL protocol=HTTP attributeName=url ... attributeValue=${stringValue} ${appIdValue} Create Dictionary string=http. ${appIdObj} Create Dictionary attributeType=string protocol=HTTP attributeName=app_id ... attributeValue=${appIdValue} - ${attributes} Create List ${ipObj} ${stringObj} ${appIdObj} + ${attributes} Create List ${ipObj} ${stringObj} ${appIdObj} ${ipObj1} ${verifySession} Create Dictionary attributes=${attributes} ${verifyList} Create Dictionary policyType=tsg_security verifySession=${verifySession} ${rescode} ${resData} VerifyPolicies ${verifyList} Policy-Verify-v1-00022 ${objectIds} Set Variable ${EMPTY} Comment 创建对象 - ${ipObj} Create Dictionary attributeType=ip tableName=TSG_OBJ_IP_ADDR protocol=HTTP attributeName=ip - ... attributeValue={"clientIp":"192.168.41.67","clientPort":1,"serverIp":"192.168.41.67","serverPort":1,"addrType":4,"protocol":6} + ${ipObj} Create Dictionary attributeType=ip tableName=TSG_OBJ_IP_ADDR protocol=HTTP attributeName=destination + ... attributeValue={"ip":"192.168.41.67","port":1,"addrType":4,"protocol":6} + ${ipObj1} Create Dictionary attributeType=ip tableName=TSG_OBJ_IP_ADDR protocol=HTTP attributeName=source + ... attributeValue={"ip":"192.168.41.67","port":1,"addrType":4,"protocol":6} ${stringObj} Create Dictionary attributeType=string tableName=TSG_OBJ_URL protocol=HTTP attributeName=url ... attributeValue={'string':'*baidu.com'} ${appIdValue} Create Dictionary string=http. ${appIdObj} Create Dictionary attributeType=string protocol=HTTP attributeName=app_id ... attributeValue=${appIdValue} - ${attributes} Create List ${ipObj} ${stringObj} ${appIdObj} + ${attributes} Create List ${ipObj} ${stringObj} ${appIdObj} ${ipObj1} ${verifySession} Create Dictionary attributes=${attributes} ${verifyList} Create Dictionary policyType=tsg_security verifySession=${verifySession} ${rescode} ${resData} VerifyPolicies ${verifyList} @@ -485,8 +491,8 @@ Policy-Verify-v1-00022 Policy-Verify-v1-00023 ${objectIds} Set Variable ${EMPTY} Comment 创建对象 - ${ipObj} Create Dictionary attributeType=ip tableName=TSG_OBJ_IP_ADDR protocol=HTTP attributeName=ip - ... attributeValue=192.168.41.67|1|192.168.41.67|1|4|6 + ${ipObj} Create Dictionary attributeType=ip tableName=TSG_OBJ_IP_ADDR protocol=HTTP attributeName=source + ... attributeValue=192.168.41.67|1|4|6 ${stringObj} Create Dictionary attributeType=string tableName=TSG_OBJ_URL protocol=HTTP attributeName=url ... attributeValue=*baidu.com ${appIdObj} Create Dictionary attributeType=string protocol=HTTP attributeName=app_id diff --git a/01-TestCase/tsg_ui/ui_settings/IP_Libraries_Case.robot b/01-TestCase/tsg_ui/ui_settings/IP_Libraries_Case.robot index b6dfcc2..3e8e2bf 100644 --- a/01-TestCase/tsg_ui/ui_settings/IP_Libraries_Case.robot +++ b/01-TestCase/tsg_ui/ui_settings/IP_Libraries_Case.robot @@ -10,6 +10,203 @@ IP_Libraries_Create_Country-001 #新建国家 Create_Ip_Libraries Country Africa 115 L ${iplist} j=2 Country=L Longitude=1 Latitude=2 #删除 - Delete_IP_Libraries + Delete_IP_Libraries 115 - \ No newline at end of file +IP_Libraries_Create_Country-002 + #新建ip归属地-国家(输入框最小值) + #ip段 + ${iplist} create list 1.1.1.1-2.2.2.2 + #新建国家 + Create_Ip_Libraries Country Africa 1 1 ${iplist} Country=1 + #删除 + Delete_IP_Libraries 1 + +IP_Libraries_Create_Country-003 + #新建ip归属地-国家 + #ip段 + ${iplist} create list 1.1.1.1-2.2.2.2 + #新建国家 + Create_Ip_Libraries Country Africa 112 lyf ${iplist} Country=lyf Longitude=1.222222 Latitude=1.222222 + #删除 + Delete_IP_Libraries 112 + +IP_Libraries_Create_Country-004 + #新建ip归属地-国家,经纬度输入负数 + #ip段 + ${iplist} create list 1.1.1.1-2.2.2.2 + #新建国家 + Create_Ip_Libraries Country Africa 113 lyf ${iplist} Country=lyf Longitude=-1 Latitude=-1 + #删除 + Delete_IP_Libraries 113 + +IP_Libraries_Create_Country-005 + #新建ip归属地-国家(输入框最大值) + #ip段 + ${iplist} create list 1.1.1.1-2.2.2.2 + #新建国家 + Create_Ip_Libraries Country Africa 1111111112 qqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa ${iplist} Country=qqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa Longitude=180 Latitude=90 + #删除 + Delete_IP_Libraries 1111111112 + +IP_Libraries_Create_Country-006 + #新建ip归属地-国家(输入多个ip组合) + #ip段 + ${iplist} create list 1.1.1.1-2.2.2.2 0.0.0.0-255.255.255.255 ::-FFFF:FFFF:FFFF:FFFF:FFFF:FFFF:FFFF:FFFF 1234:3456::AAAA-AAAA:BBBB::FFFF + #新建国家 + Create_Ip_Libraries Country Africa 116 lyf ${iplist} j=4 Country=lyf + #删除 + Delete_IP_Libraries 116 + +IP_Libraries_Create_Country-007 + #新建ip归属地-城市(国家选择内置国家) + #ip段 + ${iplist} create list 1.1.1.1-2.2.2.2 + #新建国家 + Create_Ip_Libraries Country Africa 126 Garbahaarrey ${iplist} Country=Somalia + #删除 + Delete_IP_Libraries 126 + +IP_Libraries_Create_Country-008 + #新建ip归属地-城市(国家选择非内置国家) + #ip段 + ${iplist} create list 1.1.1.1-2.2.2.2 + #新建国家 + Create_Ip_Libraries City 1 228 1 ${iplist} + #删除 + Delete_IP_Libraries 228 + +IP_Libraries_Create_Country-009 + #修改ip归属地城市 + #ip段 + ${iplist} create list 1.1.1.1-2.2.2.2 + #新建国家 + Create_Ip_Libraries City 1 268 1 ${iplist} + Edit_Ip_Libraries 268 Longitude=-1 Latitude=-1 + #删除 + Delete_IP_Libraries 268 + +IP_Libraries_Create_Country-010 + #使用Geo Name为搜索条件查找ip归属地信息 + ${iplist} create list 1.1.1.1-2.2.2.2 + #新建国家 + Create_Ip_Libraries City 1 181 1 ${iplist} + Switch_GeoName 181 + Delete_IP_Libraries 181 + +IP_Libraries_Create_Country-011 + #使用Country为搜索条件查找ip归属地信息 + ${iplist} create list 1.1.1.1-2.2.2.2 + #新建国家 + Create_Ip_Libraries City 1 284 1 ${iplist} + Switch_Country 1 + Delete_IP_Libraries 284 + +IP_Libraries_Create_Country-012 + #使用City为搜索条件查找ip归属地信息 + ${iplist} create list 1.1.1.1-2.2.2.2 + #新建国家 + Create_Ip_Libraries City 1 286 1 ${iplist} + Switch_City 1 + Delete_IP_Libraries 286 + +IP_Libraries_Create_Country-013 + #删除非内置的归属地信息列表 + #ip段 + ${iplist} create list 1.1.1.1-2.2.2.2 + #新建国家 + Create_Ip_Libraries City 1 158 1 ${iplist} + #删除 + Delete_IP_Libraries 158 + +IP_Libraries_Create_Country-014 + #新建国家或城市,添加两个以上的iprange + #ip段 + ${iplist} create list 1.1.1.1-2.2.2.2 1.2.2.2-3.2.2.2 10.10.10.10-20.20.20.20 15.15.15.15-25.25.25.25 13.13.13.13-26.26.26.26 + #新建国家 + Create_Ip_Libraries City Algeria 127 1 ${iplist} j=5 Longitude=-1 Latitude=12.13 + ALL + +IP_Libraries_Create_Country-015 + #翻页功能以及每页的归属地条数 + Pages + Ui-Pages 5 + +IP_Libraries_Create_Country-016 + #1、ip归属地新建国家或城市,经纬度输入负数和浮点数、2、ip归属地修改城市,经纬度输入负数和浮点数、 + #ip段 + ${iplist} create list 1.1.1.1-2.2.2.2 + #新建国家 + Create_Ip_Libraries City Algeria 117 1 ${iplist} Longitude=-1 Latitude=12.13 + Edit_Ip_Libraries 117 Longitude=-2 Latitude=12.13 + Delete_IP_Libraries 117 + +IP_Libraries_Create_Country-017 + #p归属地新建国家或者城市,Iprange中搜索框功能 + #ip段 + ${iplist} create list 1.1.1.1-2.2.2.2 1.2.2.2-3.2.2.2 10.10.10.10-20.20.20.20 15.15.15.15-25.25.25.25 13.13.13.13-26.26.26.26 + #新建国家 + Create_Ip_Libraries City Algeria 129 1 ${iplist} j=5 Longitude=-1 Latitude=12.13 + Delete_IP_Libraries 129 + +IP_Libraries_Create_Country-018 + #新建国家Country输入中文 + ${iplist} create list 1.1.1.1-2.2.2.2 + #新建国家 + Create_Ip_Libraries Country Africa 185 中文 ${iplist} Country=中文 Longitude=-1 Latitude=-1 + Delete_IP_Libraries 185 + +IP_Libraries_Create_Country-019 + #新建国家Country输入英文 + ${iplist} create list 1.1.1.1-2.2.2.2 + #新建国家 + Create_Ip_Libraries Country Africa 185 english ${iplist} Country=english Longitude=-1 Latitude=-1 + Delete_IP_Libraries 185 + +IP_Libraries_Create_Country-020 + #新建国家Country输入俄文 + ${iplist} create list 1.1.1.1-2.2.2.2 + #新建国家 + Create_Ip_Libraries Country Africa 185 упражнение ${iplist} Country=упражнение Longitude=-1 Latitude=-1 + Delete_IP_Libraries 185 + +IP_Libraries_Create_Country-021 + #新建国家Country输入特殊字符 + ${iplist} create list 1.1.1.1-2.2.2.2 + #新建国家 + Create_Ip_Libraries Country Africa 185 @^& ${iplist} Country=@^& Longitude=-1 Latitude=-1 + Delete_IP_Libraries 185 + +IP_Libraries_Create_Country-022 + #修改国家Country输入中文 + #ip段 + ${iplist} create list 1.1.1.1-2.2.2.2 + #新建国家 + Create_Ip_Libraries Country Africa 186 1 ${iplist} Country=中文 Longitude=-1 Latitude=12.13 + Edit_Ip_Libraries 186 City=中文 + Delete_IP_Libraries 186 + +IP_Libraries_Create_Country-023 + #修改国家Country输入英文 + #ip段 + ${iplist} create list 1.1.1.1-2.2.2.2 + #新建国家 + Create_Ip_Libraries Country Africa 187 1 ${iplist} Country=english Longitude=-1 Latitude=12.13 + Edit_Ip_Libraries 187 City=english + Delete_IP_Libraries 187 + +IP_Libraries_Create_Country-024 + #修改国家Country输入俄文 + #ip段 + ${iplist} create list 1.1.1.1-2.2.2.2 + #新建国家 + Create_Ip_Libraries Country Africa 188 1 ${iplist} Country=упражнение Longitude=-1 Latitude=12.13 + Edit_Ip_Libraries 188 City=упражнение + Delete_IP_Libraries 188 +IP_Libraries_Create_Country-025 + #修改国家Country输入特殊字符 + #ip段 + ${iplist} create list 1.1.1.1-2.2.2.2 + #新建国家 + Create_Ip_Libraries Country Africa 189 1 ${iplist} Country=@^& Longitude=-1 Latitude=12.13 + Edit_Ip_Libraries 189 City=@^& + Delete_IP_Libraries 189 \ No newline at end of file diff --git a/02-Keyword/tsg_bfapi/policy_object/Policy.robot b/02-Keyword/tsg_bfapi/policy_object/Policy.robot index 7b582f5..e1bcc8b 100644 --- a/02-Keyword/tsg_bfapi/policy_object/Policy.robot +++ b/02-Keyword/tsg_bfapi/policy_object/Policy.robot @@ -161,7 +161,7 @@ VerifyPolicies ... atrributeValue字段可为三种格式 ... 1:dict ... 2:json - ... 3.字符串,ip的value对应格式为clientIp|clientPort|serverIp|serverPort|addrType|protocol,注意addrType,protocol为数字 + ... 3.字符串,ip的value对应格式为ip|port|addrType|protocol,注意addrType,protocol为数字 ... signature 的value对应格式为district|string ... string的格式就是string ... 以上三种方式可以混合搭配使用 diff --git a/02-Keyword/tsg_bfapi/policy_object/ProcessPolicyBody.robot b/02-Keyword/tsg_bfapi/policy_object/ProcessPolicyBody.robot index 89b031d..c9a3553 100644 --- a/02-Keyword/tsg_bfapi/policy_object/ProcessPolicyBody.robot +++ b/02-Keyword/tsg_bfapi/policy_object/ProcessPolicyBody.robot @@ -390,7 +390,7 @@ VerifyPolicyObj [Arguments] ${verifyObj} Log To Console Call VerifyPolicyObj ${emptyList} Create List - ${return} ${policyType} Run Keyword And Ignore Error Get From Dictionary ${verifyObj} policyType + ${return} ${policyType} Run Keyword And Ignore Error Set Variable ${verifyObj['policyType']} #Should Not Be Empty ${policyType} ${verifySession} Get From Dictionary ${verifyObj} verifySession Should Not Be Empty ${verifySession} @@ -398,10 +398,10 @@ VerifyPolicyObj Should Not Be Empty ${attributes} FOR ${attribute} IN @{attributes} ${attributeType} Get From Dictionary ${attribute} attributeType - ${return} ${tableName} Run Keyword And Ignore Error Get From Dictionary ${attribute} tableName - ${return} ${protocol} Run Keyword And Ignore Error Get From Dictionary ${attribute} protocol - ${attributeName} Get From Dictionary ${attribute} attributeName - ${attributeValue} Get From Dictionary ${attribute} attributeValue + ${return} ${tableName} Run Keyword And Ignore Error Set Variable ${attribute['tableName']} + ${return} ${protocol} Run Keyword And Ignore Error Set Variable ${attribute['protocol']} + ${attributeName} Get From Dictionary ${attribute} attributeName + ${attributeValue} Get From Dictionary ${attribute} attributeValue #将json转换为dict ${attributeValue} Convert To String ${attributeValue} ${start} Get Regexp Matches ${attributeValue} ^{\" @@ -427,34 +427,32 @@ ManageIpAttributeValue [Arguments] ${attributeValue} ${attributeName} ${type} Run Keyword And Return If "${type}"=="str" ExtractIpAttributeValue ${attributeValue} ${dict} Create Dictionary - ${return} ${clientIp} Run Keyword And Ignore Error Get From Dictionary ${attributeValue} clientIp - Run Keyword If "${clientIp}"=="${EMPTY}" and "${attributeName}"=="src_ip" Should Not Be Empty ${clientIp} - Set To Dictionary ${dict} clientIp=${clientIp} - ${return} ${clientPort} Run Keyword And Ignore Error Get From Dictionary ${attributeValue} clientPort - Run Keyword If "${clientPort}"=="${EMPTY}" and "${attributeName}"=="src_ip" Should Not Be Empty ${clientPort} - Set To Dictionary ${dict} clientPort=${clientPort} - ${return} ${serverIp} Run Keyword And Ignore Error Get From Dictionary ${attributeValue} serverIp - Run Keyword If "${serverIp}"=="${EMPTY}" and "${attributeName}"=="dest_ip" Should Not Be Empty ${serverIp} - Set To Dictionary ${dict} serverIp=${serverIp} - ${return} ${serverPort} Run Keyword And Ignore Error Get From Dictionary ${attributeValue} serverPort - Run Keyword If "${serverPort}"=="${EMPTY}" and "${attributeName}"=="dest_ip" Should Not Be Empty ${serverPort} - Set To Dictionary ${dict} serverPort=${serverPort} - ${return} ${addrType} Run Keyword And Ignore Error Get From Dictionary ${attributeValue} addrType - Should Be Equal As Strings ${return} PASS + ${return} ${ip} Run Keyword And Ignore Error Set Variable ${attributeValue['ip']} + Run Keyword If "${ip}"=="${EMPTY}" and "${attributeName}"=="source" Should Not Be Empty ${ip} + Run Keyword If "${ip}"=="${EMPTY}" and "${attributeName}"=="destination" Should Not Be Empty ${ip} + Set To Dictionary ${dict} ip=${ip} + ${return} ${port} Run Keyword And Ignore Error Set Variable ${attributeValue['port']} + Run Keyword If "${port}"=="${EMPTY}" and "${attributeName}"=="source" Should Not Be Empty ${port} + Run Keyword If "${port}"=="${EMPTY}" and "${attributeName}"=="destination" Should Not Be Empty ${port} + Set To Dictionary ${dict} port=${port} + ${return} ${addrType} Run Keyword And Ignore Error Set Variable ${attributeValue['addrType']} + Run Keyword If "${port}"=="${EMPTY}" and "${attributeName}"=="source" Should Not Be Empty ${addrType} + Run Keyword If "${port}"=="${EMPTY}" and "${attributeName}"=="destination" Should Not Be Empty ${addrType} Set To Dictionary ${dict} addrType=${addrType} - ${return} ${protocol} Run Keyword And Ignore Error Get From Dictionary ${attributeValue} protocol - Should Be Equal As Strings ${return} PASS + ${return} ${protocol} Run Keyword And Ignore Error Set Variable ${attributeValue['protocol']} + Run Keyword If "${port}"=="${EMPTY}" and "${attributeName}"=="source" Should Not Be Empty ${protocol} + Run Keyword If "${port}"=="${EMPTY}" and "${attributeName}"=="destination" Should Not Be Empty ${protocol} Set To Dictionary ${dict} protocol=${protocol} [Return] ${dict} ExtractIpAttributeValue [Arguments] ${attributeValue} ${list} Split String ${attributeValue} | ${len} Get Length ${list} - Should Be Equal As Integers ${len} 6 - ${addrType} Evaluate int(${list}[4]) - ${protocol} Evaluate int(${list}[5]) - ${dict} Create Dictionary clientIp=${list}[0] clientPort=${list}[1] serverIp=${list}[2] - ... serverPort=${list}[3] addrType=${addrType} protocol=${protocol} + Should Be Equal As Integers ${len} 4 + ${addrType} Evaluate int(${list}[2]) + ${protocol} Evaluate int(${list}[3]) + ${dict} Create Dictionary ip=${list}[0] port=${list}[1] + ... addrType=${addrType} protocol=${protocol} [Return] ${dict} ManageSignatureAttributeValue [Arguments] ${attributeValue} ${type} diff --git a/02-Keyword/tsg_ui/setting/Settings.robot b/02-Keyword/tsg_ui/setting/Settings.robot index 09f0beb..864ed84 100644 --- a/02-Keyword/tsg_ui/setting/Settings.robot +++ b/02-Keyword/tsg_ui/setting/Settings.robot @@ -100,7 +100,7 @@ Create-Traffic Mirror Profiles Sleep 1 input id=trafficmirror_addrArray0 ${shuru} sleep 2 - click xpath=//*[@id="app"]/div/div[3]/div/div/div[2]/div/div[2]/form/div[5]/div/div/button[1] #点击OK + click xpath=//*[@id="app"]/div/div[3]/div/div/div[2]/div[2]/button[1] #点击OK Sleep 2 input id=one-input ${name} #搜索输入框输入name Sleep 1 @@ -166,7 +166,7 @@ Create-Response Pages Sleep 2 Choose File xpath=//*[@id="policy_Manipulation_create6"]/div[2]/form/div[2]/div/div/div/input ${file} #上传文件 Sleep 2 - click xpath=//*[@id="policy_Manipulation_create6"]/div[2]/form/div[4]/div/div/button[1] #点击OK缇交 + click id=responseAddOk1 #点击OK缇交 Sleep 1 input xpath=//*[@id="one-input"] ${name} #搜索框输入 Sleep 1 @@ -289,7 +289,7 @@ Edit-Traffic Mirror Profiles sleep 1 input id=trafficmirror_addrArray0 ${shuju} #输入内容 sleep 1 - click xpath=//*[@id="app"]/div/div[3]/div/div/div[2]/div/div[2]/form/div[8]/div/div/button[1] #点击ok + click xpath=//*[@id="app"]/div/div[3]/div/div/div[2]/div[2]/button[1] #点击ok import-Trusted Certificate Authorities [Arguments] ${name} ${file} @@ -413,7 +413,7 @@ Search-Cached Intermediate Certificates input id=sreach_input ${id-sni} click id=select_new_search_btn #点击搜索按钮 Sleep 1 - click xpath=//*[@id="ly-table1-listcontent"]/div/div[3]/table/tbody/tr/td[8]/div/div/div/p/a/i #点击下载 + click xpath=//*[@id="ly-table1-listcontent"]/div/div[3]/table/tbody/tr/td[7]/div/div/div/p/a/i #点击下载 Sleep 10 click ${enabled} #点击enabled按钮 sleep 1 @@ -926,7 +926,7 @@ Policy_Verify sleep 2 ${APP-ID} Set Variable ${APP-ID1} Run Keyword If "${Select-Test}"=="Security Policy Match" and "${APP-ID}"=="Protocol-HTTP" Run Keywords click xpath=//*[@id="app"]/div/div[3]/div/div/div[2]/div[1]/div[1]/div[1]/form/div[9]/div/div/div/span/span/i - ... AND Wait Until Page Contains Element xpath=/html/body/div/div[1]/div[1]/ul/li[1] 10 + ... AND Wait Until Page Contains Element id=Protocol-HTTPhttp 10 ... AND log $$$$$$1111111 ... AND click id=Protocol-HTTPhttp ... AND sleep 2 @@ -959,8 +959,8 @@ Policy_Verify \ run keyword if "${key}"=="Host" Run Keywords click xpath=//*[@id="app"]/div/div[3]/div/div/div[2]/div[1]/div[1]/div[1]/form/div[10]/div/div \ ... AND sleep 1 \ ... AND click xpath=//*[@id="app"]/div/div[3]/div/div/div[2]/div[1]/div[1]/div[1]/form/div[10]/div[1]/div/div[1]/div[1]/span/span/i - \ ... AND Wait Until Page Contains Element xpath=/html/body/div/div[1]/div[1]/ul/li[1] 10 - \ ... AND click xpath=/html/body/div/div[1]/div[1]/ul/li[1] + \ ... AND Wait Until Page Contains Element xpath=/html/body/div/div[1]/div[1]/ul/li[2] 10 + \ ... AND click xpath=/html/body/div/div[1]/div[1]/ul/li[2] \ ... AND sleep 1 \ ... AND input xpath=//*[@id="app"]/div/div[3]/div/div/div[2]/div[1]/div[1]/div[1]/form/div[10]/div[1]/div/div[2]/input ${dict}[${key}] \ ... AND sleep 1 @@ -968,7 +968,7 @@ Policy_Verify \ ... AND sleep 1 \ ... AND click xpath=//*[@id="app"]/div/div[3]/div/div/div[2]/div[1]/div[1]/div[1]/form/div[10]/div[1]/div/div[1]/div[1]/span/span/i \ ... AND sleep 1 - \ ... AND click xpath=/html/body/div/div[1]/div[1]/ul/li[1] + \ ... AND click xpath=/html/body/div/div[1]/div[1]/ul/li[3] \ ... AND sleep 1 \ ... AND input xpath=//*[@id="app"]/div/div[3]/div/div/div[2]/div[1]/div[1]/div[1]/form/div[10]/div[1]/div/div[2]/input ${dict}[${key}] \ ... AND sleep 1 @@ -976,7 +976,7 @@ Policy_Verify \ ... AND sleep 1 \ ... AND click xpath=//*[@id="app"]/div/div[3]/div/div/div[2]/div[1]/div[1]/div[1]/form/div[10]/div[1]/div/div[1]/div[1]/span/span/i \ ... AND sleep 1 - \ ... AND click xpath=/html/body/div/div[1]/div[1]/ul/li[1] + \ ... AND click xpath=/html/body/div/div[1]/div[1]/ul/li[4] \ ... AND sleep 1 \ ... AND input xpath=//*[@id="app"]/div/div[3]/div/div/div[2]/div[1]/div[1]/div[1]/form/div[10]/div[1]/div/div[2]/input ${dict}[${key}] \ ... AND sleep 1 @@ -984,7 +984,7 @@ Policy_Verify \ ... AND sleep 1 \ ... AND click xpath=//*[@id="app"]/div/div[3]/div/div/div[2]/div[1]/div[1]/div[1]/form/div[10]/div[1]/div/div[1]/div[1]/span/span/i \ ... AND sleep 1 - \ ... AND click xpath=/html/body/div/div[1]/div[1]/ul/li[1] + \ ... AND click xpath=/html/body/div/div[1]/div[1]/ul/li[5] \ ... AND sleep 1 \ ... AND Req_Res_Body ${dict}[${key}] \ ... AND sleep 1 @@ -992,7 +992,7 @@ Policy_Verify \ ... AND sleep 1 \ ... AND click xpath=//*[@id="app"]/div/div[3]/div/div/div[2]/div[1]/div[1]/div[1]/form/div[10]/div[1]/div/div[1]/div[1]/span/span/i \ ... AND sleep 1 - \ ... AND click xpath=/html/body/div/div[1]/div[1]/ul/li[1] + \ ... AND click xpath=/html/body/div/div[1]/div[1]/ul/li[6] \ ... AND sleep 1 \ ... AND Req_Res_Body ${dict}[${key}] \ ... AND sleep 1 @@ -1008,7 +1008,7 @@ Policy_Verify \ ... AND sleep 1 \ ... AND click xpath=//*[@id="app"]/div/div[3]/div/div/div[2]/div[1]/div[1]/div[1]/form/div[10]/div[1]/div/div[1]/div[1]/span/span/i \ ... AND sleep 1 - \ ... AND click xpath=/html/body/div/div[1]/div[1]/ul/li[1] + \ ... AND click xpath=/html/body/div/div[1]/div[1]/ul/li[2] \ ... AND sleep 1 \ ... AND Req_Res_Body ${dict}[${key}] \ ... AND sleep 1 @@ -1016,7 +1016,7 @@ Policy_Verify \ ... AND sleep 1 \ ... AND click xpath=//*[@id="app"]/div/div[3]/div/div/div[2]/div[1]/div[1]/div[1]/form/div[10]/div[1]/div/div[1]/div[1]/span/span/i \ ... AND sleep 1 - \ ... AND click xpath=/html/body/div/div[1]/div[1]/ul/li[1] + \ ... AND click xpath=/html/body/div/div[1]/div[1]/ul/li[3] \ ... AND sleep 1 \ ... AND Req_Res_Body ${dict}[${key}] \ ... AND sleep 1 @@ -1040,7 +1040,7 @@ Policy_Verify \ ... AND sleep 1 \ ... AND click xpath=//*[@id="app"]/div/div[3]/div/div/div[2]/div[1]/div[1]/div[1]/form/div[10]/div[1]/div/div[1]/div[1]/span/span/i \ ... AND sleep 1 - \ ... AND click xpath=/html/body/div/div[1]/div[1]/ul/li[1] + \ ... AND click xpath=/html/body/div/div[1]/div[1]/ul/li[2] \ ... AND sleep 1 \ ... AND Req_Res_Body ${dict}[${key}] \ ... AND sleep 1 @@ -1048,7 +1048,7 @@ Policy_Verify \ ... AND sleep 1 \ ... AND click xpath=//*[@id="app"]/div/div[3]/div/div/div[2]/div[1]/div[1]/div[1]/form/div[10]/div[1]/div/div[1]/div[1]/span/span/i \ ... AND sleep 1 - \ ... AND click xpath=/html/body/div/div[1]/div[1]/ul/li[1] + \ ... AND click xpath=/html/body/div/div[1]/div[1]/ul/li[3] \ ... AND sleep 1 \ ... AND Req_Res_Body ${dict}[${key}] \ ... AND sleep 1 @@ -1056,7 +1056,7 @@ Policy_Verify \ ... AND sleep 1 \ ... AND click xpath=//*[@id="app"]/div/div[3]/div/div/div[2]/div[1]/div[1]/div[1]/form/div[10]/div[1]/div/div[1]/div[1]/span/span/i \ ... AND sleep 1 - \ ... AND click xpath=/html/body/div/div[1]/div[1]/ul/li[1] + \ ... AND click xpath=/html/body/div/div[1]/div[1]/ul/li[4] \ ... AND sleep 1 \ ... AND Req_Res_Body ${dict}[${key}] \ ... AND sleep 1 @@ -1064,7 +1064,7 @@ Policy_Verify \ ... AND sleep 1 \ ... AND click xpath=//*[@id="app"]/div/div[3]/div/div/div[2]/div[1]/div[1]/div[1]/form/div[10]/div[1]/div/div[1]/div[1]/span/span/i \ ... AND sleep 1 - \ ... AND click xpath=/html/body/div/div[1]/div[1]/ul/li[1] + \ ... AND click xpath=/html/body/div/div[1]/div[1]/ul/li[5] \ ... AND sleep 1 \ ... AND Req_Res_Body ${dict}[${key}] \ ... AND sleep 1 @@ -1072,7 +1072,7 @@ Policy_Verify \ ... AND sleep 1 \ ... AND click xpath=//*[@id="app"]/div/div[3]/div/div/div[2]/div[1]/div[1]/div[1]/form/div[10]/div[1]/div/div[1]/div[1]/span/span/i \ ... AND sleep 1 - \ ... AND click xpath=/html/body/div/div[1]/div[1]/ul/li[1] + \ ... AND click xpath=/html/body/div/div[1]/div[1]/ul/li[6] \ ... AND sleep 1 \ ... AND Req_Res_Body ${dict}[${key}] \ ... AND sleep 1 @@ -1080,15 +1080,7 @@ Policy_Verify \ ... AND sleep 1 \ ... AND click xpath=//*[@id="app"]/div/div[3]/div/div/div[2]/div[1]/div[1]/div[1]/form/div[10]/div[1]/div/div[1]/div[1]/span/span/i \ ... AND sleep 1 - \ ... AND click xpath=/html/body/div/div[1]/div[1]/ul/li[1] - \ ... AND sleep 1 - \ ... AND Req_Res_Body ${dict}[${key}] - \ ... AND sleep 1 - \ run keyword if "${key}"=="ATT CONT" Run Keywords click xpath=//*[@id="app"]/div/div[3]/div/div/div[2]/div[1]/div[1]/div[1]/form/div[10]/div/div - \ ... AND sleep 1 - \ ... AND click xpath=//*[@id="app"]/div/div[3]/div/div/div[2]/div[1]/div[1]/div[1]/form/div[10]/div[1]/div/div[1]/div[1]/span/span/i - \ ... AND sleep 1 - \ ... AND click xpath=/html/body/div/div[1]/div[1]/ul/li[1] + \ ... AND click xpath=/html/body/div/div[1]/div[1]/ul/li[7] \ ... AND sleep 1 \ ... AND Req_Res_Body ${dict}[${key}] \ ... AND sleep 1 @@ -1104,7 +1096,7 @@ Policy_Verify \ ... AND sleep 1 \ ... AND click xpath=//*[@id="app"]/div/div[3]/div/div/div[2]/div[1]/div[1]/div[1]/form/div[10]/div[1]/div/div[1]/div[1]/span/span/i \ ... AND sleep 1 - \ ... AND click xpath=/html/body/div/div[1]/div[1]/ul/li[1] + \ ... AND click xpath=/html/body/div/div[1]/div[1]/ul/li[2] \ ... AND sleep 1 \ ... AND Req_Res_Body ${dict}[${key}] \ ... AND sleep 1 @@ -1112,7 +1104,7 @@ Policy_Verify \ ... AND sleep 1 \ ... AND click xpath=//*[@id="app"]/div/div[3]/div/div/div[2]/div[1]/div[1]/div[1]/form/div[10]/div[1]/div/div[1]/div[1]/span/span/i \ ... AND sleep 1 - \ ... AND click xpath=/html/body/div/div[1]/div[1]/ul/li[1] + \ ... AND click xpath=/html/body/div/div[1]/div[1]/ul/li[3] \ ... AND sleep 1 \ ... AND Req_Res_Body ${dict}[${key}] \ ... AND sleep 1 @@ -1165,7 +1157,7 @@ Create_Ip_Libraries ... AND input id=ip_geography_Country1 ${Country} run keyword if "${type}"=="City" Run Keywords click id=security_action_city ... AND sleep 1 - ... AND click id=ip_geography_continent + ... AND click id=ip_geography_Country ... AND sleep 1 ... AND Switch_Geographic_Locations ${Continent/Country} sleep 1 @@ -1189,7 +1181,36 @@ Create_Ip_Libraries ${GeoNameText} get text xpath=//*[@id="ly-table1-listcontent"]/div/div[3]/table/tbody/tr/td[1]/div/div/div sleep 2 Should Be Equal As Strings ${GeoNameText} ${GeoNameID} #断言 - + +Edit_Ip_Libraries + [Arguments] ${GeoNameID} ${City}=null ${ip}=null ${j}=1 ${Country}=null ${Longitude}=null ${Latitude}=null ${type}=null ${type1}=null + click id=tagEdit #点击Edit按钮 + sleep 2 + run keyword if "${City}"!="null" input id=ip_geography_City ${City} + sleep 1 + run keyword if "${type}"=="edit" Run Keywords click xpath=//*[@id="app"]/div/div[3]/div/div/div[2]/div[1]/div[2]/form/div[3]/div/div[2]/div[2]/ul/li/div[2]/i[1] + ... AND sleep 1 + ... AND clear element text xpath=//*[@id="app"]/div/div[3]/div/div/div[2]/div[1]/div[2]/form/div[3]/div/div[2]/div[2]/ul/li/div[1]/form/div/div/div + ... AND sleep 1 + ... AND input id=ip_input0 ${ip}[0] + ... AND sleep 1 + run keyword if "${type}"=="create" Ip_Range_Edit_Create ${j} ${ip} + sleep 1 + run keyword if "${type}"=="delete" and "${type1}"=="create" Run Keywords click xpath=//*[@id="app"]/div/div[3]/div/div/div[2]/div[1]/div[2]/form/div[3]/div/div[2]/div[2]/ul/li/div[2]/i[2] + ... AND sleep 1 + ... AND Ip_Range_Edit_Create ${j} ${ip} + run keyword if "${type}"=="null" log 不做更改 + run keyword if "${Longitude}"!="null" Run Keywords input id=ip_geography_longitude ${Longitude} + ... AND sleep 1 + run keyword if "${Latitude}"!="null" Run Keywords input id=ip_geography_latitude ${Latitude} + ... AND sleep 1 + click id=IP_library_add + sleep 2 + #验证修改是否成功 + Switch_GeoName ${GeoNameID} + ${GeoNameText} get text xpath=//*[@id="ly-table1-listcontent"]/div/div[3]/table/tbody/tr/td[1]/div/div/div + sleep 2 + Should Be Equal As Strings ${GeoNameText} ${GeoNameID} #断言 Switch_Geographic_Locations [Arguments] ${Continent/Country} sleep 1 @@ -1210,11 +1231,21 @@ Ip_Range_Create \ sleep 1 \ input id=ip_input${i} ${ip}[${i}] \ sleep 1 - +Ip_Range_Edit_Create + [Arguments] ${j} ${ip} sleep 1 - Switch_GeoName + : FOR ${i} IN RANGE ${j} + \ sleep 1 + \ click id=addIPList + \ sleep 1 + \ input id=ip_input${i} ${ip}[${i}] + \ sleep 1 + sleep 1 +Switch_GeoName [Arguments] ${GeoName} sleep 2 + click id=clear_input_btm + sleep 1 input id=one-input ${GeoName} sleep 1 click id=select_new_search_btn @@ -1222,6 +1253,7 @@ Ip_Range_Create click xpath=//*[@id="ly-table1-listcontent"]/div/div[3]/table/tbody/tr/td[1]/div/div/div sleep 1 Delete_IP_Libraries + Switch_GeoName ${GeoName} sleep 2 click id=tagDel sleep 2 @@ -1230,6 +1262,8 @@ Delete_IP_Libraries Switch_GeoName1 [Arguments] ${GeoName} sleep 2 + click id=clear_input_btm + sleep 1 click id=one-input sleep 1 click id=input_list_li1 @@ -1247,6 +1281,8 @@ Switch_GeoName1 Switch_Country [Arguments] ${Country} sleep 2 + click id=clear_input_btm + sleep 1 click id=one-input sleep 1 click id=input_list_li2 @@ -1263,6 +1299,8 @@ Switch_Country Switch_City [Arguments] ${City} sleep 2 + click id=clear_input_btm + sleep 1 click id=one-input sleep 1 click id=input_list_li3 @@ -1275,4 +1313,31 @@ Switch_City sleep 1 ${CCityText} get text xpath=//*[@id="ly-table1-listcontent"]/div/div[3]/table/tbody/tr[1]/td[4]/div/div/div sleep 2 - Should Match ${CityText} ${City} #断言 \ No newline at end of file + Should Match ${CityText} ${City} #断言 +Pages + [Arguments] + Sleep 1 + click id=children5 #点击一级目录Settings + Sleep 1 + click id=sidebarIP_Libraries #点击二级目录IP_Libraries + Sleep 2 + +Ui-Pages + [Arguments] ${pages} + click element xpath=//*[@id="app"]/div/div[3]/div/div/div[2]/div[4]/div/ul/li[1] + sleep 2 + click element xpath=//*[@id="app"]/div/div[3]/div/div/div[2]/div[4]/div/button[2]/i + sleep 2 + Clear Element Text xpath=//*[@id="app"]/div/div[3]/div/div/div[2]/div[4]/div/span[2]/div/input + sleep 2 + input text xpath=//*[@id="app"]/div/div[3]/div/div/div[2]/div[4]/div/span[2]/div/input ${pages} + sleep 2 + press keys xpath=//*[@id="app"]/div/div[3]/div/div/div[2]/div[4]/div/span[2]/div/input ENTER + sleep 2 + +ALL + [Arguments] + click element xpath=//*[@id="ly-table1-listcontent"]/div/div[3]/table/tbody/tr/td[5]/div/div/div/div/div[2]/div[7] + sleep 2 + click element xpath=//*[@id="policy_IP_library1"]/div/p/i + sleep 2 \ No newline at end of file diff --git a/03-Variable/BifangApiVariable.txt b/03-Variable/BifangApiVariable.txt index 8f644af..d1309d8 100644 --- a/03-Variable/BifangApiVariable.txt +++ b/03-Variable/BifangApiVariable.txt @@ -1,66 +1,64 @@ -*** Variables *** -#登录类型:api | cli | ${None}(tsg mib) | 未指定,默认为ui -${loginType} api -#执行环境是否Widonws -${systemType} Windows -#API配置信息 -${host} 192.168.40.120 -${port} 8080 -${authmode} 1 -${authCode} ${EMPTY} -${ldapId} 27 -${version} v1 -${version2} v2 -${username} autotest -${password} 111111 -${encodePassword} ${EMPTY} -${token} ${EMPTY} -#[Documentation] 测试终端IP统一配置 -${testClentIP} 192.168.41.255 -${testSubscriberID} $test2552 -#自动化标签 -${userTagIds} ${EMPTY} -#Documentation] 是否添加测试终端IP到策略统一配置,0为不添加测试终端IP,1为添加测试终端IP,默认1 -${addTestClentIPFlag} 0 -#执行需要暂停时间 -#策略下发后到验证需等待时间 -${policyVerificationSleepSeconds} 20 -#策略验证后到验证策略日志需等待时间 -${policyLogVerificationSleepSeconds} 60 -${path} E:/auto_git/eclipsegit/tsg_autotest/05-Other/ -${currentpath} E:/auto_git/eclipsegit/tsg_autotest/ -${curlbatpath} ${path}/curl/ -${mailpath} ${path}/mail/ -${responsePageFiles} ${path}/response_pages_files/ -#全流程分阶段测试参数 -#[Documentation] 当前测试部分,all为一个终端全网全流程测试, -#1为添加策略和对象测试; -#2为功能端业务验证部分测试; -#3为llog日志验证测试 -${testPart} all -#UI配置的本地IP名称 -${LocahIPName} ${EMPTY} -${ipType} ipv4 -${ipMask} 255.255.255.255 -${browserType} chrome -# Cli自动化测试变量[start] -${cliHost} 192.168.40.165 -${cliUsername} tsgadmin -${cliPassword} Cli2019 -${timeout} 600s -${retryInterval} 300s -@{PolicyTypes} tsg_security pxy_manipulation -@{ObjectTypes} ip url fqdn keywords subscriberid fqdn_category account -... http_signature -# Cli自动化测试变量[end] -# SNMP服务测试变量[start] -${snmpHost} 192.168.40.165 -${snmpPort} 50161 -${snmpConnTimeout} 5 # 默认超时时间为6s,设置timeout值后超时时间为n*6s -${snmpCommunity} public -# SNMP服务测试变量[end] -#API配置信息 -${oamHost} 192.168.40.210 -${oamPort} 50080 -#命中日志绝对值差,用于比对两种接口查询数据结果差值 -${hitsAbs} 1000 \ No newline at end of file +*** Variables *** +#登录类型:api | cli | ${None}(tsg mib) | 未指定,默认为ui +${loginType} ui +#执行环境是否Widonws +${systemType} Windows +#API配置信息 +${host} 192.168.40.120 +${port} 8080 +${authmode} 1 +${authCode} ${EMPTY} +${ldapId} 27 +${version} v1 +${version2} v2 +${username} autotest +${password} 111111 +${encodePassword} ${EMPTY} +${token} ${EMPTY} +#[Documentation] 测试终端IP统一配置 +${testClentIP} 192.168.41.255 +${testSubscriberID} $test2552 +#自动化标签 +${userTagIds} ${EMPTY} +#Documentation] 是否添加测试终端IP到策略统一配置,0为不添加测试终端IP,1为添加测试终端IP,默认1 +${addTestClentIPFlag} 0 +#执行需要暂停时间 +#策略下发后到验证需等待时间 +${policyVerificationSleepSeconds} 20 +#策略验证后到验证策略日志需等待时间 +${policyLogVerificationSleepSeconds} 60 +${path} F:/tsg-git/tsg_autotest/05-Other/ +${currentpath} E:/auto_git/eclipsegit/tsg_autotest/ +${curlbatpath} ${path}/curl/ +${mailpath} ${path}/mail/ +${responsePageFiles} ${path}/response_pages_files/ +#全流程分阶段测试参数 +#[Documentation] 当前测试部分,all为一个终端全网全流程测试, +#1为添加策略和对象测试; +#2为功能端业务验证部分测试; +#3为llog日志验证测试 +${testPart} all +#UI配置的本地IP名称 +${LocahIPName} ${EMPTY} +${ipType} ipv4 +${ipMask} 255.255.255.255 +${browserType} chrome +# Cli自动化测试变量[start] +${cliHost} 192.168.40.165 +${cliUsername} tsgadmin +${cliPassword} Cli2019 +${timeout} 600s +${retryInterval} 300s +@{PolicyTypes} tsg_security pxy_manipulation +@{ObjectTypes} ip url fqdn keywords subscriberid fqdn_category account +... http_signature +# Cli自动化测试变量[end] +# SNMP服务测试变量[start] +${snmpHost} 192.168.40.165 +${snmpPort} 50161 +${snmpConnTimeout} 5 # 默认超时时间为6s,设置timeout值后超时时间为n*6s +${snmpCommunity} public +# SNMP服务测试变量[end] +#API配置信息 +${oamHost} 192.168.40.210 +${oamPort} 50080