diff --git a/02-Keyword/tsg_bfapi/policy/ApiPolicyRequest.robot b/02-Keyword/tsg_bfapi/policy/ApiPolicyRequest.robot index 1743ffa..a96e6c0 100644 --- a/02-Keyword/tsg_bfapi/policy/ApiPolicyRequest.robot +++ b/02-Keyword/tsg_bfapi/policy/ApiPolicyRequest.robot @@ -3,7 +3,6 @@ Library Collections Library RequestsLibrary Resource ../../../03-Variable/BifangApiVariable.txt Resource ../../common/ApiHttpRequest.robot -Variables ../../../05-Other/variable/policy/apipolicyrequesttest.py Library REST http://${host}:${port} Library json @@ -139,7 +138,7 @@ DelGroupObjects FOR ${var} IN @{objectids} log ${var} DelGroupObject ${var} - END + END DelGroupObject [Arguments] ${objectids} @@ -160,7 +159,7 @@ DelPolicyAndObjectAndProfile DelProfiles [Arguments] ${profiles} FOR ${profile} IN @{profiles} - Run Keyword If "${profile}"!="" and ${profile}!="${EMPTY}" DelProfile ${profile}[typeUrl] ${profile}[profileIds] + Run Keyword If "${profile}"!="" and ${profile}!="${EMPTY}" DelProfile ${profile}[typeUrl] ${profile}[profileIds] END DelProfile @@ -172,4 +171,5 @@ DelProfile Should Be Equal As Strings ${response_code} 200 #Integer ${response_code} 200 ${response} Convert to String ${response} - log ${response} \ No newline at end of file + log ${response} + diff --git a/02-Keyword/tsg_bfapi/policy/Test_ApiPolicyRequest.robot b/02-Keyword/tsg_bfapi/policy/Test_ApiPolicyRequest.robot index 53d82c8..4087a03 100644 --- a/02-Keyword/tsg_bfapi/policy/Test_ApiPolicyRequest.robot +++ b/02-Keyword/tsg_bfapi/policy/Test_ApiPolicyRequest.robot @@ -3,11 +3,15 @@ Test Teardown DelPolicysAndGroupObjects ${policyIds} ${objectIds} Resource ../../common/ApiHttpRequest.robot Resource ../../common/Util.robot Resource ApiPolicyRequest.robot +Resource PolicyJsonVariable.robot Variables ../../../05-Other/variable/policy/apipolicyrequesttest.py +Variables ../../../05-Other/variable/policy/apipolicyjsonbase.py +Resource ../../../03-Variable/ApplicationID.txt #Resource ../../tsg_bfapi/PolicyObject.robot *** Variables *** - +${policyIds} +${objectIds} *** Test Cases *** Test-GetRequestResposeCodePrivate [Tags] test @@ -21,35 +25,344 @@ Test-AddPolicyData #获取当前Case名称 log ${TEST NAME} #从变量文件中加载的新增对象JSON串 - log ${IP_OBJ} + log ${Test-AddPolicyData_IP_OBJ} + ${Test-AddPolicyData_IP_OBJ} Replace String ${Test-AddPolicyData_IP_OBJ} "objectName":"autotest" "objectName":"${TEST NAME}_IP_OBJ" #add Object,return statuscode,objectid 多个返回以英文逗号分隔 - ${returncode} ${ipid} AddObjectData 1 ${IP_OBJ} + ${returncode} ${ipid} AddObjectData 1 ${Test-AddPolicyData_IP_OBJ} #新增对象添加到删除对象列表,及时添加避免下面异常导致遗留垃圾数据 ${objectid} Set Variable ${ipid} ${objectIds} Create List [${objectid}] #从变量文件中加载的新增对象JSON串 - log ${FQDN_OBJ} + log ${Test-AddPolicyData_FQDN_OBJ} + ${Test-AddPolicyData_FQDN_OBJ} Replace String ${Test-AddPolicyData_FQDN_OBJ} "objectName":"autotest" "objectName":"${TEST NAME}_FQDN_OBJ" #add Object,return statcode,objectid - ${returncode} ${fqdnid} AddObjectData 1 ${FQDN_OBJ} + ${returncode} ${fqdnid} AddObjectData 1 ${Test-AddPolicyData_FQDN_OBJ} #新增对象添加到删除对象列表,及时添加避免下面异常导致遗留垃圾数据 ${objectid} Catenate SEPARATOR=, ${objectid} ${fqdnid} ${objectIds} Create List [${objectid}] #从变量文件中加载的新增策略的JSON串 - log ${SECURITY_POLICY} + log ${Test-AddPolicyData_SECURITY_POLICY} #替换策略中的引用内容,需要在变量文件中提前固定内容 #替换策略中的引用内容,源、目的对象对象引用 - ${SECURITY_POLICY} Replace String ${SECURITY_POLICY} IP_OBJ ${ipid} + ${Test-AddPolicyData_SECURITY_POLICY} Replace String ${Test-AddPolicyData_SECURITY_POLICY} ${TEST NAME}_IP_OBJ ${ipid} #替换策略中的引用内容,filter,sni对象对象引用 - ${SECURITY_POLICY} Replace String ${SECURITY_POLICY} FQDN_OBJ ${fqdnid} + ${Test-AddPolicyData_SECURITY_POLICY} Replace String ${Test-AddPolicyData_SECURITY_POLICY} ${TEST NAME}_FQDN_OBJ ${fqdnid} #替换策略中的策略名称 - ${SECURITY_POLICY} Replace String ${SECURITY_POLICY} policyNameautotest ${TEST NAME} - log ${SECURITY_POLICY} + ${Test-AddPolicyData_SECURITY_POLICY} Replace String ${Test-AddPolicyData_SECURITY_POLICY} "policyName":"autotest" "policyName":"${TEST NAME}_Security_PName" + log ${Test-AddPolicyData_SECURITY_POLICY} #add Policy,return statuscode,policyid 多个返回以逗号分隔 - ${returncode} ${policyid} AddPolicyData 1 ${SECURITY_POLICY} + ${returncode} ${policyid} AddPolicyData 1 ${Test-AddPolicyData_SECURITY_POLICY} + #新增对象添加到删除策略列表,及时添加避免后面异常导致遗留垃圾数据 + ${policyId1} Set Variable {"policyType":"tsg_security","policyIds":[${policyid}]} + ${policyIds} Create List ${policyId1} +Test-AddPolicyData1 + [Tags] test + #获取当前Case名称 + log ${TEST NAME} + + ${destination} Set Variable ${EMPTY} + #从变量文件中加载的新增对象JSON串 + log ${Test-AddPolicyData1_IP_OBJ} + ${Test-AddPolicyData1_IP_OBJ} Replace String ${Test-AddPolicyData1_IP_OBJ} "objectName":"autotest" "objectName":"${TEST NAME}_IP_OBJ" + #add Object,return statuscode,objectid 多个返回以英文逗号分隔 + ${returncode} ${ipid} AddObjectData 1 ${Test-AddPolicyData1_IP_OBJ} + #新增对象添加到删除对象列表,及时添加避免下面异常导致遗留垃圾数据 + ${objectid} Set Variable ${ipid} + ${objectIds} Create List [${objectid}] + ${destination} Set Variable {"objectId": ${objectid},"protocolField":"TSG_SECURITY_DESTINATION_ADDR"} + #从变量文件中加载的新增对象JSON串 + log ${Test-AddPolicyData1_FQDN_OBJ} + ${Test-AddPolicyData1_FQDN_OBJ} Replace String ${Test-AddPolicyData1_FQDN_OBJ} "objectName":"autotest" "objectName":"${TEST NAME}_FQDN_OBJ" + #add Object,return statcode,objectid + ${returncode} ${fqdnid} AddObjectData 1 ${Test-AddPolicyData1_FQDN_OBJ} + #新增对象添加到删除对象列表,及时添加避免下面异常导致遗留垃圾数据 + ${objectid} Catenate SEPARATOR=, ${objectid} ${fqdnid} + ${objectIds} Create List [${objectid}] + #从变量文件中加载的新增对象JSON串 + log ${Test-AddPolicyData1_IPLEARN_OBJ} + ${Test-AddPolicyData1_IPLEARN_OBJ} Replace String ${Test-AddPolicyData1_IPLEARN_OBJ} "objectName":"autotest" "objectName":"${TEST NAME}_IPLEARN_OBJ" + #add Object,return statcode,objectid + ${returncode} ${iplearnid} AddObjectData 1 ${Test-AddPolicyData1_IPLEARN_OBJ} + #新增对象添加到删除对象列表,及时添加避免下面异常导致遗留垃圾数据 + ${objectid} Catenate SEPARATOR=, ${objectid} ${iplearnid} + ${objectIds} Create List [${objectid}] + ${destination} Set Variable ${destination},{"objectId": ${iplearnid},"protocolField":"TSG_SECURITY_DESTINATION_ADDR"} + #从变量文件中加载的新增对象JSON串 + log ${Test-AddPolicyData1_IPGEO_OBJ} + ${Test-AddPolicyData1_IPGEO_OBJ} Replace String ${Test-AddPolicyData1_IPGEO_OBJ} "objectName":"autotest" "objectName":"${TEST NAME}_IPGEO_OBJ" + #add Object,return statcode,objectid + ${returncode} ${ipgeoid} AddObjectData 1 ${Test-AddPolicyData1_IPGEO_OBJ} + #新增对象添加到删除对象列表,及时添加避免下面异常导致遗留垃圾数据 + ${objectid} Catenate SEPARATOR=, ${objectid} ${ipgeoid} + ${objectIds} Create List [${objectid}] + ${destination} Set Variable ${destination},{"objectId": ${ipgeoid},"protocolField":"TSG_SECURITY_DESTINATION_LOCATION"} + #从变量文件中加载的新增策略的JSON串 + log ${Test-AddPolicyData1_SECURITY_POLICY} + #替换策略中的引用内容,需要在变量文件中提前固定内容 + #替换策略中的引用内容,源对象对象引用 + ${Test-AddPolicyData1_SECURITY_POLICY} Replace String ${Test-AddPolicyData1_SECURITY_POLICY} ${TEST NAME}_IP_OBJ ${ipid} + #替换策略中的引用内容,目的对象引用 + ${Test-AddPolicyData1_SECURITY_POLICY} Replace String ${Test-AddPolicyData1_SECURITY_POLICY} ${TEST NAME}_DESTINATION ${destination} + #替换策略中的引用内容,filter,sni对象对象引用 + ${Test-AddPolicyData1_SECURITY_POLICY} Replace String ${Test-AddPolicyData1_SECURITY_POLICY} ${TEST NAME}_FQDN_OBJ ${fqdnid} + #替换策略中的策略名称 + ${Test-AddPolicyData_SECURITY_POLICY} Replace String ${Test-AddPolicyData1_SECURITY_POLICY} "policyName":"autotest" "policyName":"${TEST NAME}_Security_PName" + log ${Test-AddPolicyData_SECURITY_POLICY} + #add Policy,return statuscode,policyid 多个返回以逗号分隔 + ${returncode} ${policyid} AddPolicyData 1 ${Test-AddPolicyData1_SECURITY_POLICY} #新增对象添加到删除策略列表,及时添加避免后面异常导致遗留垃圾数据 ${policyId1} set Variable {"policyType":"tsg_security","policyIds":[${policyid}]} ${policyIds} Create List ${policyId1} + +Test-Policy-Test + [Tags] test + #获取当前Case名称 + ${sourcejson} Set Variable ${EMPTY} + ${destjson} Set Variable ${EMPTY} + ${filterjson} Set Variable ${EMPTY} + ${iconColor} Set Variable 31739C + log ${TEST NAME} + #IP对象 + ${parmList} Create List 1.1.1.2 0-65535 + ${ipObjs} JsonIPItem ${parmList} + ${parmList} Create List 1.1.1.1-1.1.1.200 1-65535 + ${ipObj} JsonIPItem ${parmList} + ${ipObjs} Catenate SEPARATOR=, ${ipObjs} ${ipObj} + ${parmList} Create List 2.2.2.2/24 443 + ${ipObj} JsonIPItem ${parmList} + ${ipObjs} Catenate SEPARATOR=, ${ipObjs} ${ipObj} + ${parmList} Create List a1::b1 0-65535 + ${ipObj} JsonIPItem ${parmList} + ${ipObjs} Catenate SEPARATOR=, ${ipObjs} ${ipObj} + ${parmList} Create List a1::b1-a1::b15 1-65535 + ${ipObj} JsonIPItem ${parmList} + ${ipObjs} Catenate SEPARATOR=, ${ipObjs} ${ipObj} + ${parmList} Create List a1::b1/128 8080 + ${ipObj} JsonIPItem ${parmList} + ${ipObjs} Catenate SEPARATOR=, ${ipObjs} ${ipObj} + ${parmList} Create List 192.168.0.1 0-65535 + ${ipObj} JsonIPItem ${parmList} + ${ipObjs} Catenate SEPARATOR=, ${ipObjs} ${ipObj} + #拼接obj对象 + # ${parmList} ${objectType} 0 ${objectSubType} 1 ${objectName} 2 ${addItemList} 3 ${updateItemList} 4 ${deleteItemIds} 5 ${subObjectIds} 6 ${ipLearning} 7 + ${parmList} Create List ip endpoint ${TEST NAME}_IP ${ipObjs} ${EMPTY} ${EMPTY} ${EMPTY} ${EMPTY} ${iconColor} + ${ipObjjson} JsonOBJ ${parmList} + #拼接新增json + #${parmList}:${opAction}0 ${returnData} 1 ${objectList} 2 + ${parmList} Create List add 1 ${ipObjjson} + ${ipObjjson} JsonOBJS ${parmList} + #add Object,return statuscode,objectid 多个返回以英文逗号分隔 + ${returncode} ${ipid} AddObjectData 1 ${ipObjjson} + #新增对象添加到删除对象列表,及时添加避免下面异常导致遗留垃圾数据 + ${objectid} Set Variable ${ipid} + ${objectIds} Create List [${objectid}] + ${sourcejson} Set Variable {"objectId" : ${ipid},"protocolField" : "TSG_SECURITY_SOURCE_ADDR"} + ${destjson} Set Variable {"objectId" : ${ipid},"protocolField" : "TSG_SECURITY_DESTINATION_ADDR"} + + #Geo对象 + ${parmList} Create List Armenia.Abovyan.* + ${ipGeos} JsonGEOItem ${parmList} + ${parmList} Create List Armenia.Agarak.* + ${ipGeo} JsonGEOItem ${parmList} + ${ipGeos} Catenate SEPARATOR=, ${ipGeos} ${ipGeo} + #拼接obj对象 + # ${parmList} ${objectType} 0 ${objectSubType} 1 ${objectName} 2 ${addItemList} 3 ${updateItemList} 4 ${deleteItemIds} 5 ${subObjectIds} 6 ${ipLearning} 7 + ${parmList} Create List ip geo_location ${TEST NAME}_GEO ${ipGeos} ${EMPTY} ${EMPTY} ${EMPTY} ${EMPTY} ${iconColor} + ${ipGeojson} JsonOBJ ${parmList} + #拼接新增json + #${parmList}:${opAction}0 ${returnData} 1 ${objectList} 2 + ${parmList} Create List add 1 ${ipGeojson} + ${ipObjjson} JsonOBJS ${parmList} + #add Object,return statuscode,objectid 多个返回以英文逗号分隔 + ${returncode} ${ipid} AddObjectData 1 ${ipObjjson} + #新增对象添加到删除对象列表,及时添加避免下面异常导致遗留垃圾数据 + ${objectid} Catenate SEPARATOR=, ${objectid} ${ipid} + ${objectIds} Create List [${objectid}] + ${sourcejson} Catenate SEPARATOR=, ${sourcejson} {"objectId" : ${ipid},"protocolField" : "TSG_SECURITY_SOURCE_LOCATION"} + ${destjson} Catenate SEPARATOR=, ${destjson} {"objectId" : ${ipid},"protocolField" : "TSG_SECURITY_DESTINATION_LOCATION"} + + #IPLEARN对象 + #${parmList}:${fromFqdns} ${fromProtocol} ${learningDepth} ${agingTime} ${voteClientNum} ${learnedIpLimit} + ${parmList} Create List "*abc.com","$www.dce.com" HTTP,SSL 2 48 20 10000 + ${ipLearns} JsonIPLEARNItem ${parmList} + #拼接obj对象 + # ${parmList} ${objectType} 0 ${objectSubType} 1 ${objectName} 2 ${addItemList} 3 ${updateItemList} 4 ${deleteItemIds} 5 ${subObjectIds} 6 ${ipLearning} 7 + ${parmList} Create List ip ip_learning ${TEST NAME}_IPLEARN ${EMPTY} ${EMPTY} ${EMPTY} ${EMPTY} ${ipLearns} ${iconColor} + ${ipLearnjson} JsonOBJ ${parmList} + #拼接新增json + #${parmList}:${opAction}0 ${returnData} 1 ${objectList} 2 + ${parmList} Create List add 1 ${ipLearnjson} + ${ipObjjson} JsonOBJS ${parmList} + #add Object,return statuscode,objectid 多个返回以英文逗号分隔 + ${returncode} ${ipid} AddObjectData 1 ${ipObjjson} + #新增对象添加到删除对象列表,及时添加避免下面异常导致遗留垃圾数据 + ${objectid} Catenate SEPARATOR=, ${objectid} ${ipid} + ${objectIds} Create List [${objectid}] + ${sourcejson} Catenate SEPARATOR=, ${sourcejson} {"objectId" : ${ipid},"protocolField" : "TSG_SECURITY_SOURCE_ADDR"} + ${destjson} Catenate SEPARATOR=, ${destjson} {"objectId" : ${ipid},"protocolField" : "TSG_SECURITY_DESTINATION_ADDR"} + + #subid对象 + #${parmList}:${itemId} ${keywordArray} ${isHexbin} ${isInitialize} + #创建拼接对象参数list + ${parmList} Create List ${EMPTY} $test1 0 0 + #调用关键字生成对象itemjson + ${subids} JsonKeywords ${parmList} + #添加另一个 创建拼接对象参数list + ${parmList} Create List ${EMPTY} $test62 0 0 + ${subid} JsonKeywords ${parmList} + ${subids} Catenate SEPARATOR=, ${subids} ${subid} + #拼接obj对象 + # ${parmList} ${objectType} 0 ${objectSubType} 1 ${objectName} 2 ${addItemList} 3 ${updateItemList} 4 ${deleteItemIds} 5 ${subObjectIds} 6 ${ipLearning} 7 + ${parmList} Create List subscriberid subscriberid ${TEST NAME}_SUBID ${subids} ${EMPTY} ${EMPTY} ${EMPTY} ${EMPTY} ${iconColor} + ${subidjson} JsonOBJ ${parmList} + #拼接新增json + #${parmList}:${opAction}0 ${returnData} 1 ${objectList} 2 + ${parmList} Create List add 1 ${subidjson} + ${subidjson} JsonOBJS ${parmList} + #add Object,return statuscode,objectid 多个返回以英文逗号分隔 + ${returncode} ${subidid} AddObjectData 1 ${subidjson} + ${objectid} Catenate SEPARATOR=, ${objectid} ${subidid} + ${objectIds} Create List [${objectid}] + ${sourcejson} Catenate SEPARATOR=, ${sourcejson} {"objectId" : ${subidid},"protocolField" : ""} + #${destjson} Catenate SEPARATOR=, ${destjson} {"objectId" : ${subidid},"protocolField" : ""} + + #fqdn对象 + #${parmList}:${itemId} ${keywordArray} ${isHexbin} ${isInitialize} + ${parmList} Create List ${EMPTY} $www.abc.com 0 0 + ${fqdns} JsonKeywords ${parmList} + ${parmList} Create List ${EMPTY} *.abc.com 0 0 + ${fqdn} JsonKeywords ${parmList} + ${fqdns} Catenate SEPARATOR=, ${fqdns} ${fqdn} + #拼接obj对象 + # ${parmList} ${objectType} 0 ${objectSubType} 1 ${objectName} 2 ${addItemList} 3 ${updateItemList} 4 ${deleteItemIds} 5 ${subObjectIds} 6 ${ipLearning} 7 + ${parmList} Create List fqdn fqdn ${TEST NAME}_FQDN ${fqdns} ${EMPTY} ${EMPTY} ${EMPTY} ${EMPTY} ${iconColor} + ${fqdnjson} JsonOBJ ${parmList} + #拼接新增json + #${parmList}:${opAction}0 ${returnData} 1 ${objectList} 2 + ${parmList} Create List add 1 ${fqdnjson} + ${fqdnjson} JsonOBJS ${parmList} + #add Object,return statuscode,objectid 多个返回以英文逗号分隔 + ${returncode} ${fqdnidSub} AddObjectData 1 ${fqdnjson} + #新增对象添加到删除对象列表,及时添加避免下面异常导致遗留垃圾数据 + #${objectid} Catenate SEPARATOR=, ${objectid} ${fqdnid} + ${objectIds} Create List [${objectid}] [${fqdnidSub}] + + #fqdn对象组 + #拼接obj对象 + # ${parmList} ${objectType} 0 ${objectSubType} 1 ${objectName} 2 ${addItemList} 3 ${updateItemList} 4 ${deleteItemIds} 5 ${subObjectIds} 6 ${ipLearning} 7 + ${parmList} Create List fqdn fqdn ${TEST NAME}_FQDN_GROUP ${EMPTY} ${EMPTY} ${EMPTY} ${fqdnidSub} ${EMPTY} ${iconColor} + ${fqdnjson} JsonOBJ ${parmList} + #拼接新增json + #${parmList}:${opAction}0 ${returnData} 1 ${objectList} 2 + ${parmList} Create List add 1 ${fqdnjson} + ${fqdnjson} JsonOBJS ${parmList} + #add Object,return statuscode,objectid 多个返回以英文逗号分隔 + ${returncode} ${fqdnid} AddObjectData 1 ${fqdnjson} + ${objectid} Catenate SEPARATOR=, ${objectid} ${fqdnid} + ${objectIds} Create List [${objectid}] [${fqdnidSub}] + ${filterjson} Set Variable {"objectId" : ${fqdnid},"protocolField" : "TSG_FIELD_SSL_SNI"} + + #从变量文件中加载的新增对象JSON串 + # ${Test-LoadBase_POLICY} + ${appIdObjects} Set Variable ${SSL_ID} + ${userRegion} Set Variable "protocol" : "SSL","keyring" : 1,"decryption" : 1,"decrypt_mirror" : {"enable" : 0,"mirror_profile" : null} + ${policyDesc} Set Variable ${TEST NAME}_aututest + #~!@#$%^&*()_+{}|:\">${totalNumberOld} + ${listtest} Create List {"keywordArray":["base_keywordArray1"],"district":"base_district","itemId":"base_itemId","isHexbin":"base_isHexbin","isInitialize":base_isInitialize} ${EMPTY} {"keywordArray":["base_keywordArray2"],"district":"base_district","itemId":"base_itemId","isHexbin":"base_isHexbin","isInitialize":base_isInitialize} + ${fromlist1} Get Slice From List ${listtest} 0 1 + ${fromlist2} Get Slice From List ${listtest} 1 2 + ${fromlist2} Get Slice From List ${listtest} 2 + ${listlenth}= Get Length ${listtest} + #${tempValue} set Variable tempValue + FOR ${var} IN RANGE ${listlenth} + log ${var} + ${tempValue${var}} Get From List ${listtest} ${var} + END + + # 新建一个list变量 + @{list} create list aa bb + # 为list追加数据 同Append To List + @{list} create list @{list} cc + # 为list追加数据 同Append To List + Append To List @{list} dd + + #可以获取list的某一段子list,从两端截取或从中间截取 + #list的下标从0开始 + @{list} Create List lilei hanmeimei liming liliang liming + # 获取从index=1及之后的数据 + ${fromlist} Get Slice From List ${list} 1 + # 获取从index=1~2的数据,不包括第3个 + ${fromtolist} Get Slice From List ${list} 1 3 + + #Remove Duplicates-去重 + @{list} Create List lilei hanmeimei liming liliang liming + # list去重并检查不包含重复数据 + ${listnew} Remove Duplicates ${list} + List Should Not Contain Duplicates ${listnew} + + # List Should Contain Sub List-包含子list + @{list} Create List lilei hanmeimei liming liliang liming + @{sublist} Create List lilei hanmeimei + # 是否包含子list + List Should Contain Sub List ${list} ${sublist} + #在log中会打印出来去掉了几个重复数据: + #20201015 18:46:47.647 : INFO : 1 duplicate removed. + + #5 List Should Contain Sub List-包含子list + @{list} Create List lilei hanmeimei liming liliang liming + @{sublist} Create List lilei hanmeimei + # 是否包含子list + List Should Contain Sub List ${list} ${sublist} + + #6、List Should Not Contain Duplicates-判断不存在重复 + #示例,去重后,list就不存在重复数据了,最后一行可执行通过: + @{list} Create List lilei hanmeimei liming liliang liming + ${listnew} Remove Duplicates ${list} + List Should Not Contain Duplicates ${listnew} + + #7 Lists Should Be Equal-判断list相等 + #注意:@{list}是robot提供的语法,python并没有@{},只有${},所以要比较两个@{list},需要把@{list},直接写成英文dollar ${list}进行对比 + @{list} Create List lilei hanmeimei liming liliang liming + Remove From List ${list} 0 + @{list1} Create List hanmeimei liming liliang liming + Lists Should Be Equal ${list} ${list1} + Remove Values From List ${list} liming + @{list2} Create List hanmeimei liliang + Lists Should Be Equal ${list} ${list2} + #如果list转换成了string,也可以使用should be equal来做相等判断 + + #8 Remove (Values) From List-删除list中某个值 + #Remove From List:按照index删除,一次删除1个 + #Remove Values From List:按照value值删除,一次可删除多个 + + #9 Sort List–升序排序 + #对list做升序排序,示例: + @{list} Create List lilei hanmeimei liming liliang liming + Sort List ${list} + ${list} Convert To String ${list} + Should Be Equal ${list} ['hanmeimei', 'lilei', 'liliang', 'liming', 'liming'] + + + Test-GetRandomIP [Tags] test @@ -57,4 +370,16 @@ Test-GetRandomIP log ${ip} ${ip} GetRandomIP ipv6 log ${ip} + ${parmList0} Create List 1.1.1.2 0-65535 + ${parmList1} Create List 1.1.1.1-1.1.1.200 1-65535 + ${parmList2} Create List 2.2.2.2/24 443 + ${parmList3} Create List a1::b1 0-65535 + ${parmList4} Create List a1::b1-a1::b15 1-65535 + ${parmList5} Create List a1::b1/128 8080 + ${parmList6} Create List 192.168.0.1 0-65535 + ${parmList} Create List "protocol" : "SSL","keyring" : 1,"decryption" : 1,"decrypt_mirror" : {"enable" : 0,"mirror_profile" : null} {"enable" : 0,"mirror_profile" : null} ${parmList0} ${parmList1} ${parmList2} ${parmList3} ${parmList4} ${parmList5} ${parmList6} + :FOR ${element} IN @{parmList} + \ LOG ${element} + ${s} Set Variable ,{"enable" : 0,"mirror_profile" : null},{"enable" : 0,"mirror_profile" : null},{"enable" : 0,"mirror_profile" : null} + ${s} removeBeforOrAfter ${s} [1:] \ No newline at end of file diff --git a/04-CustomLibrary/Custometest/Common.py b/04-CustomLibrary/Custometest/Common.py new file mode 100644 index 0000000..e3d9d6b --- /dev/null +++ b/04-CustomLibrary/Custometest/Common.py @@ -0,0 +1,14 @@ +import json + +#判断一个字符或字符串是否包含于另一个字符串:a是否再b中,是否则返回True,否则返回Falsle +def aisincludeb(a,b): + result = a in b + print(result) + return result + +#删除字符串当前前几个,或后几个:sourcestr源串,a[2:-2] 表示去掉前面两个和后面两个,如果光去掉后面的a[:-2] +def removeBeforOrAfter(sourcestr,a): + #a = "16541616584984" + #a = a[2:-2] + sourcestr = sourcestr[a] + return result \ No newline at end of file diff --git a/05-Other/variable/policy/apipolicyjsonbase.py b/05-Other/variable/policy/apipolicyjsonbase.py new file mode 100644 index 0000000..1f9173c --- /dev/null +++ b/05-Other/variable/policy/apipolicyjsonbase.py @@ -0,0 +1,39 @@ +def get_variables(): + variables = { + #提供基础的变量配置,例如策略和对象的接送框架 + "Test-LoadBase_POLICYS":'{"opAction":"base_opAction","refuseCode":true,"returnData":base_returnData,"policyList":[base_policyList]}', + "Test-LoadBase_POLICY":'{"policyId":"base_policyId","policyName":"base_policyName","policyType":"base_policyType","action":"base_action","userTags":"base_userTags","doBlacklist":base_doBlacklist,"doLog":base_doLog,"policyDesc":"base_policyDesc","effectiveRange":{"tag_sets":[[base_effectiveRange]]},"userRegion":{base_userRegion},"source":[base_source],"destination":[base_destination],"filterList":[{"filter":[base_filter]}],"appIdObjects":[base_appIdObjects],"appSelectorObjects":[base_appSelectorObjects],"isValid":base_isValid,"scheduleId":[base_scheduleId]}', + #对象,IP对象JSON列表: + "Test-LoadBase_OBJS":'{"opAction":"base_opAction","refuseCode":true,"returnData":base_returnData,"objectList":[base_objectList]}', + #对象,IP对象: + "Test-LoadBase_OBJ":'{"objectType":"base_objectType","objectSubType":"base_objectSubType","isValid":base_isValid,"isInitialize":base_isInitialize,"isExclusion":base_isExclusion,"objectName":"base_objectName","objectDesc":"base_objectDesc","subObjectIds":[base_subObjectIds],"addItemList":[base_addItemList],"updateItemList":[base_updateItemList],"deleteItemIds":[base_deleteItemIds],"iconColor":"#base_iconColor"base_IPLEARN}', + #IP对象: + "Test-LoadBase_IP_OBJ_IP":'{"ip":"base_ip","ipIf":false,"portIf":false,"port":"base_port","itemId":"base_itemId","clientIp1":"base_clientIp1","clientIp2":"base_clientIp2","clientPort1":"base_clientPort1","clientPort2":"base_clientPort2","clientIpFormat":"base_clientIpFormat","clientPortFormat":"base_clientPortFormat","addrType":base_addrType,"direction":0}', + #IP GEO对象: + "Test-LoadBase_IP_OBJ_GEO":'{"keywordArray":["base_keywordArray"]}', + #IP Learnning: + "Test-LoadBase_IP_OBJ_LEARN":'"fromFqdns":[base_fromFqdns],"fromProtocol":"base_fromProtocol","learningDepth":"base_learningDepth","agingTime":"base_agingTime","voteClientNum":"base_voteClientNum","learnedIpLimit":"base_learnedIpLimit"', + + #keywrods + "Test-LoadBase_KEYWORDS":'{"keywordArray":["base_keywordArray"],"itemId":"base_itemId","isHexbin":"base_isHexbin","isInitialize":base_isInitialize}', + #districtKeywrods + "Test-LoadBase_DISTRICTKEYWORDS":'{"keywordArray":["base_keywordArray"],"district":"base_district","itemId":"base_itemId","isHexbin":"base_isHexbin","isInitialize":base_isInitialize}', + + #number\file + "Test-LoadBase_numberOrFile":'{"lowBoundary":base_lowBoundary,"upBoundary":base_upBoundary,"itemId":"base_itemId","isInitialize":base_isInitialize}', + + #自定义域 + "Test-LoadBase_POLICY_USERREGION":'"protocol":"SSL","keyring":1,"decryption":1,"decrypt_mirror":{"enable":0,"mirror_profile":null}', + + "Test-LoadBase_POLICY_SOURCE":'{"objectId":Test-AddPolicyData_IP_OBJ,"protocolField":"TSG_SECURITY_SOURCE_ADDR"}', + "Test-LoadBase_POLICY_DEST":'{"objectId":Test-AddPolicyData_IP_OBJ,"protocolField":"TSG_SECURITY_DESTINATION_ADDR"}', + "Test-LoadBase_POLICY_FILTER":'{"objectId":Test-AddPolicyData_FQDN_OBJ,"protocolField":"TSG_FIELD_SSL_SNI"}', + "Test-LoadBase_POLICY_APPIDOBJECTS":'24', + "Test-LoadBase_POLICY_SCHEDULEID":'55', + "Test-LoadBase_POLICY_USERTAGS":'', + "Test-LoadBase_POLICY_DOLOG":'1', + "Test-LoadBase_POLICY_POLICYDESC":'"AUTOtest"' + } + + + return variables \ No newline at end of file