1、提交objects优化关键字(已完成)
2、提交安全策略关键字(未完成)
This commit is contained in:
18
01-TestCase/tsg_ui/ui_security/Security.robot
Normal file
18
01-TestCase/tsg_ui/ui_security/Security.robot
Normal file
@@ -0,0 +1,18 @@
|
|||||||
|
*** Settings ***
|
||||||
|
Force Tags tsg-ui objects tags
|
||||||
|
Resource ../../../02-Keyword/tsg_ui/securityPolicy/SecurityPolicy.robot
|
||||||
|
Library OperatingSystem
|
||||||
|
Resource ../../../02-Keyword/tsg_ui/Menu.robot
|
||||||
|
|
||||||
|
|
||||||
|
*** Test Cases ***
|
||||||
|
case001
|
||||||
|
Menu policys Security Policy
|
||||||
|
SecurityPolicy.CreateButton
|
||||||
|
SecurityPolicy.Create-name case001
|
||||||
|
SecurityPolicy.Create-action deny
|
||||||
|
#SecurityPolicy.Create-Source-Button
|
||||||
|
#SecurityPolicy.Create-Source type1=Ip CreateOrSearch=Create Add=Address name=zdhip001 ipclienttext1=192.168.100.1 post=1
|
||||||
|
SecurityPolicy.Create-Destination-Button
|
||||||
|
SecurityPolicy.Create-Destination type1=Ip CreateOrSearch=Create Add=Address name=zdhip001 ipclienttext1=192.168.100.1 post=1
|
||||||
|
|
||||||
@@ -61,13 +61,24 @@ Create-item
|
|||||||
... AND Create-ip-ClientIP-text ${ipclienttext1} ${post}
|
... AND Create-ip-ClientIP-text ${ipclienttext1} ${post}
|
||||||
run keyword if "${objectform}"=="IP" and "${ip_type}"=="Geography" run keywords click element id=objectAdd_ip1
|
run keyword if "${objectform}"=="IP" and "${ip_type}"=="Geography" run keywords click element id=objectAdd_ip1
|
||||||
... AND sleep 1
|
... AND sleep 1
|
||||||
... AND click element xpath=//*[@id="policy_Manipulation2"]/div[1]/div[2]/div/form/div[4]/div/div[1]/div[2]
|
... AND click element //*[@id="policy_Manipulation2"]/div[1]/div[1]/div[2]/form/div[4]/div/div[1]/div[2]
|
||||||
... AND sleep 1
|
... AND sleep 1
|
||||||
... AND click element xpath=//*[@id="policy_Manipulation2"]/div[1]/div[2]/div/form/div[4]/div/div[1]/div[1]/div[3]
|
|
||||||
... AND Create-Geography ${Country} ${City}
|
... AND Create-Geography ${Country} ${City}
|
||||||
... AND sleep 1
|
... AND sleep 1
|
||||||
... AND click element id=interceptionadd_allcancelobject
|
... AND click element id=interceptionadd_allcancelobjec3t
|
||||||
... AND sleep 1
|
... AND sleep 1
|
||||||
|
run keyword if "${objectform}"=="IP" and "${ip_type}"=="IPLearning" run keywords click element id=objectAdd_ip2
|
||||||
|
... AND sleep 1
|
||||||
|
... AND click element xpath=//*[@id="policy_Manipulation2"]/div[1]/div[1]/div[2]/form/div[4]/div/div[1]
|
||||||
|
... AND sleep 1
|
||||||
|
... AND input text xpath=//*[@id="policy_Manipulation2"]/div[1]/div[1]/div[2]/form/div[4]/div/div[4]/div/div[1]/div[2]/div[1]/div[1]/form/div[1]/div/div[1]/input ${fqdn}
|
||||||
|
... AND click element xpath=//*[@id="policy_Manipulation2"]/div[1]/div[1]/div[2]/form/div[5]/div[1]/div/div/div[2]
|
||||||
|
... AND Learn-From-Protocols ${Protocols1}
|
||||||
|
... AND Learning-Depth ${Degree}
|
||||||
|
... AND input text xpath=//*[@id="policy_Manipulation2"]/div[1]/div[1]/div[2]/form/div[5]/div[3]/div/div[1]/input ${times}
|
||||||
|
... AND input text xpath=//*[@id="policy_Manipulation2"]/div[1]/div[1]/div[2]/form/div[5]/div[4]/div/div[1]/input ${numbers}
|
||||||
|
... AND sleep 1
|
||||||
|
... AND input text xpath=//*[@id="policy_Manipulation2"]/div[1]/div[1]/div[2]/form/div[5]/div[5]/div/div[1]/input ${limits}
|
||||||
run keyword if "${objectform}"=="FQDN" or "${objectform}"=="URL" or "${objectform}"=="Account" run keywords click element xpath=//*[@id="policy_Manipulation2"]/div[1]/div[1]/div[2]/form/div[3]/div/div[1]
|
run keyword if "${objectform}"=="FQDN" or "${objectform}"=="URL" or "${objectform}"=="Account" run keywords click element xpath=//*[@id="policy_Manipulation2"]/div[1]/div[1]/div[2]/form/div[3]/div/div[1]
|
||||||
... AND sleep 1
|
... AND sleep 1
|
||||||
... AND Create-keyword-text ${objectform} ${keywordtext}
|
... AND Create-keyword-text ${objectform} ${keywordtext}
|
||||||
@@ -98,16 +109,16 @@ Create-item--groupadd
|
|||||||
# Click element xpath=//*[@id="el-popover-2756"]/div[1]/div[2]/div/div[8]/div
|
# Click element xpath=//*[@id="el-popover-2756"]/div[1]/div[2]/div/div[8]/div
|
||||||
|
|
||||||
|
|
||||||
run keyword if "${objectform}"=="IP" and "${ip_type}"=="Ip" run keywords click element xpath=//*[@id="policy_Manipulation2"]/div[2]/div[2]/div/form/div[4]/div/div[1]
|
run keyword if "${objectform}"=="IP" and "${ip_type}"=="Ip" run keywords click element xpath=//*[@id="policy_Manipulation2"]/div[1]/div[1]/div[2]/form/div[4]/div/div/div[2]
|
||||||
... AND sleep 1
|
... AND sleep 1
|
||||||
... AND Create-ip-ClientIP-text ${ipclienttext1} ${post}
|
... AND Create-ip-ClientIP-text ${ipclienttext1} ${post}
|
||||||
run keyword if "${objectform}"=="IP" and "${ip_type}"=="Geography" run keywords click element xpath=//*[@id="objectAdd_geography"]
|
run keyword if "${objectform}"=="IP" and "${ip_type}"=="Geography" run keywords click element id=objectAdd_ip1
|
||||||
... AND sleep 1
|
... AND sleep 1
|
||||||
... AND click element id=objectAddItemAdd
|
... AND click element xpath=//*[@id="policy_Manipulation2"]/div[1]/div[1]/div[2]/form/div[4]/div/div/div[2]
|
||||||
... AND sleep 1
|
... AND sleep 1
|
||||||
... AND Create-Geography ${Country} ${City}
|
... AND Create-Geography ${Country} ${City}
|
||||||
... AND sleep 1
|
... AND sleep 1
|
||||||
... AND click element id=interceptionadd_allcancelobject
|
... AND click element id=interceptionadd_allcancelobjec3t
|
||||||
... AND sleep 1
|
... AND sleep 1
|
||||||
run keyword if "${objectform}"=="FQDN" or "${objectform}"=="SubscriberID" or "${objectform}"=="URL" or "${objectform}"=="Category" or "${objectform}"=="Account" run keywords click element xpath=//*[@id="objects_ip3"]/div[1]/div[2]/form/div[3]/div/div[1]/div[2]/p[2]
|
run keyword if "${objectform}"=="FQDN" or "${objectform}"=="SubscriberID" or "${objectform}"=="URL" or "${objectform}"=="Category" or "${objectform}"=="Account" run keywords click element xpath=//*[@id="objects_ip3"]/div[1]/div[2]/form/div[3]/div/div[1]/div[2]/p[2]
|
||||||
... AND sleep 1
|
... AND sleep 1
|
||||||
@@ -127,7 +138,29 @@ Create-item--groupadd
|
|||||||
... AND Create-ReqRes-hexmode ${hex}
|
... AND Create-ReqRes-hexmode ${hex}
|
||||||
... AND Create-item-ok ${objectform}
|
... AND Create-item-ok ${objectform}
|
||||||
|
|
||||||
|
Learn-From-Protocols
|
||||||
|
[Arguments] ${Protocols1}
|
||||||
|
[Documentation] 调用次关键字前需要添加必填参数:
|
||||||
|
... ${Protocols1}:填入HTTP或SSL或者HTTPSSL
|
||||||
|
... 判断选择用什么样的协议
|
||||||
|
run keyword if "${Protocols1}"=="HTTP" run keywords sleep 1
|
||||||
|
... AND click element xpath=/html/body/div[6]/div[1]/div[1]/ul/li[1]
|
||||||
|
run keyword if "${Protocols1}"=="SSL" run keywords sleep 1
|
||||||
|
... AND click element xpath=/html/body/div[6]/div[1]/div[1]/ul/li[2]
|
||||||
|
run keyword if "${Protocols1}"=="HTTPSSL" run keywords sleep 1
|
||||||
|
... AND click element xpath=/html/body/div[6]/div[1]/div[1]/ul/li[1]
|
||||||
|
... AND sleep 1
|
||||||
|
... AND click element xpath=/html/body/div[6]/div[1]/div[1]/ul/li[2]
|
||||||
|
|
||||||
|
Learning-Depth
|
||||||
|
[Arguments] ${Degree}
|
||||||
|
[Documentation] 调用次关键字前需要添加必填参数:
|
||||||
|
... ${Degree}:填入1Degree或2Degree
|
||||||
|
... 判断是用1Degree或2Degree
|
||||||
|
run keyword if "${Degree}"=="1Degree" run keywords sleep 1
|
||||||
|
... AND click element xpath=//*[@id="policy_Manipulation2"]/div[1]/div[1]/div[2]/form/div[5]/div[2]/div/div/label[1]
|
||||||
|
run keyword if "${Degree}"=="2Degree" run keywords sleep 1
|
||||||
|
... AND click element xpath=//*[@id="policy_Manipulation2"]/div[1]/div[1]/div[2]/form/div[5]/div[2]/div/div/label[2]
|
||||||
swatches_btn
|
swatches_btn
|
||||||
Create-item-Add
|
Create-item-Add
|
||||||
[Arguments] ${Type}
|
[Arguments] ${Type}
|
||||||
@@ -649,7 +682,7 @@ Cerate-Group-groupadd
|
|||||||
... AND Create-ok-groupadd
|
... AND Create-ok-groupadd
|
||||||
... AND Create-Sub-Objects ${object_name}
|
... AND Create-Sub-Objects ${object_name}
|
||||||
Create-Sub-Objects-groupadd
|
Create-Sub-Objects-groupadd
|
||||||
[Arguments] ${buildType} ${groupaddType} ${name} ${objectform} ${groupadd} ${object_name} ${objectform} ${ip_type} ${ipclienttext1} ${keywordtext} ${hex} ${reqrestype} ${reqresheader}
|
[Arguments] ${buildType} ${groupaddType} ${name} ${objectform} ${groupadd} ${object_name} ${ip_type} ${ipclienttext1} ${keywordtext} ${hex} ${reqrestype} ${reqresheader}
|
||||||
... ${post} ${Country} ${City}
|
... ${post} ${Country} ${City}
|
||||||
sleep 1
|
sleep 1
|
||||||
click element id=objectAddSubAdd1
|
click element id=objectAddSubAdd1
|
||||||
@@ -658,7 +691,7 @@ Create-Sub-Objects-groupadd
|
|||||||
Create-name-groupadd ${name}
|
Create-name-groupadd ${name}
|
||||||
${groupadd} Set Variable close
|
${groupadd} Set Variable close
|
||||||
run keyword if "${groupaddType}"=="singletype" NewObject.Create-item--groupadd ${buildType} ${name} ${objectform} ${ip_type} ${ipclienttext1} ${keywordtext} ${hex} ${reqrestype} ${reqresheader} ${post} ${Country} ${City}
|
run keyword if "${groupaddType}"=="singletype" NewObject.Create-item--groupadd ${buildType} ${name} ${objectform} ${ip_type} ${ipclienttext1} ${keywordtext} ${hex} ${reqrestype} ${reqresheader} ${post} ${Country} ${City}
|
||||||
run keyword if "${groupaddType}"=="grouptype" NewObject.Cerate-Group-groupadd ${buildType} ${name} ${objectform} ${groupadd} ${object_name} ${objectform} ${ip_type} ${ipclienttext1} ${keywordtext} ${hex} ${reqrestype} ${reqresheader} ${post} ${Country} ${City}
|
run keyword if "${groupaddType}"=="grouptype" NewObject.Cerate-Group-groupadd ${buildType} ${name} ${objectform} ${groupadd} ${object_name} ${ip_type} ${ipclienttext1} ${keywordtext} ${hex} ${reqrestype} ${reqresheader} ${post} ${Country} ${City}
|
||||||
|
|
||||||
|
|
||||||
Select-ip_type-group
|
Select-ip_type-group
|
||||||
@@ -666,7 +699,7 @@ Select-ip_type-group
|
|||||||
run keyword if "${ip_type}"=="Ip" sleep 1
|
run keyword if "${ip_type}"=="Ip" sleep 1
|
||||||
|
|
||||||
run keyword if "${ip_type}"=="Geography" run keywords sleep 1
|
run keyword if "${ip_type}"=="Geography" run keywords sleep 1
|
||||||
... AND click element xpath=//*[@id="objects_ip3"]/div[1]/div[2]/form/div[3]/div/div/label[2]
|
... AND click element id=objectAdd_ip1
|
||||||
... AND sleep 1
|
... AND sleep 1
|
||||||
Select-ip_type
|
Select-ip_type
|
||||||
[Arguments] ${ip_type}
|
[Arguments] ${ip_type}
|
||||||
|
|||||||
@@ -1,27 +1,441 @@
|
|||||||
*** Settings ***
|
*** Settings ***
|
||||||
Library Selenium2Library
|
Library Selenium2Library
|
||||||
|
Resource ../objects/NewObject.robot
|
||||||
|
|
||||||
*** Keywords ***
|
*** Keywords ***
|
||||||
CreateButton
|
CreateButton
|
||||||
Wait Until Element Is Enabled id=proxyInterception_create
|
[Documentation] 点击安全策略中的Create按钮
|
||||||
|
Wait Until Element Is Enabled id=app_create
|
||||||
sleep 3
|
sleep 3
|
||||||
click element id=proxyInterception_create
|
click element id=app_create
|
||||||
|
|
||||||
Create-name
|
Create-name
|
||||||
[Arguments] ${name}
|
[Arguments] ${name}
|
||||||
|
[Documentation] 输入name
|
||||||
sleep 2
|
sleep 2
|
||||||
input text id=interceptionadd_name ${name}
|
input text id=interceptionadd_name ${name}
|
||||||
|
|
||||||
Create-action
|
Create-action
|
||||||
[Arguments] ${action}
|
[Arguments] ${action}
|
||||||
|
[Documentation] 调用次关键字前需要添加必填参数:
|
||||||
|
... ${action}:填入allow或deny或monitor或intercept
|
||||||
|
... 判断要创建什么动作的策略
|
||||||
|
sleep 1
|
||||||
run keyword if "${action}"=="allow" run keywords sleep 1
|
run keyword if "${action}"=="allow" run keywords sleep 1
|
||||||
... AND click element id=security_action_Allow
|
... AND click element id=security_action_allow
|
||||||
... ELSE IF "${action}"=="deny" run keywords sleep 1
|
... ELSE IF "${action}"=="deny" run keywords sleep 1
|
||||||
... AND click element id=security_action_Deny
|
... AND click element id=security_action_deny
|
||||||
... ELSE IF "${action}"=="monitor" run keywords sleep 1
|
... ELSE IF "${action}"=="monitor" run keywords sleep 1
|
||||||
... AND click element id=security_action_Monitor
|
... AND click element id=security_action_monitor
|
||||||
... ELSE IF "${action}"=="intercept" run keywords sleep 1
|
... ELSE IF "${action}"=="intercept" run keywords sleep 1
|
||||||
... AND click element id=security_action_Intercept
|
... AND click element id=security_action_intercept
|
||||||
|
|
||||||
|
Create-Source-Button
|
||||||
|
[Documentation] 点击Source的加号
|
||||||
|
sleep 2
|
||||||
|
click element xpath=/html/body/div[1]/div/div[3]/div[2]/div/div[1]/form/div/div[4]/div[1]/div/div
|
||||||
|
|
||||||
|
Create-Destination-Button
|
||||||
|
[Documentation] 点击Destination的加号
|
||||||
|
sleep 2
|
||||||
|
click element xpath=/html/body/div[1]/div/div[3]/div[2]/div/div[1]/form/div/div[5]/div[1]/div/div
|
||||||
|
Create-Application-Button
|
||||||
|
[Documentation] 点击Application的加号
|
||||||
|
sleep 2
|
||||||
|
click element id=interceptionadd_application
|
||||||
|
|
||||||
|
ApplicationSearch
|
||||||
|
[Arguments] ${Application}
|
||||||
|
[Documentation] 调用次关键字前需要添加必填参数:
|
||||||
|
... ${Application}:填入是Application的内容,例如SSL或HTTP
|
||||||
|
... 选择search对象
|
||||||
|
input text xpath=/html/body/div[1]/div/div[3]/div[2]/div/div[5]/div[2]/div[2]/div/div[1]/input ${i}
|
||||||
|
sleep 1
|
||||||
|
press keys xpath=/html/body/div[1]/div/div[3]/div[2]/div/div[5]/div[2]/div[2]/div/div[1]/input ENTER
|
||||||
|
sleep 1
|
||||||
|
click element xpath=/html/body/div[1]/div/div[3]/div[2]/div/div[5]/div[2]/div[2]/div/div[2]/div/div/ul/li[1]
|
||||||
|
sleep 1
|
||||||
|
|
||||||
|
Create-Source
|
||||||
|
[Arguments] ${type1}=null ${CreateOrSearch}=null ${Add}=null ${name}=null
|
||||||
|
... ${object_name}=null ${ipclienttext1}=null ${post}=null ${Country}=null ${City}=null
|
||||||
|
... ${Protocols1}=null ${Degree}=null ${times}=null ${numbers}=null ${limits}=null ${keywordtext}=null
|
||||||
|
[Documentation] 调用次关键字前需要添加必填参数:
|
||||||
|
... ${type1}:填入Ip或SUBID或Geography或IPLearning
|
||||||
|
... ${CreateOrSearch}:填入Create或者Search
|
||||||
|
... ${Add}:填入Address或Group
|
||||||
|
... ${name}:名称
|
||||||
|
... ${ip_type}:填入Ip或者Geography或者IPLearning
|
||||||
|
... ${ipclienttext1}:填入IPV4或6的值或range的ip段
|
||||||
|
... ${post}:填入端口
|
||||||
|
... ${Country}:列表形式,列表中是国家名字
|
||||||
|
... ${City}:列表形式,列表中是城市名字
|
||||||
|
... ${Protocols1}:填入HTTP或SSL或HTTPSSL
|
||||||
|
... ${Degree}:填入1Degree或2Degree
|
||||||
|
... ${times}:填入小时数,例如1或2
|
||||||
|
... ${numbers}:填入数值,例如1或10000
|
||||||
|
... ${limits}:填入数值,例如1或10000
|
||||||
|
... ${object_name}:列表形式,列表中是对象的名字
|
||||||
|
... ${keywordtext}:填入新建subid的内容
|
||||||
|
... 判断新建source选择用什么样的类型数据
|
||||||
|
run keyword if "${type1}"=="Ip" run keywords sleep 1
|
||||||
|
... AND click element xpath=/html/body/div[1]/div/div[3]/div[2]/div/div[1]/form/div/div[4]/div[2]/div[1]/div[2]/div[1]/div/div/div/div[1]/div/div/div/div[1]
|
||||||
|
... AND sleep 1
|
||||||
|
... AND sleep 1
|
||||||
|
... AND SourceSourceIPCreateOrSearch ${CreateOrSearch} ${Add} ${type1} ${name} ${object_name} ${ipclienttext1} ${post} ${Country} ${City} ${Protocols1} ${Degree} ${times} ${numbers} ${limits}
|
||||||
|
... ELSE IF "${type1}"=="SUBID" run keywords sleep 1
|
||||||
|
... AND click element xpath=/html/body/div[1]/div/div[3]/div[2]/div/div[1]/form/div/div[4]/div[2]/div[1]/div[2]/div[1]/div/div/div/div[1]/div/div/div/div[2]
|
||||||
|
... AND sleep 1
|
||||||
|
... AND SUBIDCreateOrSearch ${name} ${keywordtext} ${object_name}
|
||||||
|
... ELSE IF "${type1}"=="Geography" run keywords sleep 1
|
||||||
|
... AND click element xpath=/html/body/div[1]/div/div[3]/div[2]/div/div[1]/form/div/div[4]/div[2]/div[1]/div[2]/div[1]/div/div/div/div[1]/div/div/div/div[3]
|
||||||
|
... AND sleep 1
|
||||||
|
... AND SourceIPCreateOrSearch ${CreateOrSearch} ${Add} ${type1} ${name} ${object_name} ${ipclienttext1} ${post} ${Country} ${City} ${Protocols1} ${Degree} ${times} ${numbers} ${limits}
|
||||||
|
... ELSE IF "${type1}"=="IPLearning" run keywords sleep 1
|
||||||
|
... AND click element xpath=/html/body/div[1]/div/div[3]/div[2]/div/div[1]/form/div/div[4]/div[2]/div[1]/div[2]/div[1]/div/div/div/div[1]/div/div/div/div[4]
|
||||||
|
... AND sleep 1
|
||||||
|
... AND SourceIPCreateOrSearch ${CreateOrSearch} ${Add} ${type1} ${name} ${object_name} ${ipclienttext1} ${post} ${Country} ${City} ${Protocols1} ${Degree} ${times} ${numbers} ${limits}
|
||||||
|
|
||||||
|
Create-Destination
|
||||||
|
[Arguments] ${type1}=null ${CreateOrSearch}=null ${Add}=null ${name}=null
|
||||||
|
... ${object_name}=null ${ipclienttext1}=null ${post}=null ${Country}=null ${City}=null
|
||||||
|
... ${Protocols1}=null ${Degree}=null ${times}=null ${numbers}=null ${limits}=null ${keywordtext}=null
|
||||||
|
[Documentation] 调用次关键字前需要添加必填参数:
|
||||||
|
... ${type1}:填入Ip或SUBID或Geography或IPLearning
|
||||||
|
... ${CreateOrSearch}:填入Create或者Search
|
||||||
|
... ${Add}:填入Address或Group
|
||||||
|
... ${name}:名称
|
||||||
|
... ${ip_type}:填入Ip或者Geography或者IPLearning
|
||||||
|
... ${ipclienttext1}:填入IPV4或6的值或range的ip段
|
||||||
|
... ${post}:填入端口
|
||||||
|
... ${Country}:列表形式,列表中是国家名字
|
||||||
|
... ${City}:列表形式,列表中是城市名字
|
||||||
|
... ${Protocols1}:填入HTTP或SSL或HTTPSSL
|
||||||
|
... ${Degree}:填入1Degree或2Degree
|
||||||
|
... ${times}:填入小时数,例如1或2
|
||||||
|
... ${numbers}:填入数值,例如1或10000
|
||||||
|
... ${limits}:填入数值,例如1或10000
|
||||||
|
... ${object_name}:列表形式,列表中是对象的名字
|
||||||
|
... ${keywordtext}:填入新建subid的内容
|
||||||
|
... 判断新建source选择用什么样的类型数据
|
||||||
|
run keyword if "${type1}"=="Ip" run keywords sleep 1
|
||||||
|
... AND click element xpath=/html/body/div[1]/div/div[3]/div[2]/div/div[1]/form/div/div[5]/div[2]/div[1]/div[2]/div[1]/div/div/div/div[1]/div/div/div/div[1]
|
||||||
|
... AND sleep 1
|
||||||
|
... AND sleep 1
|
||||||
|
... AND DestinationIPCreateOrSearch ${CreateOrSearch} ${Add} ${type1} ${name} ${object_name} ${ipclienttext1} ${post} ${Country} ${City} ${Protocols1} ${Degree} ${times} ${numbers} ${limits}
|
||||||
|
... ELSE IF "${type1}"=="Geography" run keywords sleep 1
|
||||||
|
... AND click element xpath=/html/body/div[1]/div/div[3]/div[2]/div/div[1]/form/div/div[5]/div[2]/div[1]/div[2]/div[1]/div/div/div/div[1]/div/div/div/div[3]
|
||||||
|
... AND sleep 1
|
||||||
|
... AND DestinationIPCreateOrSearch ${CreateOrSearch} ${Add} ${type1} ${name} ${object_name} ${ipclienttext1} ${post} ${Country} ${City} ${Protocols1} ${Degree} ${times} ${numbers} ${limits}
|
||||||
|
... ELSE IF "${type1}"=="IPLearning" run keywords sleep 1
|
||||||
|
... AND click element xpath=/html/body/div[1]/div/div[3]/div[2]/div/div[1]/form/div/div[5]/div[2]/div[1]/div[2]/div[1]/div/div/div/div[1]/div/div/div/div[4]
|
||||||
|
... AND sleep 1
|
||||||
|
... AND DestinationCreateOrSearch ${CreateOrSearch} ${Add} ${type1} ${name} ${object_name} ${ipclienttext1} ${post} ${Country} ${City} ${Protocols1} ${Degree} ${times} ${numbers} ${limits}
|
||||||
|
|
||||||
|
|
||||||
|
SourceIPCreateOrSearch
|
||||||
|
[Arguments] ${CreateOrSearch} ${Add} ${ip_type} ${name} ${object_name} ${ipclienttext1}
|
||||||
|
... ${post} ${Country} ${City} ${Protocols1} ${Degree} ${times} ${numbers} ${limits}
|
||||||
|
[Documentation] 调用次关键字前需要添加必填参数:
|
||||||
|
... ${CreateOrSearch}:填入Create或者Search
|
||||||
|
... ${Add}:填入Address或Group
|
||||||
|
... ${name}:名称
|
||||||
|
... ${ip_type}:填入Ip或者Geography或者IPLearning
|
||||||
|
... ${ipclienttext1}:填入IPV4或6的值或range的ip段
|
||||||
|
... ${post}:填入端口
|
||||||
|
... ${Country}:列表形式,列表中是国家名字
|
||||||
|
... ${City}:列表形式,列表中是城市名字
|
||||||
|
... ${Protocols1}:填入HTTP或SSL或HTTPSSL
|
||||||
|
... ${Degree}:填入1Degree或2Degree
|
||||||
|
... ${times}:填入小时数,例如1或2
|
||||||
|
... ${numbers}:填入数值,例如1或10000
|
||||||
|
... ${limits}:填入数值,例如1或10000
|
||||||
|
... ${object_name}:列表形式,列表中是对象的名字
|
||||||
|
... 判断是新建ip还是搜索添加ip
|
||||||
|
run keyword if "${CreateOrSearch}"=="Create" run keywords sleep 1
|
||||||
|
... AND click element id=interceptionadd_proaddaddSource
|
||||||
|
... AND SourceIPAdd ${Add} ${ip_type} ${name} ${object_name} ${ipclienttext1} ${post} ${Country} ${City} ${Protocols1} ${Degree} ${times} ${numbers} ${limits}
|
||||||
|
... ELSE IF "${CreateOrSearch}"=="Search" run keywords sleep 1
|
||||||
|
... AND SourceSearchSearch ${object_name}
|
||||||
|
SUBIDCreateOrSearch
|
||||||
|
[Arguments] ${name} ${keywordtext} ${object_name}
|
||||||
|
[Documentation] 调用次关键字前需要添加必填参数:
|
||||||
|
... ${CreateOrSearch}:填入Create或者Search
|
||||||
|
... ${name}:名称
|
||||||
|
... ${keywordtext}:填入新建subid的内容
|
||||||
|
... ${object_name}:列表形式,列表中是对象的名字
|
||||||
|
... 判断是新建subid还是搜索添加subid
|
||||||
|
run keyword if "${CreateOrSearch}"=="Create" run keywords sleep 1
|
||||||
|
... AND click element id=interceptionadd_proaddaddSource
|
||||||
|
... AND SUBIDAdd ${Add} ${name} ${keywordtext} ${object_name}
|
||||||
|
... ELSE IF "${CreateOrSearch}"=="Search" run keywords sleep 1
|
||||||
|
... AND SourceSearchSearch ${object_name}
|
||||||
|
DestinationIPCreateOrSearch
|
||||||
|
[Arguments] ${CreateOrSearch} ${Add} ${ip_type} ${name} ${object_name} ${ipclienttext1}
|
||||||
|
... ${post} ${Country} ${City} ${Protocols1} ${Degree} ${times} ${numbers} ${limits}
|
||||||
|
[Documentation] 调用次关键字前需要添加必填参数:
|
||||||
|
... ${CreateOrSearch}:填入Create或者Search
|
||||||
|
... ${Add}:填入Address或Group
|
||||||
|
... ${name}:名称
|
||||||
|
... ${ip_type}:填入Ip或者Geography或者IPLearning
|
||||||
|
... ${ipclienttext1}:填入IPV4或6的值或range的ip段
|
||||||
|
... ${post}:填入端口
|
||||||
|
... ${Country}:列表形式,列表中是国家名字
|
||||||
|
... ${City}:列表形式,列表中是城市名字
|
||||||
|
... ${Protocols1}:填入HTTP或SSL或HTTPSSL
|
||||||
|
... ${Degree}:填入1Degree或2Degree
|
||||||
|
... ${times}:填入小时数,例如1或2
|
||||||
|
... ${numbers}:填入数值,例如1或10000
|
||||||
|
... ${limits}:填入数值,例如1或10000
|
||||||
|
... ${object_name}:列表形式,列表中是对象的名字
|
||||||
|
... 判断是新建ip还是搜索添加ip
|
||||||
|
run keyword if "${CreateOrSearch}"=="Create" run keywords sleep 1
|
||||||
|
... AND click element id=interceptionadd_proaddaddDestination
|
||||||
|
... AND DestinationIPAdd ${Add} ${ip_type} ${name} ${object_name} ${ipclienttext1} ${post} ${Country} ${City} ${Protocols1} ${Degree} ${times} ${numbers} ${limits}
|
||||||
|
... ELSE IF "${CreateOrSearch}"=="Search" run keywords sleep 1
|
||||||
|
... AND DestinationSearch ${object_name}
|
||||||
|
SourceSearch
|
||||||
|
[Arguments] ${name}
|
||||||
|
[Documentation] 调用次关键字前需要添加必填参数:
|
||||||
|
... ${name}:填入是一个列表,列表内容为source的name
|
||||||
|
... 选择search对象
|
||||||
|
FOR ${i} IN @{name}
|
||||||
|
input text xpath=/html/body/div[1]/div/div[3]/div[2]/div/div[1]/form/div/div[4]/div[2]/div[1]/div[2]/div[2]/div/div[1]/input ${i}
|
||||||
|
sleep 1
|
||||||
|
press keys xpath=/html/body/div[1]/div/div[3]/div[2]/div/div[1]/form/div/div[4]/div[2]/div[1]/div[2]/div[2]/div/div[1]/input ENTER
|
||||||
|
sleep 1
|
||||||
|
click element xpath=/html/body/div[1]/div/div[3]/div[2]/div/div[1]/form/div/div[4]/div[2]/div[1]/div[2]/div[2]/div/div[2]/div/div/ul/li[1]
|
||||||
|
sleep 1
|
||||||
|
END
|
||||||
|
DestinationSearch
|
||||||
|
[Arguments] ${name}
|
||||||
|
[Documentation] 调用次关键字前需要添加必填参数:
|
||||||
|
... ${name}:填入是一个列表,列表内容为source的name
|
||||||
|
... 选择search对象
|
||||||
|
FOR ${i} IN @{name}
|
||||||
|
input text xpath=/html/body/div[1]/div/div[3]/div[2]/div/div[1]/form/div/div[5]/div[2]/div[1]/div[2]/div[2]/div/div[1]/input ${i}
|
||||||
|
sleep 1
|
||||||
|
press keys xpath=/html/body/div[1]/div/div[3]/div[2]/div/div[1]/form/div/div[5]/div[2]/div[1]/div[2]/div[2]/div/div[1]/input ENTER
|
||||||
|
sleep 1
|
||||||
|
click element xpath=/html/body/div[1]/div/div[3]/div[2]/div/div[1]/form/div/div[5]/div[2]/div[1]/div[2]/div[2]/div/div[2]/div/div/ul/li[1]
|
||||||
|
sleep 1
|
||||||
|
END
|
||||||
|
SUBIDAdd
|
||||||
|
[Arguments] ${Add} ${name} ${keywordtext} ${object_name}
|
||||||
|
[Documentation] 调用次关键字前需要添加必填参数:
|
||||||
|
... ${Add}:填入Address或Group
|
||||||
|
... ${name}:名称
|
||||||
|
... ${keywordtext}:填入新建subid的内容
|
||||||
|
... ${object_name}:列表形式,列表中是对象的名字
|
||||||
|
... 判断是新建subid还是新建subid分组
|
||||||
|
run keyword if "${Add}"=="Address" run keywords sleep 1
|
||||||
|
... AND click element xpath=/html/body/ul/li[1]
|
||||||
|
... AND sleep 1
|
||||||
|
... AND SUBAddress ${name} ${keywordtext}
|
||||||
|
... ELSE IF "${Add}"=="Group" run keywords sleep 1
|
||||||
|
... AND click element xpath=/html/body/ul/li[2]
|
||||||
|
... AND sleep 1
|
||||||
|
... AND SUBGroupAdd ${name} ${object_name}
|
||||||
|
SUBAddress
|
||||||
|
[Arguments] ${name} ${keywordtext}
|
||||||
|
[Documentation] 调用次关键字前需要添加必填参数:
|
||||||
|
... ${name}:名称
|
||||||
|
... ${keywordtext}:填入新建subid的内容
|
||||||
|
... 新建subid
|
||||||
|
SourceCreate-name ${name}
|
||||||
|
click element xpath=//*[@id="policy_Manipulation2"]/div[1]/div[1]/div[2]/form/div[3]/div/div[1]/i
|
||||||
|
sleep 1
|
||||||
|
Create-SubscriberID-text ${keywordtext}
|
||||||
|
sleep 1
|
||||||
|
|
||||||
|
SUBGroupAdd
|
||||||
|
[Arguments] ${name} ${object_name}
|
||||||
|
[Documentation] 调用次关键字前需要添加必填参数:
|
||||||
|
... ${name}:名称
|
||||||
|
... ${object_name}:列表形式,列表中是对象的名字
|
||||||
|
... 新建subid分组
|
||||||
|
SourceCreate-name ${name}
|
||||||
|
click element xpath=//*[@id="policy_Manipulation2"]/div[1]/div[1]/div[2]/form/div[3]/div/div/div[2]
|
||||||
|
sleep 1
|
||||||
|
Create-Sub-Objects ${object_name}
|
||||||
|
NewObject.Create-ok
|
||||||
|
SourceIPAdd
|
||||||
|
[Arguments] ${Add} ${ip_type} ${name} ${object_name} ${ipclienttext1} ${post} ${Country} ${City} ${Protocols1} ${Degree} ${times} ${numbers} ${limits}
|
||||||
|
[Documentation] 调用次关键字前需要添加必填参数:
|
||||||
|
... ${Add}:填入Address或Group
|
||||||
|
... ${ip_type}:填入IP或者Geography或者IPLearning
|
||||||
|
... 判断是新建ip还是新建ip分组
|
||||||
|
run keyword if "${Add}"=="Address" run keywords sleep 1
|
||||||
|
... AND click element xpath=/html/body/ul/li[1]
|
||||||
|
... AND sleep 1
|
||||||
|
... AND IPAddress ${name} ${ip_type} ${ipclienttext1} ${post} ${Country} ${City} ${Protocols1} ${Degree} ${times} ${numbers} ${limits}
|
||||||
|
... ELSE IF "${Add}"=="Group" run keywords sleep 1
|
||||||
|
... AND click element xpath=/html/body/ul/li[2]
|
||||||
|
... AND sleep 1
|
||||||
|
... AND IPGroupAdd ${name} ${ip_type} ${object_name}
|
||||||
|
SourceIPAddress
|
||||||
|
[Arguments] ${name} ${ip_type} ${ipclienttext1} ${post} ${Country} ${City} ${Protocols1} ${Degree} ${times} ${numbers} ${limits}
|
||||||
|
[Documentation] 调用次关键字前需要添加必填参数:
|
||||||
|
... ${name}:名称
|
||||||
|
... ${ip_type}:填入Ip或者Geography或者IPLearning
|
||||||
|
... ${ipclienttext1}:填入IPV4或6的值或range的ip段
|
||||||
|
... ${post}:填入端口
|
||||||
|
... ${Country}:列表形式,列表中是国家名字
|
||||||
|
... ${City}:列表形式,列表中是城市名字
|
||||||
|
... ${Protocols1}:填入HTTP或SSL或HTTPSSL
|
||||||
|
... ${Degree}:填入1Degree或2Degree
|
||||||
|
... ${times}:填入小时数,例如1或2
|
||||||
|
... ${numbers}:填入数值,例如1或10000
|
||||||
|
... ${limits}:填入数值,例如1或10000
|
||||||
|
... 判断 新建选择用什么样的类型,并进行新建
|
||||||
|
SourceCreate-name ${name}
|
||||||
|
sleep 1
|
||||||
|
run keyword if "${ip_type}"=="Ip" run keywords click element xpath=//*[@id="policy_Manipulation2"]/div[1]/div[1]/div[2]/form/div[4]/div/div[1]
|
||||||
|
... AND sleep 1
|
||||||
|
... AND NewObject.Create-ip-ClientIP-text ${ipclienttext1} ${post}
|
||||||
|
run keyword if "${ip_type}"=="Geography" run keywords click element id=objectAdd_ip1
|
||||||
|
... AND sleep 1
|
||||||
|
... AND click element xpath=//*[@id="policy_Manipulation2"]/div[1]/div[1]/div[2]/form/div[4]/div/div[1]/div[2]
|
||||||
|
... AND sleep 1
|
||||||
|
... AND NewObject.Create-Geography ${Country} ${City}
|
||||||
|
... AND sleep 1
|
||||||
|
... AND click element id=interceptionadd_allcancelobjec3t
|
||||||
|
... AND sleep 1
|
||||||
|
run keyword if "${ip_type}"=="IPLearning" run keywords click element id=objectAdd_ip2
|
||||||
|
... AND sleep 1
|
||||||
|
... AND click element xpath=//*[@id="policy_Manipulation2"]/div[1]/div[1]/div[2]/form/div[4]/div/div[1]
|
||||||
|
... AND sleep 1
|
||||||
|
... AND input text xpath=//*[@id="policy_Manipulation2"]/div[1]/div[1]/div[2]/form/div[4]/div/div[4]/div/div[1]/div[2]/div[1]/div[1]/form/div[1]/div/div[1]/input ${fqdn}
|
||||||
|
... AND sleep 1
|
||||||
|
... AND click element xpath=//*[@id="policy_Manipulation2"]/div[1]/div[1]/div[2]/form/div[5]/div[1]/div/div/div[2]
|
||||||
|
... AND sleep 1
|
||||||
|
... AND Learn-From-Protocols ${Protocols1}
|
||||||
|
... AND Learning-Depth ${Degree}
|
||||||
|
... AND sleep 1
|
||||||
|
... AND input text xpath=//*[@id="policy_Manipulation2"]/div[1]/div[1]/div[2]/form/div[5]/div[3]/div/div[1]/input ${times}
|
||||||
|
... AND sleep 1
|
||||||
|
... AND input text xpath=//*[@id="policy_Manipulation2"]/div[1]/div[1]/div[2]/form/div[5]/div[4]/div/div[1]/input ${numbers}
|
||||||
|
... AND sleep 1
|
||||||
|
... AND input text xpath=//*[@id="policy_Manipulation2"]/div[1]/div[1]/div[2]/form/div[5]/div[5]/div/div[1]/input ${limits}
|
||||||
|
... AND sleep 1
|
||||||
|
SourceCreate-ok
|
||||||
|
|
||||||
|
DestinationIPAdd
|
||||||
|
[Arguments] ${Add} ${ip_type} ${name} ${object_name} ${ipclienttext1} ${post} ${Country} ${City} ${Protocols1} ${Degree} ${times} ${numbers} ${limits}
|
||||||
|
[Documentation] 调用次关键字前需要添加必填参数:
|
||||||
|
... ${Add}:填入Address或Group
|
||||||
|
... ${ip_type}:填入IP或者Geography或者IPLearning
|
||||||
|
... 判断是新建ip还是新建ip分组
|
||||||
|
run keyword if "${Add}"=="Address" run keywords sleep 1
|
||||||
|
... AND click element xpath=/html/body/ul/li[1]
|
||||||
|
... AND sleep 1
|
||||||
|
... AND DestinationIPAddress ${name} ${ip_type} ${ipclienttext1} ${post} ${Country} ${City} ${Protocols1} ${Degree} ${times} ${numbers} ${limits}
|
||||||
|
... ELSE IF "${Add}"=="Group" run keywords sleep 1
|
||||||
|
... AND click element xpath=/html/body/ul/li[2]
|
||||||
|
... AND sleep 1
|
||||||
|
... AND IPGroupAdd ${name} ${ip_type} ${object_name}
|
||||||
|
DestinationIPAddress
|
||||||
|
[Arguments] ${name} ${ip_type} ${ipclienttext1} ${post} ${Country} ${City} ${Protocols1} ${Degree} ${times} ${numbers} ${limits}
|
||||||
|
[Documentation] 调用次关键字前需要添加必填参数:
|
||||||
|
... ${name}:名称
|
||||||
|
... ${ip_type}:填入Ip或者Geography或者IPLearning
|
||||||
|
... ${ipclienttext1}:填入IPV4或6的值或range的ip段
|
||||||
|
... ${post}:填入端口
|
||||||
|
... ${Country}:列表形式,列表中是国家名字
|
||||||
|
... ${City}:列表形式,列表中是城市名字
|
||||||
|
... ${Protocols1}:填入HTTP或SSL或HTTPSSL
|
||||||
|
... ${Degree}:填入1Degree或2Degree
|
||||||
|
... ${times}:填入小时数,例如1或2
|
||||||
|
... ${numbers}:填入数值,例如1或10000
|
||||||
|
... ${limits}:填入数值,例如1或10000
|
||||||
|
... 判断 新建选择用什么样的类型,并进行新建
|
||||||
|
DestinationCreate-name ${name}
|
||||||
|
sleep 1
|
||||||
|
run keyword if "${ip_type}"=="Ip" run keywords click element xpath=//*[@id="policy_Manipulation2"]/div[1]/div[1]/div[2]/form/div[4]/div/div[1]
|
||||||
|
... AND sleep 1
|
||||||
|
... AND NewObject.Create-ip-ClientIP-text ${ipclienttext1} ${post}
|
||||||
|
run keyword if "${ip_type}"=="Geography" run keywords click element xpath=/html/body/div[1]/div/div[3]/div[2]/div/div[1]/form/div/div[5]/div[2]/div[2]/div/div[1]/div[1]/div[2]/form/div[3]/div/div/label[2]
|
||||||
|
... AND sleep 1
|
||||||
|
... AND click element xpath=//*[@id="policy_Manipulation2"]/div[1]/div[1]/div[2]/form/div[4]/div/div[1]/div[2]
|
||||||
|
... AND sleep 1
|
||||||
|
... AND NewObject.Create-Geography ${Country} ${City}
|
||||||
|
... AND sleep 1
|
||||||
|
... AND click element id=interceptionadd_allcancelobjec3t
|
||||||
|
... AND sleep 1
|
||||||
|
run keyword if "${ip_type}"=="IPLearning" run keywords click element xpath=/html/body/div[1]/div/div[3]/div[2]/div/div[1]/form/div/div[5]/div[2]/div[2]/div/div[1]/div[1]/div[2]/form/div[3]/div/div/label[3]
|
||||||
|
... AND sleep 1
|
||||||
|
... AND click element xpath=//*[@id="policy_Manipulation2"]/div[1]/div[1]/div[2]/form/div[4]/div/div[1]
|
||||||
|
... AND sleep 1
|
||||||
|
... AND input text xpath=//*[@id="policy_Manipulation2"]/div[1]/div[1]/div[2]/form/div[4]/div/div[4]/div/div[1]/div[2]/div[1]/div[1]/form/div[1]/div/div[1]/input ${fqdn}
|
||||||
|
... AND sleep 1
|
||||||
|
... AND click element xpath=//*[@id="policy_Manipulation2"]/div[1]/div[1]/div[2]/form/div[5]/div[1]/div/div/div[2]
|
||||||
|
... AND sleep 1
|
||||||
|
... AND Learn-From-Protocols ${Protocols1}
|
||||||
|
... AND Learning-Depth ${Degree}
|
||||||
|
... AND sleep 1
|
||||||
|
... AND input text xpath=//*[@id="policy_Manipulation2"]/div[1]/div[1]/div[2]/form/div[5]/div[3]/div/div[1]/input ${times}
|
||||||
|
... AND sleep 1
|
||||||
|
... AND input text xpath=//*[@id="policy_Manipulation2"]/div[1]/div[1]/div[2]/form/div[5]/div[4]/div/div[1]/input ${numbers}
|
||||||
|
... AND sleep 1
|
||||||
|
... AND input text xpath=//*[@id="policy_Manipulation2"]/div[1]/div[1]/div[2]/form/div[5]/div[5]/div/div[1]/input ${limits}
|
||||||
|
... AND sleep 1
|
||||||
|
DestinationCreate-ok
|
||||||
|
Learn-From-Protocols
|
||||||
|
[Arguments] ${Protocols1}
|
||||||
|
[Documentation] 调用次关键字前需要添加必填参数:
|
||||||
|
... ${Protocols1}:填入HTTP或SSL或者HTTPSSL
|
||||||
|
... 判断选择用什么样的协议
|
||||||
|
run keyword if "${Protocols1}"=="HTTP" run keywords sleep 1
|
||||||
|
... AND click element xpath=/html/body/div[6]/div[1]/div[1]/ul/li[1]
|
||||||
|
run keyword if "${Protocols1}"=="SSL" run keywords sleep 1
|
||||||
|
... AND click element xpath=/html/body/div[6]/div[1]/div[1]/ul/li[2]
|
||||||
|
run keyword if "${Protocols1}"=="HTTPSSL" run keywords sleep 1
|
||||||
|
... AND click element xpath=/html/body/div[6]/div[1]/div[1]/ul/li[1]
|
||||||
|
... AND sleep 1
|
||||||
|
... AND click element xpath=/html/body/div[6]/div[1]/div[1]/ul/li[2]
|
||||||
|
|
||||||
|
Learning-Depth
|
||||||
|
[Arguments] ${Degree}
|
||||||
|
[Documentation] 调用次关键字前需要添加必填参数:
|
||||||
|
... ${Degree}:填入1Degree或2Degree
|
||||||
|
... 判断是用1Degree或2Degree
|
||||||
|
run keyword if "${Degree}"=="1Degree" run keywords sleep 1
|
||||||
|
... AND click element xpath=//*[@id="policy_Manipulation2"]/div[1]/div[1]/div[2]/form/div[5]/div[2]/div/div/label[1]
|
||||||
|
run keyword if "${Degree}"=="2Degree" run keywords sleep 1
|
||||||
|
... AND click element xpath=//*[@id="policy_Manipulation2"]/div[1]/div[1]/div[2]/form/div[5]/div[2]/div/div/label[2]
|
||||||
|
|
||||||
|
IPGroupAdd
|
||||||
|
[Arguments] ${name} ${ip_type} ${object_name}
|
||||||
|
[Documentation] 调用次关键字前需要添加必填参数:
|
||||||
|
... ${name}:名称
|
||||||
|
... ${ip_type}:填入Ip或者Geography
|
||||||
|
... ${object_name}:列表形式,列表中是对象的名字
|
||||||
|
SourceCreate-name ${name}
|
||||||
|
Select-ip_type ${ip_type}
|
||||||
|
sleep 1
|
||||||
|
click element xpath=//*[@id="policy_Manipulation2"]/div[1]/div[1]/div[2]/form/div[4]/div/div/div[2]
|
||||||
|
Create-Sub-Objects ${object_name}
|
||||||
|
NewObject.Create-ok
|
||||||
|
|
||||||
|
SourceCreate-name
|
||||||
|
[Arguments] ${objName}
|
||||||
|
sleep 2
|
||||||
|
input text id=objectAdd_name ${objName}
|
||||||
|
|
||||||
|
SourceCreate-ok
|
||||||
|
sleep 2
|
||||||
|
click button id=objectAdd_ok
|
||||||
|
|
||||||
|
DestinationCreate-name
|
||||||
|
[Arguments] ${objName}
|
||||||
|
sleep 2
|
||||||
|
input text xpath=/html/body/div[1]/div/div[3]/div[2]/div/div[1]/form/div/div[5]/div[2]/div[2]/div/div[1]/div[1]/div[2]/form/div[1]/div/div[1]/input ${objName}
|
||||||
|
|
||||||
|
DestinationCreate-ok
|
||||||
|
sleep 2
|
||||||
|
click button xpath=/html/body/div[1]/div/div[3]/div[2]/div/div[1]/form/div/div[5]/div[2]/div[2]/div/div[2]/button[1]
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
Create-Conditions
|
Create-Conditions
|
||||||
sleep 2
|
sleep 2
|
||||||
|
|||||||
Reference in New Issue
Block a user