导入导出功能自动化,对象txt格式导入导出,策略txt和json格式导入,txt格式导出
This commit is contained in:
703
01-TestCase/tsg_bfapi/policy_object/ExportAndImport.robot
Normal file
703
01-TestCase/tsg_bfapi/policy_object/ExportAndImport.robot
Normal file
@@ -0,0 +1,703 @@
|
||||
*** Settings ***
|
||||
Test Teardown DeletePolicyAndGroupObject ${policyIds} ${objectIds}
|
||||
Resource ../../../02-Keyword/tsg_bfapi/PolicyObject.robot
|
||||
Resource ../../../02-Keyword/tsg_bfapi/policy_object/Policy.robot
|
||||
Resource ../../../02-Keyword/tsg_bfapi/policy_object/Object.robot
|
||||
Resource ../../../02-Keyword/tsg_bfapi/policy_object/Log.robot
|
||||
Resource ../../../02-Keyword/tsg_bfapi/Common.robot
|
||||
Resource ../../../03-Variable/ApplicationID.txt
|
||||
Library json5
|
||||
Library DateTime
|
||||
Library String
|
||||
Library BuiltIn
|
||||
Library ../../../04-CustomLibrary/Library/fileOperations.py
|
||||
|
||||
*** Variables ***
|
||||
@{policyIds} ${EMPTY}
|
||||
${objectIds} ${EMPTY}
|
||||
|
||||
*** Test Cases ***
|
||||
Object-Import-v1-ip_smallAccount
|
||||
[Tags] A small amount of IP
|
||||
Comment 导入ip
|
||||
${policyIds} Set Variable ${EMPTY}
|
||||
${objectIds} Set Variable ${EMPTY}
|
||||
log ${objectIds}
|
||||
${rescode} ${objectType} ${importRes} ImportObject uploadFiles ip01.txt ip ${EMPTY} ${EMPTY}
|
||||
${rescode} ${response} QueryObject ?pageSize=20&pageNo=1&isExclusion=0&isInitialize=0&objectType=${objectType}
|
||||
log pssssssssssssssssssssssssssssssssssssssssssssssssssss
|
||||
log ${response}
|
||||
${objectIds} Create List ${response['data']['list'][0]['objectId']}
|
||||
sleep 5
|
||||
|
||||
Object-Import-v1-ip_reachLimit
|
||||
[Tags] reachLimit IP
|
||||
Comment 导入ip
|
||||
${policyIds} Set Variable ${EMPTY}
|
||||
${objectIds} Set Variable ${EMPTY}
|
||||
log ${objectIds}
|
||||
${rescode} ${objectType} ${importRes} ImportObject uploadFiles ip_99968.txt ip ${EMPTY} ${EMPTY}
|
||||
${rescode} ${response} QueryObject ?pageSize=20&pageNo=1&isExclusion=0&isInitialize=0&objectType=${objectType}
|
||||
log pssssssssssssssssssssssssssssssssssssssssssssssssssss
|
||||
log ${response}
|
||||
${objectIds} Create List ${response['data']['list'][0]['objectId']}
|
||||
sleep 5
|
||||
|
||||
Object-Import-v1-ip_overLimit
|
||||
[Tags] OverLimit IP with 2 emptyLines
|
||||
Comment 导入ip
|
||||
${policyIds} Set Variable ${EMPTY}
|
||||
${objectIds} Create List
|
||||
log ${objectIds}
|
||||
${rescode} ${objectType} ${importRes} ImportObject uploadFiles ip_100001.txt ip ${EMPTY} ${EMPTY}
|
||||
log pssssssssssssssssssssssssssssssssssssssssssssssssssss
|
||||
sleep 5
|
||||
|
||||
Object-Import-v1-url_smallAccount
|
||||
[Tags] A small amount of url
|
||||
Comment 导入url
|
||||
${policyIds} Set Variable ${EMPTY}
|
||||
${objectIds} Set Variable ${EMPTY}
|
||||
log ${objectIds}
|
||||
${rescode} ${objectType} ${importRes} ImportObject uploadFiles url_example2.txt url ${EMPTY} ${EMPTY}
|
||||
${rescode} ${response} QueryObject ?pageSize=20&pageNo=1&isExclusion=0&isInitialize=0&objectType=${objectType}
|
||||
log pssssssssssssssssssssssssssssssssssssssssssssssssssss
|
||||
log ${response}
|
||||
${objectIds} Create List ${response['data']['list'][0]['objectId']}
|
||||
sleep 5
|
||||
|
||||
Object-Import-v1-url_reachLimit
|
||||
[Tags] reachLimit url
|
||||
Comment 导入url
|
||||
${policyIds} Set Variable ${EMPTY}
|
||||
${objectIds} Set Variable ${EMPTY}
|
||||
log ${objectIds}
|
||||
${rescode} ${objectType} ${importRes} ImportObject uploadFiles url_1000000.txt url ${EMPTY} ${EMPTY}
|
||||
${rescode} ${response} QueryObject ?pageSize=20&pageNo=1&isExclusion=0&isInitialize=0&objectType=${objectType}
|
||||
log pssssssssssssssssssssssssssssssssssssssssssssssssssss
|
||||
log ${response}
|
||||
${objectIds} Create List ${response['data']['list'][0]['objectId']}
|
||||
sleep 5
|
||||
|
||||
Object-Import-v1-url_overLimit
|
||||
[Tags] OverLimit url with 2 emptyLines
|
||||
Comment 导入url
|
||||
${policyIds} Set Variable ${EMPTY}
|
||||
${objectIds} Create List
|
||||
log ${objectIds}
|
||||
${rescode} ${objectType} ${importRes} ImportObject uploadFiles url_1000001.txt url ${EMPTY} ${EMPTY}
|
||||
sleep 5
|
||||
|
||||
Object-Import-v1-fqdn
|
||||
[Tags] A small amount of fqdn
|
||||
Comment 导入fqdn
|
||||
${policyIds} Set Variable ${EMPTY}
|
||||
${objectIds} Set Variable ${EMPTY}
|
||||
log ${objectIds}
|
||||
${rescode} ${objectType} ${importRes} ImportObject uploadFiles fqdn_example.txt fqdn ${EMPTY} ${EMPTY}
|
||||
${rescode} ${response} QueryObject ?pageSize=20&pageNo=1&isExclusion=0&isInitialize=0&objectType=${objectType}
|
||||
log pssssssssssssssssssssssssssssssssssssssssssssssssssss
|
||||
log ${response}
|
||||
${objectIds} Create List ${response['data']['list'][0]['objectId']}
|
||||
sleep 5
|
||||
|
||||
Object-Import-v1-fqdn_reachLimit
|
||||
[Tags] reachLimit fqdn
|
||||
Comment 导入fqdn
|
||||
${policyIds} Set Variable ${EMPTY}
|
||||
${objectIds} Set Variable ${EMPTY}
|
||||
log ${objectIds}
|
||||
${rescode} ${objectType} ${importRes} ImportObject uploadFiles fqdn_100000.txt fqdn ${EMPTY} ${EMPTY}
|
||||
${rescode} ${response} QueryObject ?pageSize=20&pageNo=1&isExclusion=0&isInitialize=0&objectType=${objectType}
|
||||
log pssssssssssssssssssssssssssssssssssssssssssssssssssss
|
||||
log ${response}
|
||||
${objectIds} Create List ${response['data']['list'][0]['objectId']}
|
||||
sleep 5
|
||||
|
||||
Object-Import-v1-fqdn_overLimit
|
||||
[Tags] OverLimit fqdn with 2 emptyLines
|
||||
Comment 导入fqdn
|
||||
${policyIds} Set Variable ${EMPTY}
|
||||
${objectIds} Create List
|
||||
log ${objectIds}
|
||||
${rescode} ${objectType} ${importRes} ImportObject uploadFiles fqdn_100009.txt fqdn ${EMPTY} ${EMPTY}
|
||||
sleep 5
|
||||
|
||||
Object-Import-v1-subid
|
||||
[Tags] A small amount of subid
|
||||
Comment 导入subid
|
||||
${policyIds} Set Variable ${EMPTY}
|
||||
${objectIds} Set Variable ${EMPTY}
|
||||
log ${objectIds}
|
||||
${rescode} ${objectType} ${importRes} ImportObject uploadFiles subid_example.txt subscriberid ${EMPTY} ${EMPTY}
|
||||
${rescode} ${response} QueryObject ?pageSize=20&pageNo=1&isExclusion=0&isInitialize=0&objectType=${objectType}
|
||||
log pssssssssssssssssssssssssssssssssssssssssssssssssssss
|
||||
log ${response}
|
||||
${objectIds} Create List ${response['data']['list'][0]['objectId']}
|
||||
sleep 5
|
||||
|
||||
Object-Import-v1-subid_reachLimit
|
||||
[Tags] reachLimit subid
|
||||
Comment 导入subid
|
||||
${policyIds} Set Variable ${EMPTY}
|
||||
${objectIds} Set Variable ${EMPTY}
|
||||
log ${objectIds}
|
||||
${rescode} ${objectType} ${importRes} ImportObject uploadFiles subid_10w.txt subscriberid ${EMPTY} ${EMPTY}
|
||||
${rescode} ${response} QueryObject ?pageSize=20&pageNo=1&isExclusion=0&isInitialize=0&objectType=${objectType}
|
||||
log pssssssssssssssssssssssssssssssssssssssssssssssssssss
|
||||
log ${response}
|
||||
${objectIds} Create List ${response['data']['list'][0]['objectId']}
|
||||
sleep 5
|
||||
|
||||
Object-Import-v1-subid_overLimit
|
||||
[Tags] OverLimit subid with 2 emptyLines
|
||||
Comment 导入subid
|
||||
${policyIds} Set Variable ${EMPTY}
|
||||
${objectIds} Create List
|
||||
log ${objectIds}
|
||||
${rescode} ${objectType} ${importRes} ImportObject uploadFiles subid_100001.txt subscriberid ${EMPTY} ${EMPTY}
|
||||
sleep 5
|
||||
|
||||
Object-Import-v1-httpsig
|
||||
[Tags] A small amount of http_signature
|
||||
Comment 导入http_signature
|
||||
${policyIds} Set Variable ${EMPTY}
|
||||
${objectIds} Set Variable ${EMPTY}
|
||||
log ${objectIds}
|
||||
${rescode} ${objectType} ${importRes} ImportObject uploadFiles httpsig_example.txt http_signature ${EMPTY} ${EMPTY}
|
||||
${rescode} ${response} QueryObject ?pageSize=20&pageNo=1&isExclusion=0&isInitialize=0&objectType=${objectType}
|
||||
log pssssssssssssssssssssssssssssssssssssssssssssssssssss
|
||||
log ${response}
|
||||
${objectIds} Create List ${response['data']['list'][0]['objectId']}
|
||||
sleep 5
|
||||
|
||||
Object-Import-v1-_httpsig_reachLimit
|
||||
[Tags] reachLimit http_signature
|
||||
Comment 导入http_signature
|
||||
${policyIds} Set Variable ${EMPTY}
|
||||
${objectIds} Set Variable ${EMPTY}
|
||||
log ${objectIds}
|
||||
${rescode} ${objectType} ${importRes} ImportObject uploadFiles httpsig10w.txt http_signature ${EMPTY} ${EMPTY}
|
||||
${rescode} ${response} QueryObject ?pageSize=20&pageNo=1&isExclusion=0&isInitialize=0&objectType=${objectType}
|
||||
log pssssssssssssssssssssssssssssssssssssssssssssssssssss
|
||||
log ${response}
|
||||
${objectIds} Create List ${response['data']['list'][0]['objectId']}
|
||||
sleep 5
|
||||
|
||||
Object-Import-v1-httpsig_overLimit
|
||||
[Tags] OverLimit http_signature with 2 emptyLines
|
||||
Comment 导入http_signature
|
||||
${policyIds} Set Variable ${EMPTY}
|
||||
${objectIds} Create List
|
||||
log ${objectIds}
|
||||
${rescode} ${objectType} ${importRes} ImportObject uploadFiles httpsig_100001.txt http_signature ${EMPTY} ${EMPTY}
|
||||
sleep 5
|
||||
|
||||
Object-Import-v1-keywords
|
||||
[Tags] A small amount of keywords
|
||||
Comment 导入keywords
|
||||
${policyIds} Set Variable ${EMPTY}
|
||||
${objectIds} Set Variable ${EMPTY}
|
||||
log ${objectIds}
|
||||
${rescode} ${objectType} ${importRes} ImportObject uploadFiles keyword_example.txt keywords ${EMPTY} ${EMPTY}
|
||||
${rescode} ${response} QueryObject ?pageSize=20&pageNo=1&isExclusion=0&isInitialize=0&objectType=${objectType}
|
||||
log pssssssssssssssssssssssssssssssssssssssssssssssssssss
|
||||
log ${response}
|
||||
${objectIds} Create List ${response['data']['list'][0]['objectId']}
|
||||
sleep 5
|
||||
|
||||
Object-Import-v1-keywords_reachLimit
|
||||
[Tags] reachLimit keywords
|
||||
Comment 导入ip
|
||||
${policyIds} Set Variable ${EMPTY}
|
||||
${objectIds} Set Variable ${EMPTY}
|
||||
log ${objectIds}
|
||||
${rescode} ${objectType} ${importRes} ImportObject uploadFiles keyword_10w.txt keywords ${EMPTY} ${EMPTY}
|
||||
${rescode} ${response} QueryObject ?pageSize=20&pageNo=1&isExclusion=0&isInitialize=0&objectType=${objectType}
|
||||
log pssssssssssssssssssssssssssssssssssssssssssssssssssss
|
||||
log ${response}
|
||||
${objectIds} Create List ${response['data']['list'][0]['objectId']}
|
||||
sleep 5
|
||||
|
||||
Object-Import-v1-keywords_overLimit
|
||||
[Tags] OverLimit keywords with 2 emptyLines
|
||||
Comment 导入keywords
|
||||
${policyIds} Set Variable ${EMPTY}
|
||||
${objectIds} Create List
|
||||
log ${objectIds}
|
||||
${rescode} ${objectType} ${importRes} ImportObject uploadFiles keyword_100001.txt keywords ${EMPTY} ${EMPTY}
|
||||
sleep 5
|
||||
|
||||
Object-Import-v1-accounts
|
||||
[Tags] A small amount of accounts
|
||||
Comment 导入account
|
||||
${policyIds} Set Variable ${EMPTY}
|
||||
${objectIds} Set Variable ${EMPTY}
|
||||
log ${objectIds}
|
||||
${rescode} ${objectType} ${importRes} ImportObject uploadFiles account_example.txt account ${EMPTY} ${EMPTY}
|
||||
log ${EMPTY}
|
||||
${rescode} ${response} QueryObject ?pageSize=20&pageNo=1&isExclusion=0&isInitialize=0&objectType=${objectType}
|
||||
log pssssssssssssssssssssssssssssssssssssssssssssssssssss
|
||||
log ${response}
|
||||
${objectIds} Create List ${response['data']['list'][0]['objectId']}
|
||||
sleep 5
|
||||
|
||||
Object-Import-v1-account_reachLimit
|
||||
[Tags] reachLimit account
|
||||
Comment 导入account
|
||||
${policyIds} Set Variable ${EMPTY}
|
||||
${objectIds} Set Variable ${EMPTY}
|
||||
log ${objectIds}
|
||||
${rescode} ${objectType} ${importRes} ImportObject uploadFiles account10w.txt account ${EMPTY} ${EMPTY}
|
||||
${rescode} ${response} QueryObject ?pageSize=20&pageNo=1&isExclusion=0&isInitialize=0&objectType=${objectType}
|
||||
log pssssssssssssssssssssssssssssssssssssssssssssssssssss
|
||||
log ${response}
|
||||
${objectIds} Create List ${response['data']['list'][0]['objectId']}
|
||||
sleep 5
|
||||
|
||||
Object-Import-v1-account_overLimit
|
||||
[Tags] OverLimit account with 2 emptyLines
|
||||
Comment 导入account
|
||||
${policyIds} Set Variable ${EMPTY}
|
||||
${objectIds} Create List
|
||||
log ${objectIds}
|
||||
${rescode} ${objectType} ${importRes} ImportObject uploadFiles account100001.txt account ${EMPTY} ${EMPTY}
|
||||
sleep 5
|
||||
|
||||
Object-Export-v1-chooseId_ip
|
||||
[Tags] export chooseId ip
|
||||
Comment 导 出ip
|
||||
${objectIds} Create List
|
||||
${policyIds} Set Variable ${EMPTY}
|
||||
${response} ExportObject ip endpoint 110788,110753 ${EMPTY}
|
||||
WriteBinary ${response} ${path}/downloads/ip_chooseID.txt
|
||||
sleep 5
|
||||
|
||||
Object-Export-v1-choosePage_ip
|
||||
[Tags] export choosePage ip
|
||||
Comment 导 出ip
|
||||
${objectIds} Create List
|
||||
${policyIds} Set Variable ${EMPTY}
|
||||
${rescode} ${response} QueryObject ?pageSize=20&pageNo=1&isExclusion=0&isInitialize=0&objectType=ip&objectSubType=endpoint
|
||||
@{exportIds} Create List ${EMPTY}
|
||||
FOR ${n} IN RANGE 4
|
||||
log ${n+1}
|
||||
Insert Into List ${exportIds} ${n+1} ${response['data']['list'][${n}]['objectId']}
|
||||
END
|
||||
Remove From List ${exportIds} 0
|
||||
log ${exportIds}
|
||||
${exportIds1} Set Variable ${EMPTY}
|
||||
:FOR ${element} IN @{exportIds}
|
||||
\ log ${element}
|
||||
\ ${exportIds1} Catenate SEPARATOR=, ${element} ${exportIds1}
|
||||
${exportIds1}= Get Substring ${exportIds1} 0 -1
|
||||
${response} ExportObject ip endpoint ${exportIds1} ${EMPTY}
|
||||
WriteBinary ${response} ${path}/downloads/ip_choosePage.txt
|
||||
sleep 5
|
||||
|
||||
Object-Export-v1-all_ip
|
||||
[Tags] export all ip
|
||||
Comment 导 出ip
|
||||
${objectIds} Create List
|
||||
${policyIds} Set Variable ${EMPTY}
|
||||
${response} ExportObject ip endpoint ${EMPTY} ${EMPTY}
|
||||
WriteBinary ${response} ${path}/downloads/ip_all.txt
|
||||
sleep 5
|
||||
|
||||
Object-Export-v1-chooseId_fqdn
|
||||
[Tags] export chooseId fqdn
|
||||
Comment 导 出fqdn
|
||||
${objectIds} Create List
|
||||
${policyIds} Set Variable ${EMPTY}
|
||||
${response} ExportObject fqdn ${EMPTY} 110873 ${EMPTY}
|
||||
WriteBinary ${response} ${path}/downloads/fqdn_chooseId.txt
|
||||
sleep 5
|
||||
|
||||
Object-Export-v1-choosePage_fqdn
|
||||
[Tags] export choosePage fqdn
|
||||
Comment 导 出fqdn
|
||||
${objectIds} Create List
|
||||
${policyIds} Set Variable ${EMPTY}
|
||||
${rescode} ${response} QueryObject ?pageSize=20&pageNo=1&isExclusion=0&isInitialize=0&objectType=fqdn
|
||||
@{exportIds} Create List ${EMPTY}
|
||||
FOR ${n} IN RANGE 1
|
||||
log ${n+1}
|
||||
Insert Into List ${exportIds} ${n+1} ${response['data']['list'][${n}]['objectId']}
|
||||
END
|
||||
Remove From List ${exportIds} 0
|
||||
log ${exportIds}
|
||||
${exportIds1} Set Variable ${EMPTY}
|
||||
:FOR ${element} IN @{exportIds}
|
||||
\ log ${element}
|
||||
\ ${exportIds1} Catenate SEPARATOR=, ${element} ${exportIds1}
|
||||
${exportIds1}= Get Substring ${exportIds1} 0 -1
|
||||
${response} ExportObject fqdn ${EMPTY} ${exportIds1} ${EMPTY}
|
||||
WriteBinary ${response} ${path}/downloads/fqdn_choosePage.txt
|
||||
sleep 5
|
||||
|
||||
|
||||
Object-Export-v1-all_fqdn
|
||||
[Tags] export all fqdn
|
||||
Comment 导 出fqdn
|
||||
${objectIds} Create List
|
||||
${policyIds} Set Variable ${EMPTY}
|
||||
${response} ExportObject fqdn ${EMPTY} ${EMPTY} ${EMPTY}
|
||||
WriteBinary ${response} ${path}/downloads/fqdn_all.txt
|
||||
sleep 5
|
||||
|
||||
Object-Export-v1-chooseId_subid
|
||||
[Tags] export chooseId subid
|
||||
Comment 导 出subid
|
||||
${objectIds} Create List
|
||||
${policyIds} Set Variable ${EMPTY}
|
||||
${response} ExportObject subscriberid ${EMPTY} 110874 ${EMPTY}
|
||||
WriteBinary ${response} ${path}/downloads/subid_chooseID.txt
|
||||
sleep 5
|
||||
|
||||
Object-Export-v1-choosePage_subid
|
||||
[Tags] export choosePage subid
|
||||
Comment 导 出subid
|
||||
${objectIds} Create List
|
||||
${policyIds} Set Variable ${EMPTY}
|
||||
${rescode} ${response} QueryObject ?pageSize=20&pageNo=1&isExclusion=0&isInitialize=0&objectType=subscriberid
|
||||
@{exportIds} Create List ${EMPTY}
|
||||
FOR ${n} IN RANGE 1
|
||||
log ${n+1}
|
||||
Insert Into List ${exportIds} ${n+1} ${response['data']['list'][${n}]['objectId']}
|
||||
END
|
||||
Remove From List ${exportIds} 0
|
||||
log ${exportIds}
|
||||
${exportIds1} Set Variable ${EMPTY}
|
||||
:FOR ${element} IN @{exportIds}
|
||||
\ log ${element}
|
||||
\ ${exportIds1} Catenate SEPARATOR=, ${element} ${exportIds1}
|
||||
${exportIds1}= Get Substring ${exportIds1} 0 -1
|
||||
${response} ExportObject subscriberid ${EMPTY} ${exportIds1} ${EMPTY}
|
||||
WriteBinary ${response} ${path}/downloads/subid_choosePage.txt
|
||||
sleep 5
|
||||
|
||||
Object-Export-v1-all_subid
|
||||
[Tags] export all subid
|
||||
Comment 导 出subid
|
||||
${objectIds} Create List
|
||||
${policyIds} Set Variable ${EMPTY}
|
||||
${response} ExportObject subscriberid ${EMPTY} ${EMPTY} ${EMPTY}
|
||||
WriteBinary ${response} ${path}/downloads/subid_all.txt
|
||||
sleep 5
|
||||
|
||||
Object-Export-v1-chooseId_http_signature
|
||||
[Tags] export chooseId http_signature
|
||||
Comment 导 出http_signature
|
||||
${objectIds} Create List
|
||||
${policyIds} Set Variable ${EMPTY}
|
||||
${response} ExportObject http_signature ${EMPTY} 110760 ${EMPTY}
|
||||
WriteBinary ${response} ${path}/downloads/httpsig_chooseID.txt
|
||||
sleep 5
|
||||
|
||||
Object-Export-v1-choosePage_http_signature
|
||||
[Tags] export choosePage http_signature
|
||||
Comment 导 出http_signature
|
||||
${objectIds} Create List
|
||||
${policyIds} Set Variable ${EMPTY}
|
||||
${rescode} ${response} QueryObject ?pageSize=20&pageNo=1&isExclusion=0&isInitialize=0&objectType=http_signature
|
||||
@{exportIds} Create List ${EMPTY}
|
||||
FOR ${n} IN RANGE 1
|
||||
log ${n+1}
|
||||
Insert Into List ${exportIds} ${n+1} ${response['data']['list'][${n}]['objectId']}
|
||||
END
|
||||
Remove From List ${exportIds} 0
|
||||
log ${exportIds}
|
||||
${exportIds1} Set Variable ${EMPTY}
|
||||
:FOR ${element} IN @{exportIds}
|
||||
\ log ${element}
|
||||
\ ${exportIds1} Catenate SEPARATOR=, ${element} ${exportIds1}
|
||||
${exportIds1}= Get Substring ${exportIds1} 0 -1
|
||||
${response} ExportObject http_signature ${EMPTY} ${exportIds1} ${EMPTY}
|
||||
WriteBinary ${response} ${path}/downloads/http_signature_choosePage.txt
|
||||
sleep 5
|
||||
|
||||
Object-Export-v1-all_http_signature
|
||||
[Tags] export all http_signature
|
||||
Comment 导 出http_signature
|
||||
${objectIds} Create List
|
||||
${policyIds} Set Variable ${EMPTY}
|
||||
${response} ExportObject http_signature ${EMPTY} ${EMPTY} ${EMPTY}
|
||||
WriteBinary ${response} ${path}/downloads/httpsig_all.txt
|
||||
sleep 5
|
||||
|
||||
Object-Export-v1-keywords
|
||||
[Tags] export chooseId Keywords
|
||||
Comment 导 出Keywords
|
||||
${objectIds} Create List
|
||||
${policyIds} Set Variable ${EMPTY}
|
||||
${response} ExportObject Keywords ${EMPTY} 110762 ${EMPTY}
|
||||
WriteBinary ${response} ${path}/downloads/keyword_chooseID.txt
|
||||
sleep 5
|
||||
|
||||
Object-Export-v1-choosePage_Keywords
|
||||
[Tags] export choosePage Keywords
|
||||
Comment 导 出Keywords
|
||||
${objectIds} Create List
|
||||
${policyIds} Set Variable ${EMPTY}
|
||||
${rescode} ${response} QueryObject ?pageSize=20&pageNo=1&isExclusion=0&isInitialize=0&objectType=Keywords
|
||||
@{exportIds} Create List ${EMPTY}
|
||||
FOR ${n} IN RANGE 1
|
||||
log ${n+1}
|
||||
Insert Into List ${exportIds} ${n+1} ${response['data']['list'][${n}]['objectId']}
|
||||
END
|
||||
Remove From List ${exportIds} 0
|
||||
log ${exportIds}
|
||||
${exportIds1} Set Variable ${EMPTY}
|
||||
:FOR ${element} IN @{exportIds}
|
||||
\ log ${element}
|
||||
\ ${exportIds1} Catenate SEPARATOR=, ${element} ${exportIds1}
|
||||
${exportIds1}= Get Substring ${exportIds1} 0 -1
|
||||
${response} ExportObject Keywords ${EMPTY} ${exportIds1} ${EMPTY}
|
||||
WriteBinary ${response} ${path}/downloads/Keywords_choosePage.txt
|
||||
sleep 5
|
||||
|
||||
Object-Export-v1-keywords
|
||||
[Tags] export all Keywords
|
||||
Comment 导 出Keywords
|
||||
${objectIds} Create List
|
||||
${policyIds} Set Variable ${EMPTY}
|
||||
${response} ExportObject Keywords ${EMPTY} ${EMPTY} ${EMPTY}
|
||||
WriteBinary ${response} ${path}/downloads/keyword_all.txt
|
||||
sleep 5
|
||||
|
||||
Object-Export-v1-urls
|
||||
[Tags] export chooseId URLs
|
||||
Comment 导 出URLs
|
||||
${objectIds} Create List
|
||||
${policyIds} Set Variable ${EMPTY}
|
||||
${response} ExportObject url ${EMPTY} 110875 ${EMPTY}
|
||||
WriteBinary ${response} ${path}/downloads/url_chooseID.txt
|
||||
sleep 5
|
||||
|
||||
Object-Export-v1-choosePage_url
|
||||
[Tags] export choosePage url
|
||||
Comment 导 出Keywords
|
||||
${objectIds} Create List
|
||||
${policyIds} Set Variable ${EMPTY}
|
||||
${rescode} ${response} QueryObject ?pageSize=20&pageNo=1&isExclusion=0&isInitialize=0&objectType=url
|
||||
@{exportIds} Create List ${EMPTY}
|
||||
FOR ${n} IN RANGE 1
|
||||
log ${n+1}
|
||||
Insert Into List ${exportIds} ${n+1} ${response['data']['list'][${n}]['objectId']}
|
||||
END
|
||||
Remove From List ${exportIds} 0
|
||||
log ${exportIds}
|
||||
${exportIds1} Set Variable ${EMPTY}
|
||||
:FOR ${element} IN @{exportIds}
|
||||
\ log ${element}
|
||||
\ ${exportIds1} Catenate SEPARATOR=, ${element} ${exportIds1}
|
||||
${exportIds1}= Get Substring ${exportIds1} 0 -1
|
||||
${response} ExportObject url ${EMPTY} ${exportIds1} ${EMPTY}
|
||||
WriteBinary ${response} ${path}/downloads/url_choosePage.txt
|
||||
sleep 5
|
||||
|
||||
Object-Export-v1-urls
|
||||
[Tags] export all URLs
|
||||
Comment 导 出URLs
|
||||
${objectIds} Create List
|
||||
${policyIds} Set Variable ${EMPTY}
|
||||
${response} ExportObject url ${EMPTY} ${EMPTY} ${EMPTY}
|
||||
WriteBinary ${response} ${path}/downloads/url_all.txt
|
||||
sleep 5
|
||||
|
||||
Object-Export-v1-accounts
|
||||
[Tags] export chooseId accounts
|
||||
Comment 导 出Accounts
|
||||
${objectIds} Create List
|
||||
${policyIds} Set Variable ${EMPTY}
|
||||
${response} ExportObject account ${EMPTY} 110876 ${EMPTY}
|
||||
WriteBinary ${response} ${path}/downloads/account_chooseID.txt
|
||||
sleep 5
|
||||
|
||||
Object-Export-v1-choosePage_account
|
||||
[Tags] export choosePage account
|
||||
Comment 导 出account
|
||||
${objectIds} Create List
|
||||
${policyIds} Set Variable ${EMPTY}
|
||||
${rescode} ${response} QueryObject ?pageSize=20&pageNo=1&isExclusion=0&isInitialize=0&objectType=account
|
||||
@{exportIds} Create List ${EMPTY}
|
||||
FOR ${n} IN RANGE 1
|
||||
log ${n+1}
|
||||
Insert Into List ${exportIds} ${n+1} ${response['data']['list'][${n}]['objectId']}
|
||||
END
|
||||
Remove From List ${exportIds} 0
|
||||
log ${exportIds}
|
||||
${exportIds1} Set Variable ${EMPTY}
|
||||
:FOR ${element} IN @{exportIds}
|
||||
\ log ${element}
|
||||
\ ${exportIds1} Catenate SEPARATOR=, ${element} ${exportIds1}
|
||||
${exportIds1}= Get Substring ${exportIds1} 0 -1
|
||||
${response} ExportObject account ${EMPTY} ${exportIds1} ${EMPTY}
|
||||
WriteBinary ${response} ${path}/downloads/account_choosePage.txt
|
||||
sleep 5
|
||||
|
||||
Object-Export-v1-all_accounts
|
||||
[Tags] export all accounts
|
||||
Comment 导 出Accounts
|
||||
${objectIds} Create List
|
||||
${policyIds} Set Variable ${EMPTY}
|
||||
${response} ExportObject account ${EMPTY} ${EMPTY} ${EMPTY}
|
||||
WriteBinary ${response} ${path}/downloads/account_all.txt
|
||||
sleep 5
|
||||
|
||||
Policy-Import-v2-tsg_security_littleData_json
|
||||
[Tags] export littleData tsg_security
|
||||
Comment export littleData tsg_security
|
||||
${objectIds} Create List
|
||||
${rescode} ImportPolicy uploadFiles security_7ge.json tsg_security
|
||||
${rescode} ${response} QueryPolicy ?pageSize=20&pageNo=1&policyType=tsg_security&policyName=
|
||||
@{policyIds} Create List ${EMPTY}
|
||||
FOR ${n} IN RANGE 3
|
||||
log ${n+1}
|
||||
Insert Into List ${policyIds} ${n+1} ${response['data']['list'][${n+1}]['policyId']}
|
||||
END
|
||||
Remove From List ${policyIds} 0
|
||||
log ${policyIds}
|
||||
${length}= Get Length ${policyIds}
|
||||
${policyIds} Create List {"policyType":"tsg_security","policyIds":${policyIds}}
|
||||
log ${policyIds}
|
||||
sleep 5
|
||||
|
||||
|
||||
Policy-Import-v2-little_Data_tsg_security_txt
|
||||
[Tags] export littleData tsg_security
|
||||
Comment 导入安全策略txt
|
||||
${objectIds} Create List
|
||||
${rescode} ImportPolicy uploadFiles security_7ge.txt tsg_security
|
||||
${rescode} ${response} QueryPolicy ?pageSize=20&pageNo=1&policyType=tsg_security&policyName=
|
||||
@{policyIds} Create List ${EMPTY}
|
||||
FOR ${n} IN RANGE 3
|
||||
log ${n+1}
|
||||
Insert Into List ${policyIds} ${n+1} ${response['data']['list'][${n+1}]['policyId']}
|
||||
END
|
||||
Remove From List ${policyIds} 0
|
||||
log ${policyIds}
|
||||
${length}= Get Length ${policyIds}
|
||||
${policyIds} Create List {"policyType":"tsg_security","policyIds":${policyIds}}
|
||||
log ${policyIds}
|
||||
sleep 5
|
||||
|
||||
Policy-Import-v2-pxy_manipulation_littleData_json
|
||||
[Tags] export littleData pxy_manipulation
|
||||
Comment 导入代理策略json
|
||||
${objectIds} Create List
|
||||
${rescode} ${totalNum} ImportPolicy uploadFiles pxy.json pxy_manipulation
|
||||
${rescode} ${response} QueryPolicy ?pageSize=${totalNum}&pageNo=1&policyType=pxy_manipulation&policyName=
|
||||
@{policyIds} Create List ${EMPTY}
|
||||
FOR ${n} IN RANGE 1
|
||||
log ${n+1}
|
||||
Insert Into List ${policyIds} ${n+1} ${response['data']['list'][${n}]['policyId']}
|
||||
END
|
||||
Remove From List ${policyIds} 0
|
||||
log ${policyIds}
|
||||
${length}= Get Length ${policyIds}
|
||||
${policyIds} Create List {"policyType":"pxy_manipulation","policyIds":${policyIds}}
|
||||
log ${policyIds}
|
||||
sleep 5
|
||||
|
||||
Policy-Import-v2-pxy_manipulation_littleData_txt
|
||||
[Tags] export littleData pxy_manipulation
|
||||
Comment 导入代理策略txt
|
||||
${objectIds} Create List
|
||||
${rescode} ${totalNum} ImportPolicy uploadFiles pxy.txt pxy_manipulation
|
||||
${rescode} ${response} QueryPolicy ?pageSize=${totalNum}&pageNo=1&policyType=pxy_manipulation&policyName=
|
||||
@{policyIds} Create List ${EMPTY}
|
||||
FOR ${n} IN RANGE ${totalNum}
|
||||
log ${n+1}
|
||||
Insert Into List ${policyIds} ${n+1} ${response['data']['list'][${n+1}]['policyId']}
|
||||
END
|
||||
Remove From List ${policyIds} 0
|
||||
log ${policyIds}
|
||||
${length}= Get Length ${policyIds}
|
||||
${policyIds} Create List {"policyType":"pxy_manipulation","policyIds":${policyIds}}
|
||||
log ${policyIds}
|
||||
sleep 5
|
||||
|
||||
Policy-Export-v1-chooseId_tsg_security
|
||||
[Tags] export chooseId tsg_security
|
||||
Comment 导 出安全json
|
||||
${objectIds} Create List
|
||||
${policyIds} Set Variable ${EMPTY}
|
||||
${response} ExportPolicy tsg_security 961350,961351 ${EMPTY}
|
||||
WriteFile downloads security_id.json ${response}
|
||||
sleep 5
|
||||
|
||||
Policy-Export-v1-choosePage_tsg_security
|
||||
[Tags] export choosePage tsg_security
|
||||
Comment 导 出安全json
|
||||
${objectIds} Create List
|
||||
${policyIds} Set Variable ${EMPTY}
|
||||
${rescode} ${response} QueryPolicy ?pageSize=4&pageNo=1&policyType=tsg_security&policyName=
|
||||
@{exportIds} Create List ${EMPTY}
|
||||
FOR ${n} IN RANGE 4
|
||||
log ${n+1}
|
||||
Insert Into List ${exportIds} ${n+1} ${response['data']['list'][${n+1}]['policyId']}
|
||||
END
|
||||
Remove From List ${exportIds} 0
|
||||
log ${exportIds}
|
||||
${exportIds1} Set Variable ${EMPTY}
|
||||
:FOR ${element} IN @{exportIds}
|
||||
\ log ${element}
|
||||
\ ${exportIds1} Catenate SEPARATOR=, ${element} ${exportIds1}
|
||||
${exportIds1}= Get Substring ${exportIds1} 0 -1
|
||||
${response} ExportPolicy tsg_security ${exportIds1} ${EMPTY}
|
||||
WriteFile downloads security_page.json ${response}
|
||||
sleep 5
|
||||
|
||||
Policy-Export-v1-all_tsg_security
|
||||
Comment 导 出安全json
|
||||
[Tags] export all tsg_security
|
||||
${objectIds} Create List
|
||||
${policyIds} Set Variable ${EMPTY}
|
||||
${response} ExportPolicy tsg_security ${EMPTY} ${EMPTY}
|
||||
WriteFile downloads security_all.json ${response}
|
||||
sleep 5
|
||||
|
||||
Policy-Export-v1-chooseId_pxy_manipulation
|
||||
Comment 导 出代理json
|
||||
[Tags] export chooseId pxy_manipulation
|
||||
${objectIds} Create List
|
||||
${policyIds} Set Variable ${EMPTY}
|
||||
${response} ExportPolicy pxy_manipulation 961403,961404 ${EMPTY}
|
||||
WriteFile downloads proxy_id.json ${response}
|
||||
sleep 5
|
||||
|
||||
Policy-Export-v1-choosePage_pxy_manipulation
|
||||
[Tags] export choosePage pxy_manipulation
|
||||
Comment 导 出代理json
|
||||
${objectIds} Create List
|
||||
${policyIds} Set Variable ${EMPTY}
|
||||
${rescode} ${response} QueryPolicy ?pageSize=4&pageNo=1&policyType=pxy_manipulation&policyName=
|
||||
@{exportIds} Create List ${EMPTY}
|
||||
FOR ${n} IN RANGE 4
|
||||
log ${n+1}
|
||||
Insert Into List ${exportIds} ${n+1} ${response['data']['list'][${n}]['policyId']}
|
||||
END
|
||||
Remove From List ${exportIds} 0
|
||||
log ${exportIds}
|
||||
${exportIds1} Set Variable ${EMPTY}
|
||||
:FOR ${element} IN @{exportIds}
|
||||
\ log ${element}
|
||||
\ ${exportIds1} Catenate SEPARATOR=, ${element} ${exportIds1}
|
||||
${exportIds1}= Get Substring ${exportIds1} 0 -1
|
||||
${response} ExportPolicy pxy_manipulation ${exportIds1} ${EMPTY}
|
||||
WriteFile downloads proxy_page.json ${response}
|
||||
sleep 5
|
||||
|
||||
Policy-Export-v1-all_pxy_manipulation
|
||||
Comment 导 出代理json
|
||||
[Tags] export all pxy_manipulation
|
||||
${objectIds} Create List
|
||||
${policyIds} Set Variable ${EMPTY}
|
||||
${response} ExportPolicy pxy_manipulation ${EMPTY} ${EMPTY}
|
||||
WriteFile downloads proxy_all.json ${response}
|
||||
sleep 5
|
||||
|
||||
|
||||
|
||||
|
||||
@@ -6,118 +6,117 @@ Resource ../../../02-Keyword/tsg_bfapi/policy_file_interface/Functional
|
||||
Resource ProcessObjectBody.robot
|
||||
Library Collections
|
||||
Resource ../Common.robot
|
||||
Library ../../../04-CustomLibrary/Library/fileOperations.py
|
||||
Library DatabaseLibrary
|
||||
|
||||
*** Variables ***
|
||||
${objectUrl} /policy/object
|
||||
${objectUrl} /policy/object
|
||||
|
||||
*** Keywords ***
|
||||
AddObjects
|
||||
[Documentation]
|
||||
... 新增策略对象
|
||||
[Arguments] ${returnData} ${objectList}
|
||||
[Documentation] 新增策略对象
|
||||
... objectList,策略对象,可为list类型与dict类型
|
||||
... addItemList自动过滤itemId
|
||||
... updateItemList自动过滤isInitialize(update时该字段引发异常)
|
||||
... ipItem格式为dict,自动过滤空的字段
|
||||
... stringItem格式为dict,需要注意keywordArray字段应传入逗号分隔的字符串eg: keyword1,keyword2
|
||||
... stringItem格式为dict,需要注意keywordArray字段应传入逗号分隔的字符串eg: keyword1,keyword2
|
||||
... http_signature为代表的拓展关键字keywordArray字段也是以逗号分隔的
|
||||
... returnData,是否返回数据,固定为1
|
||||
[Arguments] ${returnData} ${objectList}
|
||||
${returnData}= Run Keyword If '${returnData}' == '${EMPTY}' Set Variable 1
|
||||
... ELSE Set Variable ${returnData}
|
||||
|
||||
#必选参数判定
|
||||
Should Not Be Empty ${objectList}
|
||||
${dictType} = Evaluate type(${objectList})
|
||||
${body} Run Keyword If "${dictType}" == "<class 'list'>" ObjectListOperation ${returnData} ${objectList} add
|
||||
... ELSE IF "${dictType}" == "<class 'dict'>" ObjectOperation ${returnData} ${objectList} add
|
||||
... ELSE IF "${dictType}" == "<class 'dict'>" ObjectOperation ${returnData} ${objectList} add
|
||||
... ELSE Set Variable ${EMPTY}
|
||||
|
||||
${response} BasePostRequestForV2 ${objectUrl} ${body} ${version}
|
||||
${objectIds} Run Keyword If "${returnData}" == "1" Get-ObjectIds ${response}
|
||||
... ELSE Create List
|
||||
${rescode} Set Variable ${response['code']}
|
||||
${objectIds} Run Keyword If "${returnData}" == "1" Get-ObjectIds ${response}
|
||||
... ELSE Create List
|
||||
${rescode} Set Variable ${response['code']}
|
||||
Should Be Equal As Strings ${rescode} 200
|
||||
[Return] ${rescode} ${objectIds}
|
||||
|
||||
UpdateObjects
|
||||
[Documentation]
|
||||
... 更新策略对象
|
||||
[Arguments] ${returnData} ${objectList} ${opAction}
|
||||
[Documentation] 更新策略对象
|
||||
... objectList,策略对象,可为list类型与dict类型
|
||||
... addItemList自动过滤itemId
|
||||
... updateItemList自动过滤isInitialize(update时该字段引发异常)
|
||||
... ipItem格式为dict,自动过滤空的字段
|
||||
... stringItem格式为dict,需要注意keywordArray字段应传入逗号分隔的字符串eg: keyword1,keyword2
|
||||
... stringItem格式为dict,需要注意keywordArray字段应传入逗号分隔的字符串eg: keyword1,keyword2
|
||||
... http_signature为代表的拓展关键字keywordArray字段也是以逗号分隔的
|
||||
... returnData,是否返回数据,固定为1
|
||||
... opAction,可为update,enable,disable
|
||||
[Arguments] ${returnData} ${objectList} ${opAction}
|
||||
${returnData}= Run Keyword If '${returnData}' == '${EMPTY}' Set Variable 1
|
||||
... ELSE Set Variable ${returnData}
|
||||
|
||||
#必选参数判定
|
||||
Should Not Be Empty ${objectList}
|
||||
${dictType} = Evaluate type(${objectList})
|
||||
${body} Run Keyword If "${dictType}" == "<class 'list'>" ObjectListOperation ${returnData} ${objectList} ${opAction}
|
||||
... ELSE IF "${dictType}" == "<class 'dict'>" ObjectOperation ${returnData} ${objectList} ${opAction}
|
||||
... ELSE IF "${dictType}" == "<class 'dict'>" ObjectOperation ${returnData} ${objectList} ${opAction}
|
||||
... ELSE Set Variable ${EMPTY}
|
||||
|
||||
${response} BaseEditRequestForV2 ${objectUrl} ${body} ${version}
|
||||
${rescode} Set Variable ${response['code']}
|
||||
${rescode} Set Variable ${response['code']}
|
||||
Should Be Equal As Strings ${rescode} 200
|
||||
[Return] ${rescode}
|
||||
|
||||
GetObjectItems
|
||||
[Documentation]
|
||||
... 获取策略对象中的item,策略对象单元
|
||||
[Arguments] ${params}
|
||||
[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']}
|
||||
${rescode} Set Variable ${response['code']}
|
||||
Should Be Equal As Strings ${rescode} 200
|
||||
${data} Set Variable ${response['data']}
|
||||
${data} Set Variable ${response['data']}
|
||||
${itemIds} Create List
|
||||
FOR ${item} IN @{data['list']}
|
||||
Append To List ${itemIds} ${item['itemId']}
|
||||
END
|
||||
[Return] ${rescode} ${itemIds} ${data['list']}
|
||||
|
||||
GetObjectItems1
|
||||
[Documentation]
|
||||
... 获取策略对象中的item,策略对象单元
|
||||
[Arguments] ${params}
|
||||
[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']}
|
||||
${rescode} Set Variable ${response['code']}
|
||||
Should Be Equal As Strings ${rescode} 200
|
||||
${data} Set Variable ${response['data']}
|
||||
${data} Set Variable ${response['data']}
|
||||
[Return] ${rescode} ${data}
|
||||
|
||||
DeleteObjects
|
||||
[Documentation]
|
||||
... 删除策略对象
|
||||
[Arguments] ${objectIds}
|
||||
[Documentation] 删除策略对象
|
||||
... params,传入的删除字典
|
||||
... 结构为[1,2,3]
|
||||
[Arguments] ${objectIds}
|
||||
${type} Evaluate isinstance(${objectIds},list)
|
||||
Should Be True ${type}
|
||||
Should Be True ${type}
|
||||
${dict} Create Dictionary objectIds=${objectIds}
|
||||
${json} json.Dumps ${dict} ensure_ascii=False
|
||||
${response} BaseDeleteRequest /${version}${objectUrl} ${json}
|
||||
${rescode} Set Variable ${response['code']}
|
||||
${rescode} Set Variable ${response['code']}
|
||||
Should Be Equal As Strings ${rescode} 200
|
||||
[Return] ${rescode}
|
||||
|
||||
ImportObject
|
||||
[Documentation]
|
||||
... 策略对象导入
|
||||
[Arguments] ${filePath} ${fileName} ${objectType} ${objectSubType} ${objectName}
|
||||
[Documentation] 策略对象导入
|
||||
... filePath文件路径
|
||||
... fileName文件名称
|
||||
... objectType对象类型
|
||||
... objectSubType对象子类型
|
||||
... objectName对象名称
|
||||
... jira CHON-12导入限制需求支持
|
||||
[Arguments] ${filePath} ${fileName} ${objectType} ${objectSubType} ${objectName}
|
||||
Directory Should Exist ${path}
|
||||
File Should Exist ${path}/${filePath}/${fileName}
|
||||
File Should Not Be Empty ${path}/${filePath}/${fileName}
|
||||
@@ -126,12 +125,21 @@ ImportObject
|
||||
#获取Item 的总数
|
||||
${total} GetItemNum ${objectType} ${objectSubType}
|
||||
#获取导入文件中的总行数
|
||||
#${lines} CountLines ${path}/${filePath}/${fileName}
|
||||
${lines} CountLines ${path}/${filePath}/${fileName}
|
||||
#总数超过一定数据量测试不通过
|
||||
${total1} Evaluate ${total}+${lines}
|
||||
${total1} Evaluate ${total}+${lines}
|
||||
#链接数据库查询上限
|
||||
Connect To Database Using Custom Params pymysql ${mysqlHost}
|
||||
${objectLimit} query SELECT cfg_value FROM t_sys_cfg WHERE cfg_name='${objectType}_upper_limit'
|
||||
${objectLimit} Set Variable ${objectLimit[0][0]}
|
||||
${remaining} Evaluate ${objectLimit}-${total}
|
||||
log ${objectType}剩余可导入量为:${remaining}
|
||||
${testType} Evaluate type($objectLimit)
|
||||
Disconnect From Database
|
||||
#jira CHON-12导入限制需求支持
|
||||
Run Keyword If "${objectType}"=="url" and ${total1}>1000000 Fail 当前已经存在item个数${total},待导入个数${lines},总数超过100万条!
|
||||
... ELSE IF ${total1}>100000 Fail 当前已经存在item个数${total},待导入个数${lines},总数超过10万条!
|
||||
Run Keyword If "${objectType}"=="url" and ${total1}>${objectLimit} log 当前已经存在item个数${total},待导入个数${lines},总数超过${objectLimit}条!
|
||||
... ELSE IF ${total1}>${objectLimit} log 当前已经存在item个数${total},待导入个数${lines},总数超过${objectLimit}条!
|
||||
${objectSubType} Run Keyword If "${objectType}"=="ip" and "${objectSubType}"=="${EMPTY}" Set Variable endpoint
|
||||
... ELSE Set Variable ${objectSubType}
|
||||
${subfix} Fetch From Right ${fileName} .
|
||||
@@ -139,21 +147,21 @@ ImportObject
|
||||
... ELSE IF "${subfix}"=="csv" Evaluate (r'${fileName}',open(r"${path}/${filePath}/${fileName}",'rb'),'application/vnd.ms-excel')
|
||||
... ELSE ${EMPTY}
|
||||
${data} Create Dictionary objectType=${objectType}
|
||||
Run Keyword If "${objectSubType}"!="${EMPTY}" Set To Dictionary ${data} objectSubType=${objectSubType}
|
||||
Run Keyword If "${objectName}"!="${EMPTY}" Set To Dictionary ${data} objectName=${objectName}
|
||||
Run Keyword If "${objectSubType}"!="${EMPTY}" Set To Dictionary ${data} objectSubType=${objectSubType}
|
||||
Run Keyword If "${objectName}"!="${EMPTY}" Set To Dictionary ${data} objectName=${objectName}
|
||||
${file} Create Dictionary file=${binFile}
|
||||
${response} BaseMultipartPostRequest ${objectUrl}/batch ${data} ${file} ${version}
|
||||
${rescode} Set Variable ${response['code']}
|
||||
${rescode} Set Variable ${response['code']}
|
||||
Should Be Equal As Strings ${rescode} 200
|
||||
[Return] ${rescode}
|
||||
[Return] ${rescode} ${objectType} ${response}
|
||||
|
||||
ExportObject
|
||||
[Documentation]
|
||||
... 策略对象导出
|
||||
... objectType ip,url等
|
||||
... objectSubType 子类型
|
||||
... objectIds 1,2,3
|
||||
... objectName 字符串
|
||||
[Arguments] ${objectType} ${objectSubType} ${objectIds} ${objectName}
|
||||
[Documentation] 策略对象导出
|
||||
... objectType ip,url等
|
||||
... objectSubType 子类型
|
||||
... objectIds 1,2,3
|
||||
... objectName 字符串
|
||||
Should Not Be Empty ${objectType}
|
||||
${params} Create Dictionary objectType=${objectType}
|
||||
Run Keyword If "${objectSubType}"!="${EMPTY}" Set To Dictionary ${params} objectSubType=${objectSubType}
|
||||
@@ -161,11 +169,10 @@ ExportObject
|
||||
Run Keyword If "${objectName}"!="${EMPTY}" Set To Dictionary ${params} objectName=${objectName}
|
||||
${response} BaseGetRequestReturnBinary ${objectUrl}/batch ${params} ${version}
|
||||
[Return] ${response}
|
||||
|
||||
GetItemNum
|
||||
[Documentation]
|
||||
... 获取策略对象单元总数
|
||||
...
|
||||
[Arguments] ${objectType} ${objectSubType}
|
||||
[Documentation] 获取策略对象单元总数
|
||||
${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
|
||||
@@ -180,49 +187,56 @@ GetItemNum
|
||||
${total} Run Keyword If "${objectType}"=="fqdn_category" Evaluate ${total} - ${data['total']}
|
||||
... ELSE Set Variable ${total}
|
||||
[Return] ${total}
|
||||
CountLines
|
||||
[Documentation]
|
||||
... 获取文件总行数
|
||||
|
||||
CountLines1
|
||||
[Arguments] ${file}
|
||||
[Documentation] 获取文件总行数
|
||||
${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}
|
||||
${val} Run Keyword If "${line[0]}"=="0" Set Variable ${line[1]}
|
||||
... ELSE Set Variable ${EMPTY}
|
||||
${val2} Run Keyword If "${line[1]}"=="\n" Set Variable ${line[0]}
|
||||
... ELSE Set Variable ${EMPTY}
|
||||
log ${line}
|
||||
log "${line[1]}"
|
||||
${match} Get Regexp Matches ${val} ^-->
|
||||
#${match2} Get Regexp Matches ${val} ^(\t)*$\n
|
||||
${len} Get Length ${match}
|
||||
#${len2} Get Length ${match2}
|
||||
${count} Run Keyword If "${line[0]}"=="0" and ${len}>0 Set Variable ${count}
|
||||
... ELSE Evaluate ${count}+1
|
||||
END
|
||||
[Return] ${count}
|
||||
|
||||
PolicProtocolFields
|
||||
[Documentation]
|
||||
... 策略对象生效协议字段查询
|
||||
[Arguments] ${policyType} ${protocol} ${objectType}
|
||||
[Documentation] 策略对象生效协议字段查询
|
||||
... policyType策略类型
|
||||
... protocol协议
|
||||
... objectType对象类型
|
||||
[Arguments] ${policyType} ${protocol} ${objectType}
|
||||
${dict} Create Dictionary
|
||||
Run Keyword If "${policyType}"!="${EMPTY}" Set To Dictionary ${dict} policyType=${policyType}
|
||||
Run Keyword If "${protocol}"!="${EMPTY}" Set To Dictionary ${dict} protocol=${protocol}
|
||||
Run Keyword If "${objectType}"!="${EMPTY}" Set To Dictionary ${dict} objectType=${objectType}
|
||||
Run Keyword If "${policyType}"!="${EMPTY}" Set To Dictionary ${dict} policyType=${policyType}
|
||||
Run Keyword If "${protocol}"!="${EMPTY}" Set To Dictionary ${dict} protocol=${protocol}
|
||||
Run Keyword If "${objectType}"!="${EMPTY}" Set To Dictionary ${dict} objectType=${objectType}
|
||||
${parmStr} Dictionary-To-QueryParams ${dict}
|
||||
${response} BaseFormRequest ${objectUrl}/protocolFields ${parmStr} ${version}
|
||||
${rescode} Set Variable ${response['code']}
|
||||
${response} BaseFormRequest ${objectUrl}/protocolFields ${parmStr} ${version}
|
||||
${rescode} Set Variable ${response['code']}
|
||||
Should Be Equal As Strings ${rescode} 200
|
||||
[Return] ${response['data']}
|
||||
|
||||
ObjectReference
|
||||
[Documentation]
|
||||
... 策略对象相关性查询
|
||||
[Arguments] ${objectId}
|
||||
[Documentation] 策略对象相关性查询
|
||||
${response} BaseFormRequest ${objectUrl}/reference objectId=${objectId} ${version}
|
||||
${rescode} Set Variable ${response['code']}
|
||||
${rescode} Set Variable ${response['code']}
|
||||
Should Be Equal As Strings ${rescode} 200
|
||||
[Return] ${response['data']}
|
||||
|
||||
AppIdTreeSearch
|
||||
[Documentation]
|
||||
... App ID对象树查询
|
||||
[Arguments] ${referenceObjectId}
|
||||
[Documentation] App ID对象树查询
|
||||
${response} BaseFormRequest ${objectUrl}/appId/tree referenceObjectId=${referenceObjectId} ${version}
|
||||
${rescode} Set Variable ${response['code']}
|
||||
${rescode} Set Variable ${response['code']}
|
||||
Should Be Equal As Strings ${rescode} 200
|
||||
[Return] ${response['data']}
|
||||
@@ -119,18 +119,25 @@ ImportPolicy
|
||||
#待导入的策略总数
|
||||
${totalNum} Get From Dictionary ${fileJson} totalNum
|
||||
#查询已经导入的非内置策略的数量
|
||||
${totalExists} GetPolicyTotal 2
|
||||
${totalExists} GetPolicyTotal 10
|
||||
${calTotal} Evaluate ${totalNum} + ${totalExists}
|
||||
Connect To Database Using Custom Params pymysql ${mysqlHost}
|
||||
${policyLimit} query SELECT cfg_value FROM t_sys_cfg WHERE cfg_name='policy_upper_limit'
|
||||
${policyLimit} Set Variable ${policyLimit[0][0]}
|
||||
${remaining} Evaluate ${policyLimit}-${totalExists}
|
||||
log 策略剩余可导入量为:${remaining}
|
||||
${testType} Evaluate type($policyLimit)
|
||||
Disconnect From Database
|
||||
#jira CHON-12导入限制需求支持
|
||||
Run Keyword If ${calTotal}>1000000 Fail 当前已经存在策略条数${totalExists},待导入条数${totalNum},总数超过100万条!
|
||||
Run Keyword If ${calTotal}>${policyLimit} log 当前已经存在策略条数${totalExists},待导入条数${totalNum},总数超过${policyLimit}条!
|
||||
${binFile} Evaluate (r'import_policy.json',open(r"${path}/${filePath}/${fileName}",'rb'),'application/json')
|
||||
Log ${binFile}
|
||||
${data} Create Dictionary policyType=${policyType}
|
||||
${file} Create Dictionary file=${binFile}
|
||||
${response} BaseMultipartPostRequest ${policyUrl}/batch ${data} ${file} ${version}
|
||||
${response} BaseMultipartPostRequest ${policyUrl}/batch ${data} ${file} ${version2}
|
||||
${rescode} Set Variable ${response['code']}
|
||||
Should Be Equal As Strings ${rescode} 200
|
||||
[Return] ${rescode}
|
||||
[Return] ${rescode} ${totalNum}
|
||||
ExportPolicy
|
||||
[Documentation]
|
||||
... 策略导出
|
||||
|
||||
26
04-CustomLibrary/Library/fileOperations.py
Normal file
26
04-CustomLibrary/Library/fileOperations.py
Normal file
@@ -0,0 +1,26 @@
|
||||
def CountLines(fname):
|
||||
count = 0
|
||||
with open(fname, 'rb') as f:
|
||||
for file_line in f:
|
||||
file_line = file_line.strip()
|
||||
# print(file_line)
|
||||
# 空行
|
||||
if file_line == b'':
|
||||
pass
|
||||
|
||||
# 注释 # 开头
|
||||
elif file_line.startswith(b'-->'):
|
||||
pass
|
||||
|
||||
# 代码
|
||||
else:
|
||||
count += 1
|
||||
print(fname + '----', count)
|
||||
# 单个文件行数
|
||||
# print(fname,'----count:',count)
|
||||
return count
|
||||
def WriteBinary(response,path1):
|
||||
with open(path1,"wb") as f2:
|
||||
strb = response
|
||||
f2.write(strb)
|
||||
|
||||
Reference in New Issue
Block a user