diff --git a/02-Keyword/tsg_bfapi/policy_object/Object.robot b/02-Keyword/tsg_bfapi/policy_object/Object.robot index 7df0af3..e14ba07 100644 --- a/02-Keyword/tsg_bfapi/policy_object/Object.robot +++ b/02-Keyword/tsg_bfapi/policy_object/Object.robot @@ -70,6 +70,20 @@ GetObjectItems Append To List ${itemIds} ${item['itemId']} END [Return] ${rescode} ${itemIds} ${data['list']} +GetObjectItems1 + [Documentation] + ... 获取策略对象中的item,策略对象单元 + ... 当updateItemList中有需要传入数据时 + ... 调用此关键字 + [Arguments] ${params} + #必选参数判定 + Should Not Be Empty ${params} + ${paramsStr} Dictionary-To-QueryParams ${params} + ${response} BaseFormRequest /policy/items ${paramsStr} ${version} + ${rescode} Set Variable ${response['code']} + Should Be Equal As Strings ${rescode} 200 + ${data} Set Variable ${response['data']} + [Return] ${rescode} ${data} DeleteObjects [Documentation] ... 删除策略对象 @@ -98,6 +112,14 @@ ImportObject File Should Not Be Empty ${path}/${filePath}/${fileName} ${size} Get File Size ${path}/${filePath}/${fileName} Should Not Be Empty ${objectType} + #获取Item 的总数 + ${total} GetItemNum ${objectType} ${objectSubType} + #获取导入文件中的总行数 + ${lines} CountLines ${path}/${filePath}/${fileName} + #总数超过一定数据量测试不通过 + ${total1} Evaluate ${total}+${lines} + Run Keyword If "${objectType}"=="url" and ${total1}>1000000 Fail 当前已经存在item个数${total},待导入个数${lines},总数超过100万条! + ... ELSE IF ${total1}>100000 Fail 当前已经存在item个数${total},待导入个数${lines},总数超过10万条! ${objectSubType} Run Keyword If "${objectType}"=="ip" and "${objectSubType}"=="${EMPTY}" Set Variable endpoint ... ELSE Set Variable ${objectSubType} ${subfix} Fetch From Right ${fileName} . @@ -126,4 +148,37 @@ ExportObject Run Keyword If "${objectIds}"!="${EMPTY}" Set To Dictionary ${params} objectIds=${objectIds} Run Keyword If "${objectName}"!="${EMPTY}" Set To Dictionary ${params} objectName=${objectName} ${response} BaseGetRequestReturnBinary ${objectUrl}/batch ${params} ${version} - [Return] ${response} \ No newline at end of file + [Return] ${response} +GetItemNum + [Documentation] + ... 获取策略对象单元总数 + ... + [Arguments] ${objectType} ${objectSubType} + ${getTotal} Create Dictionary pageNo=${1} pageSize=${1} + Run Keyword If "${objectType}"=="ip" and "${objectSubType}"=="endpoint" Set To Dictionary ${getTotal} itemType=IP + ... ELSE IF "${objectType}"=="ip" and "${objectSubType}"=="geo_location" Set To Dictionary ${getTotal} itemType=geo_location + ... ELSE IF "${objectType}"=="ip" and "${objectSubType}"=="as_number" Set To Dictionary ${getTotal} itemType=as_number + ... ELSE IF "${objectType}"=="url" Set To Dictionary ${getTotal} itemType=URL + ... ELSE Set To Dictionary ${getTotal} itemType=${objectType} + ${rescode} ${data} GetObjectItems1 ${getTotal} + ${total} Set Variable ${data['total']} + Run Keyword If "${objectType}"=="fqdn_category" Set To Dictionary ${getTotal} isInitialize=1 + ${rescode} ${data} Run Keyword If "${objectType}"=="fqdn_category" GetObjectItems1 ${getTotal} + ... ELSE Set Variable ${rescode} ${data} + ${total} Run Keyword If "${objectType}"=="fqdn_category" Evaluate ${total} - ${data['total']} + ... ELSE Set Variable ${total} + [Return] ${total} +CountLines + [Documentation] + ... 获取文件总行数 + [Arguments] ${file} + ${count} Set Variable ${0} + ${openFile} Evaluate enumerate(open(r"${file}",'r')) + FOR ${line} IN @{openFile} + ${val} Run Keyword If "${line[0]}"=="0" Set Variable ${line[1]} ELSE Set Variable ${EMPTY} + ${match} Get Regexp Matches ${val} ^--> + ${len} Get Length ${match} + ${count} Run Keyword If "${line[0]}"=="0" and ${len}>0 Set Variable ${count} + ... ELSE Evaluate ${count}+1 + END + [Return] ${count} \ No newline at end of file