diff --git a/01-TestCase/tsg_ui/ui_objects/Object-HTTPSignature-Case.robot b/01-TestCase/tsg_ui/ui_objects/Object-HTTPSignature-Case.robot new file mode 100644 index 0000000..620f0de --- /dev/null +++ b/01-TestCase/tsg_ui/ui_objects/Object-HTTPSignature-Case.robot @@ -0,0 +1,191 @@ +*** Settings *** +Force Tags tsg-ui objects HTTPSignature +Resource ../../../03-Variable/bifangapivariable.txt +Resource ../../../02-Keyword/Tsg_Ui/Objects/ObjectPages.robot +Resource ../../../02-Keyword/Tsg_Ui/Objects/Objects.robot +Library OperatingSystem + +*** Test Cases *** +create-HTTPSignature-Request-User-Agent-prefix-001 + #新建user-agent + CreatePage ReqRes create-HTTPSignature-Request-User-Agent-prefix-001 reqrestype=req reqresheader=ua keywordtext=Mozilla/5.0* + #验证新建是否成功 + ui-object-search-name create-HTTPSignature-Request-User-Agent-prefix-001 + ${text} get text xpath=//*[@id="ly-table1-listcontent"]/div/div[3]/table/tbody/tr[1]/td[2]/div/div/span + Should Be Equal As Strings ${text} create-HTTPSignature-Request-User-Agent-prefix-001 + #删除对象 + objects-delete + +create-HTTPSignature-Request-User-Agent-sub-002 + #新建user-agent + CreatePage ReqRes create-HTTPSignature-Request-User-Agent-sub-002 reqrestype=req reqresheader=ua keywordtext=Mozilla/5. + #验证新建是否成功 + ui-object-search-name create-HTTPSignature-Request-User-Agent-sub-002 + ${text} get text xpath=//*[@id="ly-table1-listcontent"]/div/div[3]/table/tbody/tr[1]/td[2]/div/div/span + Should Be Equal As Strings ${text} create-HTTPSignature-Request-User-Agent-sub-002 + #删除对象 + objects-delete + +create-HTTPSignature-Request-User-Agent-exactly-003 + #新建user-agent + CreatePage ReqRes create-HTTPSignature-Request-User-Agent-exactly-003 reqrestype=req reqresheader=ua keywordtext=$Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/81.0.4044.113 Safari/537.36 + #验证新建是否成功 + ui-object-search-name create-HTTPSignature-Request-User-Agent-exactly-003 + ${text} get text xpath=//*[@id="ly-table1-listcontent"]/div/div[3]/table/tbody/tr[1]/td[2]/div/div/span + Should Be Equal As Strings ${text} create-HTTPSignature-Request-User-Agent-exactly-003 + #删除对象 + objects-delete + +create-HTTPSignature-Request-User-Agent-suffix-004 + #新建user-agent + CreatePage ReqRes create-HTTPSignature-Request-User-Agent-suffix-004 reqrestype=req reqresheader=ua keywordtext=*Safari/537.36 + #验证新建是否成功 + ui-object-search-name create-HTTPSignature-Request-User-Agent-suffix-004 + ${text} get text xpath=//*[@id="ly-table1-listcontent"]/div/div[3]/table/tbody/tr[1]/td[2]/div/div/span + Should Be Equal As Strings ${text} create-HTTPSignature-Request-User-Agent-suffix-004 + #删除对象 + objects-delete + +create-HTTPSignature-Request-Cookie-prefix-005 + #新建cookie + CreatePage ReqRes create-HTTPSignature-Request-Cookie-prefix-005 reqrestype=req reqresheader=ck keywordtext=cookie* + #验证新建是否成功 + ui-object-search-name create-HTTPSignature-Request-Cookie-prefix-005 + ${text} get text xpath=//*[@id="ly-table1-listcontent"]/div/div[3]/table/tbody/tr[1]/td[2]/div/div/span + Should Be Equal As Strings ${text} create-HTTPSignature-Request-Cookie-prefix-005 + #删除对象 + objects-delete + +create-HTTPSignature-Request-Cookie-sub-006 + #新建cookie + CreatePage ReqRes create-HTTPSignature-Request-Cookie-sub-006 reqrestype=req reqresheader=ck keywordtext=cookie + #验证新建是否成功 + ui-object-search-name create-HTTPSignature-Request-Cookie-sub-006 + ${text} get text xpath=//*[@id="ly-table1-listcontent"]/div/div[3]/table/tbody/tr[1]/td[2]/div/div/span + Should Be Equal As Strings ${text} create-HTTPSignature-Request-Cookie-sub-006 + #删除对象 + objects-delete + +create-HTTPSignature-Request-Cookie-exactly-007 + #新建cookie + CreatePage ReqRes create-HTTPSignature-Request-Cookie-exactly-007 reqrestype=req reqresheader=ck keywordtext=$cookie + #验证新建是否成功 + ui-object-search-name create-HTTPSignature-Request-Cookie-exactly-007 + ${text} get text xpath=//*[@id="ly-table1-listcontent"]/div/div[3]/table/tbody/tr[1]/td[2]/div/div/span + Should Be Equal As Strings ${text} create-HTTPSignature-Request-Cookie-exactly-007 + #删除对象 + objects-delete + +create-HTTPSignature-Request-Cookie-suffix-008 + #新建cookie + CreatePage ReqRes create-HTTPSignature-Request-Cookie-suffix-008 reqrestype=req reqresheader=ck keywordtext=*cookie + #验证新建是否成功 + ui-object-search-name create-HTTPSignature-Request-Cookie-suffix-008 + ${text} get text xpath=//*[@id="ly-table1-listcontent"]/div/div[3]/table/tbody/tr[1]/td[2]/div/div/span + Should Be Equal As Strings ${text} create-HTTPSignature-Request-Cookie-suffix-008 + #删除对象 + objects-delete + +create-HTTPSignature-Response-Set-Cookie-prefix-009 + #新建set-cookie + CreatePage ReqRes create-HTTPSignature-Response-Set-Cookie-prefix-009 reqrestype=res reqresheader=sck keywordtext=set-cookie* + #验证新建是否成功 + ui-object-search-name create-HTTPSignature-Response-Set-Cookie-prefix-009 + ${text} get text xpath=//*[@id="ly-table1-listcontent"]/div/div[3]/table/tbody/tr[1]/td[2]/div/div/span + Should Be Equal As Strings ${text} create-HTTPSignature-Response-Set-Cookie-prefix-009 + #删除对象 + objects-delete + +create-HTTPSignature-Response-Set-Cookie-sub-010 + #新建set-cookie + CreatePage ReqRes create-HTTPSignature-Response-Set-Cookie-sub-010 reqrestype=res reqresheader=sck keywordtext=set-cookie + #验证新建是否成功 + ui-object-search-name create-HTTPSignature-Response-Set-Cookie-sub-010 + ${text} get text xpath=//*[@id="ly-table1-listcontent"]/div/div[3]/table/tbody/tr[1]/td[2]/div/div/span + Should Be Equal As Strings ${text} create-HTTPSignature-Response-Set-Cookie-sub-010 + #删除对象 + objects-delete + +create-HTTPSignature-Response-Set-Cookie-exactly-011 + #新建set-cookie + CreatePage ReqRes create-HTTPSignature-Response-Set-Cookie-exactly-011 reqrestype=res reqresheader=sck keywordtext=$set-cookie + #验证新建是否成功 + ui-object-search-name create-HTTPSignature-Response-Set-Cookie-exactly-011 + ${text} get text xpath=//*[@id="ly-table1-listcontent"]/div/div[3]/table/tbody/tr[1]/td[2]/div/div/span + Should Be Equal As Strings ${text} create-HTTPSignature-Response-Set-Cookie-exactly-011 + #删除对象 + objects-delete + +create-HTTPSignature-Response-Set-Cookie-suffix-012 + #新建set-cookie + CreatePage ReqRes create-HTTPSignature-Response-Set-Cookie-suffix-012 reqrestype=res reqresheader=sck keywordtext=*set-cookie + #验证新建是否成功 + ui-object-search-name create-HTTPSignature-Response-Set-Cookie-suffix-012 + ${text} get text xpath=//*[@id="ly-table1-listcontent"]/div/div[3]/table/tbody/tr[1]/td[2]/div/div/span + Should Be Equal As Strings ${text} create-HTTPSignature-Response-Set-Cookie-suffix-012 + #删除对象 + objects-delete + +create-HTTPSignature-Response-Content-Type-prefix-0013 + #新建content-type + CreatePage ReqRes create-HTTPSignature-Response-Content-Type-prefix-0013 reqrestype=res reqresheader=ct keywordtext=Content-Type* + #验证新建是否成功 + ui-object-search-name create-HTTPSignature-Response-Content-Type-prefix-0013 + ${text} get text xpath=//*[@id="ly-table1-listcontent"]/div/div[3]/table/tbody/tr[1]/td[2]/div/div/span + Should Be Equal As Strings ${text} create-HTTPSignature-Response-Content-Type-prefix-0013 + #删除对象 + objects-delete + +create-HTTPSignature-Response-Content-Type-sub-0014 + #新建content-type + CreatePage ReqRes create-HTTPSignature-Response-Content-Type-sub-0014 reqrestype=res reqresheader=ct keywordtext=Content-Type + #验证新建是否成功 + ui-object-search-name create-HTTPSignature-Response-Content-Type-sub-0014 + ${text} get text xpath=//*[@id="ly-table1-listcontent"]/div/div[3]/table/tbody/tr[1]/td[2]/div/div/span + Should Be Equal As Strings ${text} create-HTTPSignature-Response-Content-Type-sub-0014 + #删除对象 + objects-delete + +create-HTTPSignature-Response-Content-Type-exactly-0015 + #新建content-type + CreatePage ReqRes create-HTTPSignature-Response-Content-Type-exactly-0015 reqrestype=res reqresheader=ct keywordtext=$Content-Type + #验证新建是否成功 + ui-object-search-name create-HTTPSignature-Response-Content-Type-exactly-0015 + ${text} get text xpath=//*[@id="ly-table1-listcontent"]/div/div[3]/table/tbody/tr[1]/td[2]/div/div/span + Should Be Equal As Strings ${text} create-HTTPSignature-Response-Content-Type-exactly-0015 + #删除对象 + objects-delete + +create-HTTPSignature-Response-Content-Type-suffix-0016 + #新建content-type + CreatePage ReqRes create-HTTPSignature-Response-Content-Type-suffix-0016 reqrestype=res reqresheader=ct keywordtext=*Content-Type + #验证新建是否成功 + ui-object-search-name create-HTTPSignature-Response-Content-Type-suffix-0016 + ${text} get text xpath=//*[@id="ly-table1-listcontent"]/div/div[3]/table/tbody/tr[1]/td[2]/div/div/span + Should Be Equal As Strings ${text} create-HTTPSignature-Response-Content-Type-suffix-0016 + #删除对象 + objects-delete + +edit-HTTPSignature-017 + #新建user-agent + CreatePage ReqRes create-HTTPSignature-Request-User-Agent-prefix-001 reqrestype=req reqresheader=ua keywordtext=Mozilla/5.0* + #验证新建是否成功 + ui-object-search-name create-HTTPSignature-Request-User-Agent-prefix-001 + ${text} get text xpath=//*[@id="ly-table1-listcontent"]/div/div[3]/table/tbody/tr[1]/td[2]/div/div/span + Should Be Equal As Strings ${text} create-HTTPSignature-Request-User-Agent-prefix-001 + #修改对象 + object-edit-HTTPSignature edit-HTTPSignature-017 res sck 8f6c 6362 31 36 8fdb 5236 hex=open + #查询修改对象 + ui-object-search-name edit-HTTPSignature-017 + #删除对象 + objects-delete + +create-HTTPSignature-open-16-hex-0018 + #新建content-type + CreatePage ReqRes create-HTTPSignature-open-16-hex-0018 reqrestype=res reqresheader=ct keywordtext=*63 6f 6e 74 65 6e 74 hex=open + #验证新建是否成功 + ui-object-search-name create-HTTPSignature-open-16-hex-0018 + ${text} get text xpath=//*[@id="ly-table1-listcontent"]/div/div[3]/table/tbody/tr[1]/td[2]/div/div/span + Should Be Equal As Strings ${text} create-HTTPSignature-open-16-hex-0018 + #删除对象 + objects-delete diff --git a/01-TestCase/tsg_ui/ui_objects/Object_Account_Case.robot b/01-TestCase/tsg_ui/ui_objects/Object_Account_Case.robot new file mode 100644 index 0000000..5a4a7e1 --- /dev/null +++ b/01-TestCase/tsg_ui/ui_objects/Object_Account_Case.robot @@ -0,0 +1,61 @@ +*** Settings *** +Force Tags tsg-ui objects account +Resource ../../../03-Variable/bifangapivariable.txt +Resource ../../../02-Keyword/Tsg_Ui/Objects/ObjectPages.robot +Library OperatingSystem +Resource ../../../02-Keyword/Tsg_Ui/Objects/Objects.robot + +*** Test Cases *** +create-account-prefix-001 + #新建Account + CreatePage Account create-account-prefix-001 keywordtext=www.* + #验证新建是否成功 + ui-object-search-name create-account-prefix-001 + ${text} get text xpath=//*[@id="ly-table1-listcontent"]/div/div[3]/table/tbody/tr[1]/td[2]/div/div/span + Should Be Equal As Strings ${text} create-account-prefix-001 + #删除对象 + objects-delete + +create-account-sub-002 + #新建Account + CreatePage Account create-account-sub-002 keywordtext=1234 + #验证新建是否成功 + ui-object-search-name create-account-sub-002 + ${text} get text xpath=//*[@id="ly-table1-listcontent"]/div/div[3]/table/tbody/tr[1]/td[1]/div/div/span/span[2]/span + log ${text} + #删除对象 + objects-delete + +create-account-exactly-003 + #新建Account + CreatePage Account create-account-exactly-003 keywordtext=$1234567 + #验证新建是否成功 + ui-object-search-name create-account-exactly-003 + ${text} get text xpath=//*[@id="ly-table1-listcontent"]/div/div[3]/table/tbody/tr[1]/td[1]/div/div/span/span[2]/span + log ${text} + #删除对象 + objects-delete + +create-account-suffix-004 + #新建Account + CreatePage Account create-account-suffix-004 keywordtext=*1234567 + #验证新建是否成功 + ui-object-search-name create-account-suffix-004 + ${text} get text xpath=//*[@id="ly-table1-listcontent"]/div/div[3]/table/tbody/tr[1]/td[1]/div/div/span/span[2]/span + log ${text} + #删除对象 + objects-delete + +edit-account-005 + #新建Account + CreatePage Account create-account-suffix-004 keywordtext=*1234567 + #验证新建是否成功 + ui-object-search-name create-account-suffix-004 + ${text} get text xpath=//*[@id="ly-table1-listcontent"]/div/div[3]/table/tbody/tr[1]/td[1]/div/div/span/span[2]/span + log ${text} + #修改对象 + object-edit-account deit-account-005 $www.baidu.com + #查询修改对象 + ui-object-search-name deit-account-005 + #删除对象 + objects-delete diff --git a/01-TestCase/tsg_ui/ui_objects/Object_Category_Case.robot b/01-TestCase/tsg_ui/ui_objects/Object_Category_Case.robot new file mode 100644 index 0000000..2f671f0 --- /dev/null +++ b/01-TestCase/tsg_ui/ui_objects/Object_Category_Case.robot @@ -0,0 +1,41 @@ +*** Settings *** +Force Tags tsg-ui objects category +Resource ../../../03-Variable/bifangapivariable.txt +Resource ../../../02-Keyword/Tsg_Ui/Objects/ObjectPages.robot +Library OperatingSystem +Resource ../../../02-Keyword/Tsg_Ui/Objects/Objects.robot + +*** Test Cases *** +create-category-exactly-001 + #新建Category + CreatePage Category create-category-exactly-001 keywordtext=$www.baidu.com + #验证新建是否成功 + ui-object-search-name create-category-exactly-001 + ${text} get text xpath=//*[@id="ly-table1-listcontent"]/div/div[3]/table/tbody/tr[1]/td[2]/div/div/span + Should Be Equal As Strings ${text} create-category-exactly-001 + #删除对象 + objects-delete + +create-category-suffix-002 + #新建Category + CreatePage Category create-category-suffix-002 keywordtext=*baidu.com + #验证新建是否成功 + ui-object-search-name create-category-suffix-002 + ${text} get text xpath=//*[@id="ly-table1-listcontent"]/div/div[3]/table/tbody/tr[1]/td[2]/div/div/span + Should Be Equal As Strings ${text} create-category-suffix-002 + #删除对象 + objects-delete + +edit-category-003 + #新建Category + CreatePage Category create-category-suffix-002 keywordtext=*baidu.com + #验证新建是否成功 + ui-object-search-name create-category-suffix-002 + ${text} get text xpath=//*[@id="ly-table1-listcontent"]/div/div[3]/table/tbody/tr[1]/td[2]/div/div/span + Should Be Equal As Strings ${text} create-category-suffix-002 + #修改对象 + object-edit-fqdn deit-category-003 $open.node.com + #查询修改对象 + ui-object-search-name deit-category-003 + #删除对象 + objects-delete diff --git a/01-TestCase/tsg_ui/ui_objects/Object_Fqdn_Case.robot b/01-TestCase/tsg_ui/ui_objects/Object_Fqdn_Case.robot new file mode 100644 index 0000000..45b5b47 --- /dev/null +++ b/01-TestCase/tsg_ui/ui_objects/Object_Fqdn_Case.robot @@ -0,0 +1,51 @@ +*** Settings *** +Force Tags tsg-ui objects fqdn +Resource ../../../03-Variable/bifangapivariable.txt +Resource ../../../02-Keyword/Tsg_Ui/Objects/ObjectPages.robot +Library OperatingSystem +Resource ../../../02-Keyword/Tsg_Ui/Objects/Objects.robot + +*** Test Cases *** +create-fqdn-exactly-001 + #新建fqdn,exactly + CreatePage Fqdn create-fqdn-exactly-001 keywordtext=$open.node.com + #验证新建是否成功 + ui-object-search-name create-fqdn-exactly-001 + ${text} get text xpath=//*[@id="ly-table1-listcontent"]/div/div[3]/table/tbody/tr[1]/td[2]/div/div/span + Should Be Equal As Strings ${text} create-fqdn-exactly-001 + #删除对象 + objects-delete + +create-fqdn-suffix-002 + #新建fqdn,exactly + CreatePage Fqdn create-fqdn-suffix-002 keywordtext=*open.node.com + #验证新建是否成功 + ui-object-search-name create-fqdn-suffix-002 + ${text} get text xpath=//*[@id="ly-table1-listcontent"]/div/div[3]/table/tbody/tr[1]/td[2]/div/div/span + Should Be Equal As Strings ${text} create-fqdn-suffix-002 + #删除对象 + objects-delete + +create-fqdn-suffix-003 + #新建fqdn,exactly + CreatePage Fqdn create-fqdn-suffix-003 keywordtext=*123-456_abc + #验证新建是否成功 + ui-object-search-name create-fqdn-suffix-003 + ${text} get text xpath=//*[@id="ly-table1-listcontent"]/div/div[3]/table/tbody/tr[1]/td[2]/div/div/span + Should Be Equal As Strings ${text} create-fqdn-suffix-003 + #删除对象 + objects-delete + +deit-fqdn-003 + #新建fqdn,exactly + CreatePage Fqdn create-fqdn-suffix-002 keywordtext=*open.node.com + #验证新建是否成功 + ui-object-search-name create-fqdn-suffix-002 + ${text} get text xpath=//*[@id="ly-table1-listcontent"]/div/div[3]/table/tbody/tr[1]/td[2]/div/div/span + Should Be Equal As Strings ${text} create-fqdn-suffix-002 + #修改对象 + object-edit-fqdn deit-fqdn-003 $open.node.com + #查询修改对象 + ui-object-search-name deit-fqdn-003 + #删除对象 + objects-delete diff --git a/01-TestCase/tsg_ui/ui_objects/Object_Ip_Case.robot b/01-TestCase/tsg_ui/ui_objects/Object_Ip_Case.robot new file mode 100644 index 0000000..2f4dea3 --- /dev/null +++ b/01-TestCase/tsg_ui/ui_objects/Object_Ip_Case.robot @@ -0,0 +1,164 @@ +*** Settings *** +Force Tags tsg-ui objects ip +Resource ../../../03-Variable/bifangapivariable.txt +Resource ../../../02-Keyword/Tsg_Ui/Objects/ObjectPages.robot +Library OperatingSystem +Resource ../../../02-Keyword/Tsg_Ui/Objects/Objects.robot + +*** Test Cases *** +create-ipv4-range-001 + #新建ip,range + CreatePage Ip create-ipv4-range-001 ipads=ipv4 ipclient=range ipclienttext1=192.168.1.1 ipclienttext2=192.168.1.1 + ... post=0/0 + #验证新建是否成功 + ui-object-search-name create-ipv4-range-001 + ${text} get text xpath=//*[@id="ly-table1-listcontent"]/div/div[3]/table/tbody/tr[1]/td[2]/div/div/span + Should Be Equal As Strings ${text} create-ipv4-range-001 + #删除对象 + objects-delete + +create-ipv4-cidr-002 + #新建ip,cidr + CreatePage Ip create-ipv4-cidr-002 ipads=ipv4 ipclient=cidr ipclienttext1=192.168.1.1 ipclienttext2=24 + ... post=65535/65535 + #验证新建是否成功 + ui-object-search-name create-ipv4-cidr-002 + ${text} get text xpath=//*[@id="ly-table1-listcontent"]/div/div[3]/table/tbody/tr[1]/td[2]/div/div/span + Should Be Equal As Strings ${text} create-ipv4-cidr-002 + #删除对象 + objects-delete + +create-ipv4-masks-003 + #新建ip,masks + CreatePage Ip create-ipv4-masks-003 ipads=ipv4 ipclient=masks ipclienttext1=192.168.1.1 ipclienttext2=255.255.255.0 + ... post=1/1 + #验证新建是否成功 + ui-object-search-name create-ipv4-masks-003 + ${text} get text xpath=//*[@id="ly-table1-listcontent"]/div/div[3]/table/tbody/tr[1]/td[2]/div/div/span + Should Be Equal As Strings ${text} create-ipv4-masks-003 + #删除对象 + objects-delete + +create-ipv6-range-004 + #新建ip,range + CreatePage Ip create-ipv6-range-004 ipads=ipv6 ipclient=range ipclienttext1=0:0:0:0:0:0:0:0 ipclienttext2=FFFF:FFFF:FFFF:FFFF:FFFF:FFFF:FFFF:FFFF + ... post=65535/65535 + #验证新建是否成功 + ui-object-search-name create-ipv6-range-004 + ${text} get text xpath=//*[@id="ly-table1-listcontent"]/div/div[3]/table/tbody/tr[1]/td[2]/div/div/span + Should Be Equal As Strings ${text} create-ipv6-range-004 + #删除对象 + objects-delete + +create-ipv6-cidr-005 + #新建ip,cidr + CreatePage Ip create-ipv6-cidr-005 ipads=ipv6 ipclient=cidr ipclienttext1=0:0:0:0:0:0:0:0 ipclienttext2=64 + ... post=1/1 + #验证新建是否成功 + ui-object-search-name create-ipv6-cidr-005 + ${text} get text xpath=//*[@id="ly-table1-listcontent"]/div/div[3]/table/tbody/tr[1]/td[2]/div/div/span + Should Be Equal As Strings ${text} create-ipv6-cidr-005 + #删除对象 + objects-delete + +create-ipv6-masks-006 + #新建ip,masks + CreatePage Ip create-ipv6-masks-006 ipads=ipv6 ipclient=masks ipclienttext1=0:0:0:0:0:0:0:0 ipclienttext2=0:0:0:0:0:0:0:0 + ... post=65535/65535 + #验证新建是否成功 + ui-object-search-name create-ipv6-masks-006 + ${text} get text xpath=//*[@id="ly-table1-listcontent"]/div/div[3]/table/tbody/tr[1]/td[2]/div/div/span + Should Be Equal As Strings ${text} create-ipv6-masks-006 + #删除对象 + objects-delete + +edit-ip-007 + #新建ip,masks + CreatePage Ip create-ipv6-masks-007 ipads=ipv6 ipclient=masks ipclienttext1=0:0:0:0:0:0:0:0 ipclienttext2=0:0:0:0:0:0:0:0 + #验证新建是否成功 + ui-object-search-name create-ipv6-masks-007 + ${text} get text xpath=//*[@id="ly-table1-listcontent"]/div/div[3]/table/tbody/tr[1]/td[2]/div/div/span + Should Be Equal As Strings ${text} create-ipv6-masks-007 + #修改对象 + object-edit-ip edit-ip-007 ipv4 range 192.168.100.1 192.168.100.1 post=0/0 + #查询修改对象 + ui-object-search-name edit-ip-007 + #删除对象 + objects-delete + +create-ipv6-range-008 + #新建ip,range + CreatePage Ip create-ipv6-range-008 ipads=ipv6 ipclient=range ipclienttext1=:: ipclienttext2=::1 + ... post=0/0 + #验证新建是否成功 + ui-object-search-name create-ipv6-range-008 + ${text} get text xpath=//*[@id="ly-table1-listcontent"]/div/div[3]/table/tbody/tr[1]/td[2]/div/div/span + Should Be Equal As Strings ${text} create-ipv6-range-008 + #删除对象 + objects-delete + +create-ipv4-range-009 + #新建ip,range + CreatePage Ip create-ipv4-range-009 ipads=ipv4 ipclient=range ipclienttext1=0.0.0.0 ipclienttext2=255.255.255.255 + ... post=65535/65535 + #验证新建是否成功 + ui-object-search-name create-ipv4-range-009 + ${text} get text xpath=//*[@id="ly-table1-listcontent"]/div/div[3]/table/tbody/tr[1]/td[2]/div/div/span + Should Be Equal As Strings ${text} create-ipv4-range-009 + #删除对象 + objects-delete + +create-ipv4-cidr-010 + #新建ip,cidr + CreatePage Ip create-ipv4-cidr-010 ipads=ipv4 ipclient=cidr ipclienttext1=0.0.0.0 ipclienttext2=0 + ... post=0/0 + #验证新建是否成功 + ui-object-search-name create-ipv4-cidr-010 + ${text} get text xpath=//*[@id="ly-table1-listcontent"]/div/div[3]/table/tbody/tr[1]/td[2]/div/div/span + Should Be Equal As Strings ${text} create-ipv4-cidr-010 + #删除对象 + objects-delete + +create-ipv4-cidr-011 + #新建ip,cidr + CreatePage Ip create-ipv4-cidr-011 ipads=ipv4 ipclient=cidr ipclienttext1=255.255.255.255 ipclienttext2=32 + ... post=65535/65535 + #验证新建是否成功 + ui-object-search-name create-ipv4-cidr-011 + ${text} get text xpath=//*[@id="ly-table1-listcontent"]/div/div[3]/table/tbody/tr[1]/td[2]/div/div/span + Should Be Equal As Strings ${text} create-ipv4-cidr-011 + #删除对象 + objects-delete + +create-ipv6-range-012 + #新建ip,range + CreatePage Ip create-ipv6-range-012 ipads=ipv6 ipclient=range ipclienttext1=:: ipclienttext2=FFFF:FFFF:FFFF:FFFF:FFFF:FFFF:FFFF:FFFF + ... post=0/0 + #验证新建是否成功 + ui-object-search-name create-ipv6-range-012 + ${text} get text xpath=//*[@id="ly-table1-listcontent"]/div/div[3]/table/tbody/tr[1]/td[2]/div/div/span + Should Be Equal As Strings ${text} create-ipv6-range-012 + #删除对象 + objects-delete + +create-ipv6-cidr-013 + #新建ip,range + CreatePage Ip create-ipv6-cidr-013 ipads=ipv6 ipclient=cidr ipclienttext1=:: ipclienttext2=0 + ... post=0/0 + #验证新建是否成功 + ui-object-search-name create-ipv6-cidr-013 + ${text} get text xpath=//*[@id="ly-table1-listcontent"]/div/div[3]/table/tbody/tr[1]/td[2]/div/div/span + Should Be Equal As Strings ${text} create-ipv6-cidr-013 + #删除对象 + objects-delete + +create-ipv6-cidr-014 + #新建ip,range + CreatePage Ip create-ipv6-cidr-014 ipads=ipv6 ipclient=cidr ipclienttext1=FFFF:FFFF:FFFF:FFFF:FFFF:FFFF:FFFF:FFFF ipclienttext2=128 + ... post=65535/65535 + #验证新建是否成功 + ui-object-search-name create-ipv6-cidr-014 + ${text} get text xpath=//*[@id="ly-table1-listcontent"]/div/div[3]/table/tbody/tr[1]/td[2]/div/div/span + Should Be Equal As Strings ${text} create-ipv6-cidr-014 + #删除对象 + objects-delete diff --git a/01-TestCase/tsg_ui/ui_objects/Object_Keywords_Case.robot b/01-TestCase/tsg_ui/ui_objects/Object_Keywords_Case.robot new file mode 100644 index 0000000..7972bb6 --- /dev/null +++ b/01-TestCase/tsg_ui/ui_objects/Object_Keywords_Case.robot @@ -0,0 +1,71 @@ +*** Settings *** +Force Tags tsg-ui objects keywords +Resource ../../../03-Variable/bifangapivariable.txt +Resource ../../../02-Keyword/Tsg_Ui/Objects/ObjectPages.robot +Library OperatingSystem +Resource ../../../02-Keyword/Tsg_Ui/Objects/Objects.robot + +*** Test Cases *** +create-keywords-prefix-001 + #新建keywords + CreatePage Key create-keywords-prefix-001 keywordtext=www.* + #验证新建是否成功 + ui-object-search-name create-keywords-prefix-001 + ${text} get text xpath=//*[@id="ly-table1-listcontent"]/div/div[3]/table/tbody/tr[1]/td[2]/div/div/span + Should Be Equal As Strings ${text} create-keywords-prefix-001 + #删除对象 + objects-delete + +create-keywords-sub-002 + #新建keywords + CreatePage Key create-keywords-sub-002 keywordtext=1234@#% + #验证新建是否成功 + ui-object-search-name create-keywords-sub-002 + ${text} get text xpath=//*[@id="ly-table1-listcontent"]/div/div[3]/table/tbody/tr[1]/td[2]/div/div/span + Should Be Equal As Strings ${text} create-keywords-sub-002 + #删除对象 + objects-delete + +create-keywords-exactly-003 + #新建keywords + CreatePage Key create-keywords-exactly-003 keywordtext=$支持中文 + #验证新建是否成功 + ui-object-search-name create-keywords-exactly-003 + ${text} get text xpath=//*[@id="ly-table1-listcontent"]/div/div[3]/table/tbody/tr[1]/td[2]/div/div/span + Should Be Equal As Strings ${text} create-keywords-exactly-003 + #删除对象 + objects-delete + +create-keywords-suffix-004 + #新建keywords + CreatePage Key create-keywords-suffix-004 keywordtext=*скрипцияк. + #验证新建是否成功 + ui-object-search-name create-keywords-suffix-004 + ${text} get text xpath=//*[@id="ly-table1-listcontent"]/div/div[3]/table/tbody/tr[1]/td[2]/div/div/span + Should Be Equal As Strings ${text} create-keywords-suffix-004 + #删除对象 + objects-delete + +edit-keywords-005 + #新建keywords + CreatePage Key create-keywords-suffix-005 keywordtext=*123456 + #验证新建是否成功 + ui-object-search-name create-keywords-suffix-005 + ${text} get text xpath=//*[@id="ly-table1-listcontent"]/div/div[3]/table/tbody/tr[1]/td[2]/div/div/span + Should Be Equal As Strings ${text} create-keywords-suffix-005 + #修改对象 + object-edit-keywords edit-keywords-005 $www.baidu.com + #查询修改对象 + ui-object-search-name edit-keywords-005 + #删除对象 + objects-delete + +create-keywords-open-16hex-006 + #新建keywords + CreatePage Key create-keywords-open-16hex-006 keywordtext=*123456 hex=open + #验证新建是否成功 + ui-object-search-name create-keywords-open-16hex-006 + ${text} get text xpath=//*[@id="ly-table1-listcontent"]/div/div[3]/table/tbody/tr[1]/td[1]/div/div/span/span[2]/span + log ${text} + #删除对象 + objects-delete diff --git a/01-TestCase/tsg_ui/ui_objects/Object_Subscriber_Id_Case.robot b/01-TestCase/tsg_ui/ui_objects/Object_Subscriber_Id_Case.robot new file mode 100644 index 0000000..add4bcf --- /dev/null +++ b/01-TestCase/tsg_ui/ui_objects/Object_Subscriber_Id_Case.robot @@ -0,0 +1,41 @@ +*** Settings *** +Force Tags tsg-ui object sub-id +Resource ../../../03-Variable/bifangapivariable.txt +Resource ../../../02-Keyword/Tsg_Ui/Objects/ObjectPages.robot +Library OperatingSystem +Resource ../../../02-Keyword/Tsg_Ui/Objects/Objects.robot + +*** Test Cases *** +create-Subscriber-ID-001 + #新建sub-id + CreatePage Sub create-sub-id-001 keywordtext=$test37 + #验证新建是否成功 + ui-object-search-name create-sub-id-001 + ${text} get text xpath=//*[@id="ly-table1-listcontent"]/div/div[3]/table/tbody/tr[1]/td[2]/div/div/span + Should Be Equal As Strings ${text} create-sub-id-001 + #删除对象 + objects-delete + +create-Subscriber-ID-002 + #新建sub-id + CreatePage Sub create-sub-id-002 keywordtext=$abc_%$#@123中文_скрипцияк. + #验证新建是否成功 + ui-object-search-name create-sub-id-002 + ${text} get text xpath=//*[@id="ly-table1-listcontent"]/div/div[3]/table/tbody/tr[1]/td[2]/div/div/span + Should Be Equal As Strings ${text} create-sub-id-002 + #删除对象 + objects-delete + +edit-Subscriber-ID-002 + #新建sub-id + CreatePage Sub create-sub-id-001 keywordtext=$test37 + #验证新建是否成功 + ui-object-search-name create-sub-id-001 + ${text} get text xpath=//*[@id="ly-table1-listcontent"]/div/div[3]/table/tbody/tr[1]/td[1]/div/div/span/span[2]/span + log ${text} + #修改对象 + object-edit-Subscriber-ID deit-sub-id-002 $test20 + #查询修改对象 + ui-object-search-name deit-sub-id-002 + #删除对象 + objects-delete diff --git a/01-TestCase/tsg_ui/ui_objects/Object_Url_Case.robot b/01-TestCase/tsg_ui/ui_objects/Object_Url_Case.robot new file mode 100644 index 0000000..0c40d8a --- /dev/null +++ b/01-TestCase/tsg_ui/ui_objects/Object_Url_Case.robot @@ -0,0 +1,61 @@ +*** Settings *** +Force Tags tsg-ui objects url +Resource ../../../03-Variable/bifangapivariable.txt +Resource ../../../02-Keyword/Tsg_Ui/Objects/ObjectPages.robot +Library OperatingSystem +Resource ../../../02-Keyword/Tsg_Ui/Objects/Objects.robot + +*** Test Cases *** +create-url-prefix-001 + #新建URL + CreatePage Url create-url-prefix-001 keywordtext=www.* + #验证新建是否成功 + ui-object-search-name create-url-prefix-001 + ${text} get text xpath=//*[@id="ly-table1-listcontent"]/div/div[3]/table/tbody/tr[1]/td[2]/div/div/span + Should Be Equal As Strings ${text} create-url-prefix-001 + #删除对象 + objects-delete + +create-url-sub-002 + #新建sub-id + CreatePage Url create-url-sub-002 keywordtext=1234@#% + #验证新建是否成功 + ui-object-search-name create-url-sub-002 + ${text} get text xpath=//*[@id="ly-table1-listcontent"]/div/div[3]/table/tbody/tr[1]/td[2]/div/div/span + Should Be Equal As Strings ${text} create-url-sub-002 + #删除对象 + objects-delete + +create-url-exactly-003 + #新建sub-id + CreatePage Url create-url-exactly-003 keywordtext=$支持中文 + #验证新建是否成功 + ui-object-search-name create-url-exactly-003 + ${text} get text xpath=//*[@id="ly-table1-listcontent"]/div/div[3]/table/tbody/tr[1]/td[2]/div/div/span + Should Be Equal As Strings ${text} create-url-exactly-003 + #删除对象 + objects-delete + +create-url-suffix-004 + #新建sub-id + CreatePage Url create-url-suffix-004 keywordtext=*скрипцияк. + #验证新建是否成功 + ui-object-search-name create-url-suffix-004 + ${text} get text xpath=//*[@id="ly-table1-listcontent"]/div/div[3]/table/tbody/tr[1]/td[2]/div/div/span + Should Be Equal As Strings ${text} create-url-suffix-004 + #删除对象 + objects-delete + +edit-url-005 + #新建sub-id + CreatePage Url create-url-suffix-005 keywordtext=*.com + #验证新建是否成功 + ui-object-search-name create-url-suffix-005 + ${text} get text xpath=//*[@id="ly-table1-listcontent"]/div/div[3]/table/tbody/tr[1]/td[2]/div/div/span + Should Be Equal As Strings ${text} create-url-suffix-005 + #修改对象 + object-edit-url deit-url-005 $www.baidu.com + #查询修改对象 + ui-object-search-name deit-url-005 + #删除对象 + objects-delete diff --git a/01-TestCase/tsg_ui/ui_settings/Decryption_Keyrings_Case.robot b/01-TestCase/tsg_ui/ui_settings/Decryption_Keyrings_Case.robot new file mode 100644 index 0000000..2b805c7 --- /dev/null +++ b/01-TestCase/tsg_ui/ui_settings/Decryption_Keyrings_Case.robot @@ -0,0 +1,66 @@ +*** Settings *** +Force Tags tsg-ui settings Decryption Keyrings +Resource ../../../03-Variable/bifangapivariable.txt +Resource ../../../02-Keyword/Tsg_Ui/Setting/Settings.robot +Library OperatingSystem + +*** Test Cases *** +Create_Decryption_Keyrings-001 + Create-Decryption Keyrings lyf-RF-test-001 ${path}keyrings//root//tango-ca-root-01-cer.pem ${path}keyrings//root//tango-ca-root-01-key.pem 23 id=certificateType_select0 id=keyringsadd_publicKeyAlgoSelet1 + +Create_Decryption_Keyrings-002 + Create-Decryption Keyrings lyf-RF-test-002 ${path}keyrings//root//tango-ca-root-01-cer.pem ${path}keyrings//root//tango-ca-root-01-key.pem 23 id=certificateType_select0 id=keyringsadd_publicKeyAlgoSelet0 + +Create_Decryption_Keyrings-003 + Create-Decryption Keyrings lyf-RF-test-003 ${path}keyrings//root//tango-ca-root-01-cer.pem ${path}keyrings//root//tango-ca-root-01-key.pem 23 id=certificateType_select0 id=keyringsadd_publicKeyAlgoSelet2 + +Create_Decryption_Keyrings-004 + Create-Decryption Keyrings lyf-RF-test-004 ${path}keyrings//root//tango-ca-root-01-cer.pem ${path}keyrings//root//tango-ca-root-01-key.pem 23 id=certificateType_select0 id=keyringsadd_publicKeyAlgoSelet3 + +Create_Decryption_Keyrings-005 + Create-Decryption Keyrings lyf-RF-test-005 ${path}keyrings//root//tango-ca-root-01-cer.pem ${path}keyrings//root//tango-ca-root-01-key.pem 23 id=certificateType_select0 id=keyringsadd_publicKeyAlgoSelet3 + ... open + +Create_Decryption_Keyrings-006 + Create-Decryption Keyrings lyf-RF-test-006 ${path}keyrings//Intermediate//tang-ca-v3-intermediate-01-cer.pem ${path}keyrings//Intermediate//tang-ca-v3-intermediate-01-key.pem 23 id=certificateType_select1 id=keyringsadd_publicKeyAlgoSelet3 + +Create_Decryption_Keyrings-007 + Create-Decryption Keyrings lyf-RF-test-006 ${path}keyrings//Intermediate//tang-ca-v3-intermediate-01-cer.pem ${path}keyrings//Intermediate//tang-ca-v3-intermediate-01-key.pem 1 id=certificateType_select1 id=keyringsadd_publicKeyAlgoSelet2 + +Create_Decryption_Keyrings-008 + Create-Decryption Keyrings lyf-RF-test-006 ${path}keyrings//Intermediate//tang-ca-v3-intermediate-01-cer.pem ${path}keyrings//Intermediate//tang-ca-v3-intermediate-01-key.pem 2 id=certificateType_select1 id=keyringsadd_publicKeyAlgoSelet1 + +Create_Decryption_Keyrings-009 + Create-Decryption Keyrings lyf-RF-test-006 ${path}keyrings//Intermediate//tang-ca-v3-intermediate-01-cer.pem ${path}keyrings//Intermediate//tang-ca-v3-intermediate-01-key.pem 2 id=certificateType_select1 id=keyringsadd_publicKeyAlgoSelet0 + +Create_Decryption_Keyrings-010 + Create-Decryption Keyrings lyf-RF-test-006 ${path}keyrings//Intermediate//tang-ca-v3-intermediate-01-cer.pem ${path}keyrings//Intermediate//tang-ca-v3-intermediate-01-key.pem 2 id=certificateType_select1 id=keyringsadd_publicKeyAlgoSelet0 + ... open + +Edit_Decryption_Keyrings-011 + Create-Decryption Keyrings lyf-RF-test-006 ${path}keyrings//Intermediate//tang-ca-v3-intermediate-01-cer.pem ${path}keyrings//Intermediate//tang-ca-v3-intermediate-01-key.pem 2 id=certificateType_select1 id=keyringsadd_publicKeyAlgoSelet0 + ${id} get text xpath=//*[@id="ly-table1-listcontent"]/div/div[3]/table/tbody/tr/td[1]/div/div/div/p/span + Edit-Decryption Keyrings id=input_list_li1 ${id} lyf-RF-edit-1 ${path}keyrings//root//mesalab-ca-cert.pem ${path}keyrings//root//mesalab-ca-key.pem 1 + ... id=certificateType_select0 id=keyringsadd_publicKeyAlgoSelet1 + +Edit_Decryption_Keyrings-012 + Create-Decryption Keyrings lyf-RF-test-006 ${path}keyrings//Intermediate//tang-ca-v3-intermediate-01-cer.pem ${path}keyrings//Intermediate//tang-ca-v3-intermediate-01-key.pem 2 id=certificateType_select1 id=keyringsadd_publicKeyAlgoSelet0 + ${name} get text xpath=//*[@id="ly-table1-listcontent"]/div/div[3]/table/tbody/tr/td[2]/div/div/div/p/span + Edit-Decryption Keyrings id=input_list_li2 ${name} lyf-RF-edit-1 ${path}keyrings//root//mesalab-ca-cert.pem ${path}keyrings//root//mesalab-ca-key.pem 1 + ... id=certificateType_select0 id=keyringsadd_publicKeyAlgoSelet1 + +Create_Decryption_Keyrings-013 + Create-Decryption Keyrings lyf-RF-test-013 ${path}keyrings//end-entity//tang-ca-v3-www.amazon.cn-cer.pem ${path}keyrings//end-entity//tang-ca-v3-www.amazon.cn-key.pem 23 id=certificateType_select2 id=keyringsadd_publicKeyAlgoSelet0 + +Create_Decryption_Keyrings-014 + Create-Decryption Keyrings lyf-RF-test-014 ${path}keyrings//end-entity//tang-ca-v3-www.amazon.cn-cer.pem ${path}keyrings//end-entity//tang-ca-v3-www.amazon.cn-key.pem 23 id=certificateType_select2 id=keyringsadd_publicKeyAlgoSelet1 + +Create_Decryption_Keyrings-015 + Create-Decryption Keyrings lyf-RF-test-015 ${path}keyrings//end-entity//tang-ca-v3-www.amazon.cn-cer.pem ${path}keyrings//end-entity//tang-ca-v3-www.amazon.cn-key.pem 23 id=certificateType_select2 id=keyringsadd_publicKeyAlgoSelet2 + +Create_Decryption_Keyrings-016 + Create-Decryption Keyrings lyf-RF-test-016 ${path}keyrings//end-entity//tang-ca-v3-www.amazon.cn-cer.pem ${path}keyrings//end-entity//tang-ca-v3-www.amazon.cn-key.pem 23 id=certificateType_select2 id=keyringsadd_publicKeyAlgoSelet3 + +Create_Decryption_Keyrings-017 + Create-Decryption Keyrings lyf-RF-test-017 ${path}keyrings//end-entity//tang-ca-v3-www.amazon.cn-cer.pem ${path}keyrings//end-entity//tang-ca-v3-www.amazon.cn-key.pem 1 id=certificateType_select2 id=keyringsadd_publicKeyAlgoSelet3 + ... open diff --git a/01-TestCase/tsg_ui/ui_settings/Decryption_Profile_Case.robot b/01-TestCase/tsg_ui/ui_settings/Decryption_Profile_Case.robot new file mode 100644 index 0000000..6f69998 --- /dev/null +++ b/01-TestCase/tsg_ui/ui_settings/Decryption_Profile_Case.robot @@ -0,0 +1,110 @@ +*** Settings *** +Force Tags tsg-ui settings Decryption Profile +Resource ../../../03-Variable/bifangapivariable.txt +Resource ../../../02-Keyword/Tsg_Ui/Setting/Settings.robot +Library OperatingSystem + +*** Test Cases *** +Create_Decryption_Profile-001 + ${dict} Create Dictionary Common Name=1 Issuer=1 Self-signed=1 Expiry Date=1 EV Certificat=1 + ... Certificate Transparency=1 Mutual Authentication=1 On Protocol Errors=1 Certificate Pinning=1 Certificate Not Installed=1 Mirror Client Versions=1 + ... Allow HTTP/2=1 + Create-Policy_Verify1 lyf-test-1 ${dict} + +Create_Decryption_Profile-002 + ${dict} Create Dictionary Common Name=0 Issuer=0 Self-signed=0 Expiry Date=0 EV Certificat=0e + ... Certificate Transparency=0 Mutual Authentication=0 On Protocol Errors=0 Certificate Pinning=0 Certificate Not Installed=0 Mirror Client Versions=0 + ... Allow HTTP/2=0 + Create-Policy_Verify1 lyf-test-2 ${dict} + +Create_Decryption_Profile-003 + ${dict} Create Dictionary Common Name=1 Issuer=1 Self-signed=1 Expiry Date=1 EV Certificat=1 + ... Certificate Transparency=1 Mutual Authentication=1 On Protocol Errors=1 Certificate Pinning=1 Certificate Not Installed=1 Mirror Client Versions=1 + ... Allow HTTP/2=1 + Create-Policy_Verify1 lyf-test-3 ${dict} fail1=Fail-close + +Create_Decryption_Profile-004 + ${dict} Create Dictionary Common Name=1 Issuer=1 Self-signed=1 Expiry Date=1 EV Certificat=1 + ... Certificate Transparency=1 Mutual Authentication=1 On Protocol Errors=1 Certificate Pinning=1 Certificate Not Installed=1 Mirror Client Versions=1 + ... Allow HTTP/2=1 + Create-Policy_Verify1 lyf-test-3 ${dict} fail1=Pass-through + +Create_Decryption_Profile-005 + ${dict} Create Dictionary Common Name=0 Issuer=0 Self-signed=0 Expiry Date=0 EV Certificat=0 + ... Certificate Transparency=0 Mutual Authentication=0 On Protocol Errors=0 Certificate Pinning=0 Certificate Not Installed=0 Mirror Client Versions=0 + ... Allow HTTP/2=0 + Create-Policy_Verify1 lyf-test-5 ${dict} min1=SSLv3.0 max1=SSLv3.0 + +Create_Decryption_Profile-006 + ${dict} Create Dictionary Common Name=0 Issuer=0 Self-signed=0 Expiry Date=0 EV Certificat=0 + ... Certificate Transparency=0 Mutual Authentication=0 On Protocol Errors=0 Certificate Pinning=0 Certificate Not Installed=0 Mirror Client Versions=0 + ... Allow HTTP/2=0 + Create-Policy_Verify1 lyf-test-6 ${dict} min1=TLSv1.0 max1=TLSv1.0 + +Create_Decryption_Profile-007 + ${dict} Create Dictionary Common Name=0 Issuer=0 Self-signed=0 Expiry Date=0 EV Certificat=0 + ... Certificate Transparency=0 Mutual Authentication=0 On Protocol Errors=0 Certificate Pinning=0 Certificate Not Installed=0 Mirror Client Versions=0 + ... Allow HTTP/2=0 + Create-Policy_Verify1 lyf-test-7 ${dict} min1=TLSv1.1 max1=TLSv1.1 + +Create_Decryption_Profile-008 + ${dict} Create Dictionary Common Name=0 Issuer=0 Self-signed=0 Expiry Date=0 EV Certificat=0 + ... Certificate Transparency=0 Mutual Authentication=0 On Protocol Errors=0 Certificate Pinning=0 Certificate Not Installed=0 Mirror Client Versions=0 + ... Allow HTTP/2=0 + Create-Policy_Verify1 lyf-test-8 ${dict} min1=TLSv1.2 max1=TLSv1.2 + +Create_Decryption_Profile-009 + ${dict} Create Dictionary Common Name=0 Issuer=0 Self-signed=0 Expiry Date=0 EV Certificat=0 + ... Certificate Transparency=0 Mutual Authentication=0 On Protocol Errors=0 Certificate Pinning=0 Certificate Not Installed=0 Mirror Client Versions=0 + ... Allow HTTP/2=0 + Create-Policy_Verify1 lyf-test-9 ${dict} min1=TLSv1.3 max1=TLSv1.3 + +Create_Decryption_Profile-010 + ${dict} Create Dictionary Common Name=0 Issuer=0 Self-signed=0 Expiry Date=0 EV Certificat=0 + ... Certificate Transparency=0 Mutual Authentication=1 On Protocol Errors=1 Certificate Pinning=1 Certificate Not Installed=0 Mirror Client Versions=1 + ... Allow HTTP/2=1 + Create-Policy_Verify1 lyf-test-10 ${dict} + +Create_Decryption_Profile-011 + ${dict} Create Dictionary Common Name=1 Issuer=1 Self-signed=1 Expiry Date=1 EV Certificat=0 + ... Certificate Transparency=0 Mutual Authentication=1 On Protocol Errors=1 Certificate Pinning=1 Certificate Not Installed=0 Mirror Client Versions=1 + ... Allow HTTP/2=1 + Create-Policy_Verify1 lyf-test-11 ${dict} fail1=Fail-close + +Create_Decryption_Profile-012 + ${dict} Create Dictionary Common Name=1 Issuer=1 Self-signed=1 Expiry Date=1 EV Certificat=0 + ... Certificate Transparency=0 Mutual Authentication=1 On Protocol Errors=1 Certificate Pinning=1 Certificate Not Installed=0 Mirror Client Versions=1 + ... Allow HTTP/2=1 + Create-Policy_Verify1 lyf-test-12 ${dict} fail1=Pass-through + +Create_Decryption_Profile-013 + ${dict} Create Dictionary Common Name=0 Issuer=0 Self-signed=0 Expiry Date=0 EV Certificat=1 + ... Certificate Transparency=1 Mutual Authentication=1 On Protocol Errors=1 Certificate Pinning=1 Certificate Not Installed=1 Mirror Client Versions=1 + ... Allow HTTP/2=1 + Create-Policy_Verify1 lyf-test-13 ${dict} + +Create_Decryption_Profile-014 + ${dict} Create Dictionary Common Name=0 Issuer=0 Self-signed=0 Expiry Date=0 EV Certificat=0 + ... Certificate Transparency=0 Mutual Authentication=0 On Protocol Errors=0 Certificate Pinning=0 Certificate Not Installed=0 Mirror Client Versions=1 + ... Allow HTTP/2=1 + Create-Policy_Verify1 lyf-test-14 ${dict} + +Create_Decryption_Profile-015 + ${dict} Create Dictionary Common Name=0 Issuer=0 Self-signed=0 Expiry Date=0 EV Certificat=0 + ... Certificate Transparency=0 Mutual Authentication=0 On Protocol Errors=0 Certificate Pinning=0 Certificate Not Installed=0 Mirror Client Versions=0 + ... Allow HTTP/2=1 + Create-Policy_Verify1 lyf-test-15 ${dict} + +Edit_Dercryption_Profile-16 + ${dict} Create Dictionary Common Name=1 Issuer=1 Self-signed=1 Expiry Date=1 EV Certificat=1 + ... Certificate Transparency=1 Mutual Authentication=1 On Protocol Errors=1 Certificate Pinning=1 Certificate Not Installed=1 Mirror Client Versions=0 + ... Allow HTTP/2=0 + Create-Policy_Verify1 lyf-test-16 ${dict} fail1=Pass-through min1=SSLv3.0 max1=SSLv3.0 + Sleep 1 + ${id} get text xpath=//*[@id="app"]/div/div[3]/div/div/div[2]/div[2]/div/div[3]/table/tbody/tr[1]/td[1]/div/div/span + sleep 1 + ${dict1} Create Dictionary Common Name=0 Issuer=0 Self-signed=1 Expiry Date=1 EV Certificat=0 + ... Certificate Transparency=0 Mutual Authentication=0 On Protocol Errors=0 Certificate Pinning=0 Certificate Not Installed=0 Mirror Client Versions=0 + ... Allow HTTP/2=0 + Edit_Policy_Verify id=input_list_li1 ${id} lyf-edit-test-1 ${dict1} fail1=Fail-close min1=TLSv1.2 + ... max1=TLSv1.2 diff --git a/01-TestCase/tsg_ui/ui_settings/Hijack_Files_Case.robot b/01-TestCase/tsg_ui/ui_settings/Hijack_Files_Case.robot new file mode 100644 index 0000000..62ae032 --- /dev/null +++ b/01-TestCase/tsg_ui/ui_settings/Hijack_Files_Case.robot @@ -0,0 +1,48 @@ +*** Settings *** +Force Tags tsg-ui settings Hijack Files +Resource ../../../03-Variable/bifangapivariable.txt +Resource ../../../02-Keyword/Tsg_Ui/Setting/Settings.robot +Library OperatingSystem + +*** Test Cases *** +Create_Hijack_Files-001 + Create-Hijack Files lyf-test-001-apk ${path}hijack_files/Create-Hijack Files-test.apk id=application/vnd.android.package-archive0 + +Create_Hijack_Files-002 + Create-Hijack Files lyf-test-002-exe ${path}hijack_files/Create-Hijack Files-test-1.exe id=application/x-msdos-program0 + +Create_Hijack_Files-003 + Create-Hijack Files lyf-test-003-gif ${path}hijack_files/Create-Hijack Files-test-2.gif id=image/gif0 + +Create_Hijack_Files-004 + Create-Hijack Files lyf-test-004-html ${path}hijack_files/Create-Hijack Files-test-3.html id=text/html0 + +Create_Hijack_Files-005 + Create-Hijack Files lyf-test-005-jpeg ${path}hijack_files/Create-Hijack Files-test-4.jpeg id=image/jpeg1 + +Create_Hijack_Files-006 + Create-Hijack Files lyf-test-006-png ${path}hijack_files/Create-Hijack Files-test-5.png id=image/png2 + +Create_Hijack_Files-007 + Create-Hijack Files lyf-test-007-svg ${path}hijack_files/Create-Hijack Files-test-6.svg id=image/svg+xml3 + +Edit_Hijack_Files-008 + Create-Hijack Files lyf-test-001-apk ${path}hijack_files/Create-Hijack Files-test.apk id=application/vnd.android.package-archive0 + ${name} get text xpath=//*[@id="ly-table1-listcontent"]/div/div[3]/table/tbody/tr/td[2]/div/span + Edit-Hijack Files id=input_list_li2 ${name} lyf-Edit-test-001 ${path}hijack_files\\Create-Hijack Files-test.apk id=application/vnd.android.package-archive0 + +Edit_Hijack_Files-009 + Create-Hijack Files lyf-test-001-apk ${path}hijack_files/Create-Hijack Files-test.apk id=application/vnd.android.package-archive0 + ${id} get text xpath=//*[@id="ly-table1-listcontent"]/div/div[3]/table/tbody/tr/td[1]/div/span + Edit-Hijack Files id=input_list_li1 ${id} lyf-Edit-test-002 ${path}hijack_files\\Create-Hijack Files-test.apk id=application/vnd.android.package-archive0 + +Edit_Hijack_Files-010 + Create-Hijack Files lyf-test-001-apk ${path}hijack_files/Create-Hijack Files-test.apk id=application/vnd.android.package-archive0 + ${id} get text xpath=//*[@id="ly-table1-listcontent"]/div/div[3]/table/tbody/tr/td[1]/div/span + Edit-Hijack Files id=input_list_li1 ${id} lyf-Edit-test-003 ${path}hijack_files\\Create-Hijack Files-test.apk id=application/vnd.android.package-archive0 close + +Create_Hijack_Files-011 + Create-Hijack Files lyf-test-011-svg ${path}hijack_files/Create-Hijack Files-test-6.svg id=image/svg+xml3 close shuru + +Create_Hijack_Files-012 + Create-Hijack Files lyf-test-011-svg ${path}hijack_files/Create-Hijack Files-test-6.svg id=image/svg+xml3 open diff --git a/01-TestCase/tsg_ui/ui_settings/Insert_Scripts_Case.robot b/01-TestCase/tsg_ui/ui_settings/Insert_Scripts_Case.robot new file mode 100644 index 0000000..fba8b12 --- /dev/null +++ b/01-TestCase/tsg_ui/ui_settings/Insert_Scripts_Case.robot @@ -0,0 +1,42 @@ +*** Settings *** +Force Tags tsg-ui settings insert_scripts +Resource ../../../03-Variable/bifangapivariable.txt +Library OperatingSystem +Resource ../../../02-Keyword/Tsg_Ui/Setting/Settings.robot + +*** Test Cases *** +Create_Insert_Scripts-001 + [Tags] css + Create-Insert Scripts lyf-test-001-css ${path}insert_files\\Create-Insert Scripts-test.css xpath=/html/body/div/div[1]/div[1]/ul/li[1] + +Create_Insert_Scripts-002 + [Tags] js + Create-Insert Scripts lyf-test-002-js ${path}insert_files\\Create-Insert_Scripts-test.js xpath=/html/body/div/div[1]/div[1]/ul/li[2] + +Create_Insert_Scripts-003 + [Tags] css name最小值 + Create-Insert Scripts 1 ${path}insert_files\\Create-Insert Scripts-test.css xpath=/html/body/div/div[1]/div[1]/ul/li[1] + +Create_Insert_Scripts-004 + [Tags] css name传入超过128字符 + Create-Insert Scripts ${path}insert_files\\Create-Insert Scripts-test.css${path}insert_files\\Create-Insert Scripts-test.css${path}insert_files\\Create-Insert Scripts-test.css ${path}insert_files\\Create-Insert Scripts-test.css xpath=/html/body/div/div[1]/div[1]/ul/li[1] + +Create_Insert_Scripts-005 + [Tags] js name最小值 + Create-Insert Scripts 1 ${path}insert_files\\Create-Insert_Scripts-test.js xpath=/html/body/div/div[1]/div[1]/ul/li[2] + +Create_Insert_Scripts-006 + [Tags] js name传入超过128字符 + Create-Insert Scripts ${path}insert_files\\Create-Insert Scripts-test.css${path}insert_files\\Create-Insert Scripts-test.css${path}insert_files\\Create-Insert Scripts-test.css ${path}insert_files\\Create-Insert_Scripts-test.js xpath=/html/body/div/div[1]/div[1]/ul/li[2] + +Edit_Insert_Scripts-007 + [Tags] css edit + Create-Insert Scripts lyf-test-001-css ${path}insert_files\\Create-Insert Scripts-test.css xpath=/html/body/div/div[1]/div[1]/ul/li[1] + ${id} get text xpath=//*[@id="app"]/div/div[3]/div/div/div[2]/div[2]/div/div[3]/table/tbody/tr/td[1]/div/div/span + Edit-Insert Scripts id=input_list_li1 ${id} lyf-Edit-test-001 ${path}insert_files\\Create-Insert Scripts-test.css xpath=/html/body/div/div[1]/div[1]/ul/li[1] + +Edit_Insert_Scripts-008 + [Tags] edit js + Create-Insert Scripts 1 ${path}insert_files\\Create-Insert Scripts-test.css xpath=/html/body/div/div[1]/div[1]/ul/li[1] + ${name} get text xpath=//*[@id="app"]/div/div[3]/div/div/div[2]/div[2]/div/div[3]/table/tbody/tr[1]/td[2]/div/div/span + Edit-Insert Scripts id=input_list_li2 ${name} lyf-Edit-test-008 ${path}insert_files\\Create-Insert_Scripts-test.js xpath=/html/body/div/div[1]/div[1]/ul/li[2] diff --git a/01-TestCase/tsg_ui/ui_settings/Response_Pages_Case.robot b/01-TestCase/tsg_ui/ui_settings/Response_Pages_Case.robot new file mode 100644 index 0000000..ef72591 --- /dev/null +++ b/01-TestCase/tsg_ui/ui_settings/Response_Pages_Case.robot @@ -0,0 +1,38 @@ +*** Settings *** +Force Tags tsg-ui settings response_pages +Resource ../../../03-Variable/bifangapivariable.txt +Library OperatingSystem +Resource ../../../02-Keyword/Tsg_Ui/Setting/Settings.robot + +*** Test Cases *** +Create_Response_pages-001 + [Tags] html + Create-Response Pages Create-Response Pages-001 ${path}response_pages_files\\Create-Response Pages-test.html + +Create_Response_pages-002 + [Tags] htm + Create-Response Pages Create-Response Pages-001 ${path}response_pages_files\\Create-Response_Pages-test-2.htm + +Create_Response_pages-003 + [Tags] name最小值 + Create-Response Pages 1 ${path}response_pages_files\\Create-Response_Pages-test-2.htm + +Create_Response_pages-004 + [Tags] name超过128字符 + Create-Response Pages ${path}response_pages_files\\Create-Response Pages-test2.htm${path}response_pages_files\\Create-Response Pages-test2.htm${path}response_pages_files\\Create-Response Pages-test2.htm ${path}response_pages_files\\Create-Response_Pages-test-2.htm + +Create_Response_pages-005 + [Tags] 中英俄特殊字符 + Create-Response Pages 中文+absc+моряков+@#¥%……&* ${path}response_pages_files\\Create-Response Pages-test.html + +Edit_Response_pages-006 + [Tags] 修改+以id为查找对象 + Create-Response Pages Create-Response Pages-001 ${path}response_pages_files\\Create-Response Pages-test.html + ${id} get text xpath=//*[@id="ly-table1-listcontent"]/div/div[3]/table/tbody/tr/td[1]/div/div/span + Edit-Response Pages id=input_list_li1 ${id} lyf-Edit-test-001 ${path}response_pages_files\\Create-Response Pages-test-1.html + +Edit_Response_pages-007 + [Tags] 修改+以name为查找对象 + Create-Response Pages Create-Response Pages-001 ${path}response_pages_files\\Create-Response Pages-test.html + ${name} get text xpath=//*[@id="ly-table1-listcontent"]/div/div[3]/table/tbody/tr/td[2]/div/div/span + Edit-Response Pages id=input_list_li2 ${name} lyf-Edit-test-007 ${path}response_pages_files\\Create-Response Pages-test-1.html diff --git a/01-TestCase/tsg_ui/ui_settings/SSL_Decryption_Exclusion_Case.robot b/01-TestCase/tsg_ui/ui_settings/SSL_Decryption_Exclusion_Case.robot new file mode 100644 index 0000000..a75cefa --- /dev/null +++ b/01-TestCase/tsg_ui/ui_settings/SSL_Decryption_Exclusion_Case.robot @@ -0,0 +1,22 @@ +*** Settings *** +Force Tags tsg-ui settings SSL Decryption Exclusion +Resource ../../../03-Variable/bifangapivariable.txt +Resource ../../../02-Keyword/Tsg_Ui/Setting/Settings.robot +Library OperatingSystem + +*** Test Cases *** +Create_SSL_Decryption_Exclusion-001 + Create-SSL Decryption Exclusion $www.jianshu.com jianshu www.jianshu.com + +Create_SSL_Decryption_Exclusion-002 + Create-SSL Decryption Exclusion *myssl.com myssl.com myssl.com + +Edit_SSL_Decryption_Exclusion-003 + Create-SSL Decryption Exclusion *myssl.com myssl.com myssl.com + ${id} get text xpath=//*[@id="ly-table1-listcontent"]/div/div[3]/table/tbody/tr/td[1]/div/div/div/p/span + Edit-SSL Decryption Exclusion id=input_list_li1 ${id} $www.jianshu.com 简书 + +Edit_SSL_Decryption_Exclusion-004 + Create-SSL Decryption Exclusion *myssl.com myssl.com myssl.com + ${id} get text xpath=//*[@id="ly-table1-listcontent"]/div/div[3]/table/tbody/tr/td[1]/div/div/div/p/span + Edit-SSL Decryption Exclusion id=input_list_li1 ${id} $www.jianshu.com 简xpath=//*[@id="ly-table1-listcontent"]/div/div[3]/table/tbody/tr/td[1]/div/div/div/p/spanxpath=//*[@id="ly-table1-listcontent"]/div/div[3]/table/tbody/tr/td[1]/div/div/div/p/span书 diff --git a/01-TestCase/tsg_ui/ui_settings/Search_Cached_Intermediate_Certificates_Case.robot b/01-TestCase/tsg_ui/ui_settings/Search_Cached_Intermediate_Certificates_Case.robot new file mode 100644 index 0000000..b53771e --- /dev/null +++ b/01-TestCase/tsg_ui/ui_settings/Search_Cached_Intermediate_Certificates_Case.robot @@ -0,0 +1,30 @@ +*** Settings *** +Force Tags tsg-ui settings Cached Intermediate Certificates +Resource ../../../03-Variable/bifangapivariable.txt +Resource ../../../02-Keyword/Tsg_Ui/Setting/Settings.robot +Library OperatingSystem + +*** Test Cases *** +Search_Cached_Intermediate_Certificates-001 + Sleep 1 + click id=children5 #点击一级目录Settings + Sleep 1 + click id=sidebarProxy_CertificateManagement #点击二级目录Trusted Certificate Authorities + Sleep 2 + click xpath=//*[@id="proxyTabs"]/div/ul/li[4] #点击Cached Intermediate Certificates按钮 + Sleep 3 + ${id} get text xpath=//*[@id="ly-table1-listcontent"]/div/div[3]/table/tbody/tr[1]/td[1]/div/div/div/p/span + Sleep 2 + Search-Cached Intermediate Certificates id=input_list_li1 ${id} xpath=//*[@id="ly-table1-listcontent"]/div/div[3]/table/tbody/tr/td[9] + +Search_Cached_Intermediate_Certificates-002 + Sleep 1 + click id=children5 #点击一级目录Settings + Sleep 1 + click id=sidebarProxy_CertificateManagement #点击二级目录Trusted Certificate Authorities + Sleep 2 + click xpath=//*[@id="proxyTabs"]/div/ul/li[4] #点击Cached Intermediate Certificates按钮 + Sleep 3 + ${sni} get text xpath=//*[@id="ly-table1-listcontent"]/div/div[3]/table/tbody/tr[1]/td[2]/div/div/div/p/span + Sleep 3 + Search-Cached Intermediate Certificates id=input_list_li2 ${sni} xpath=//*[@id="ly-table1-listcontent"]/div/div[3]/table/tbody/tr/td[9] diff --git a/01-TestCase/tsg_ui/ui_settings/Traffic_Mirror_Profiles_Case.robot b/01-TestCase/tsg_ui/ui_settings/Traffic_Mirror_Profiles_Case.robot new file mode 100644 index 0000000..c52db70 --- /dev/null +++ b/01-TestCase/tsg_ui/ui_settings/Traffic_Mirror_Profiles_Case.robot @@ -0,0 +1,30 @@ +*** Settings *** +Force Tags tsg-ui settings Traffic Mirror Profiles +Resource ../../../03-Variable/bifangapivariable.txt +Resource ../../../02-Keyword/Tsg_Ui/Setting/Settings.robot +Library OperatingSystem + +*** Test Cases *** +Create_Traffic_Mirror_Profiles-001 + [Tags] vlan最小值 + Create-Traffic Mirror Profiles lyf-test-004-vlan xpath=/html/body/div/div[1]/div[1]/ul/li[1] 1 + +Create_Traffic_Mirror_Profiles-002 + [Tags] vlan最大值 + Create-Traffic Mirror Profiles lyf-test-002-vlan xpath=/html/body/div/div[1]/div[1]/ul/li[1] 4094 + +Create_Traffic_Mirror_Profiles-003 + [Tags] mac + Create-Traffic Mirror Profiles lyf-test-003-mac xpath=/html/body/div/div[1]/div[1]/ul/li[2] 11:11:11:11:11:11 + +Edit_Traffic_Mirror_Profiles-004 + [Tags] mac + Create-Traffic Mirror Profiles lyf-test-003-mac xpath=/html/body/div/div[1]/div[1]/ul/li[2] 11:11:11:11:11:11 + ${id} get text xpath=//*[@id="app"]/div/div[3]/div/div/div[2]/div[2]/div/div[3]/table/tbody/tr/td[1]/div/div/span + Edit-Traffic Mirror Profiles id=input_list_li1 ${id} lyf-Edit-test-001 xpath=/html/body/div/div[1]/div[1]/ul/li[2] 11:11:11:11:11:12 + +Edit_Traffic_Mirror_Profiles-005 + [Tags] vlan最大值 + Create-Traffic Mirror Profiles lyf-test-002-vlan xpath=/html/body/div/div[1]/div[1]/ul/li[1] 4094 + ${name} get text xpath=//*[@id="app"]/div/div[3]/div/div/div[2]/div[2]/div/div[3]/table/tbody/tr/td[2]/div/div/span + Edit-Traffic Mirror Profiles id=input_list_li2 ${name} lyf-Edit-test-002 xpath=/html/body/div/div[1]/div[1]/ul/li[1] 11 diff --git a/01-TestCase/tsg_ui/ui_settings/Trusted_Certificate_Authorities_Case.robot b/01-TestCase/tsg_ui/ui_settings/Trusted_Certificate_Authorities_Case.robot new file mode 100644 index 0000000..ffaf139 --- /dev/null +++ b/01-TestCase/tsg_ui/ui_settings/Trusted_Certificate_Authorities_Case.robot @@ -0,0 +1,25 @@ +*** Settings *** +Force Tags tsg-ui settings Trusted Certificate Authorities +Resource ../../../03-Variable/bifangapivariable.txt +Resource ../../../02-Keyword/Tsg_Ui/Setting/Settings.robot +Library OperatingSystem + +*** Test Cases *** +Create_Trusted_Certificate_Authorities-001 + import-Trusted Certificate Authorities lyf-RF-test-001 ${path}keyrings//root//tango-ca-root-01-cer.pem + +Create_Trusted_Certificate_Authorities-002 + import-Trusted Certificate Authorities test ${path}keyrings//root//tango-ca-root-01-cer.pem + +Create_Trusted_Certificate_Authorities-003 + import-Trusted Certificate Authorities ${path}keyrings//root//tango-ca-root-01-cer.pem${path}keyrings//root//tango-ca-root-01-cer.pem${path}keyrings//root//tango-ca-root-01-cer.pem ${path}keyrings//root//tango-ca-root-01-cer.pem + +Edit_Trusted_Certificate_Authorities-004 + import-Trusted Certificate Authorities lyf-RF-test-001 ${path}keyrings//root//tango-ca-root-01-cer.pem + ${id} get text xpath=//*[@id="ly-table1-listcontent"]/div/div[3]/table/tbody/tr/td[1]/div/div/div/p/span + Edit-Trusted Certificate Authorities id=input_list_li1 ${id} lyf-edit-test-001 ${path}keyrings//root//tango-ca-root-01-cer.pem + +Edit_Trusted_Certificate_Authorities-005 + import-Trusted Certificate Authorities lyf-RF-test-001 ${path}keyrings//root//tango-ca-root-01-cer.pem + ${name} get text xpath=//*[@id="ly-table1-listcontent"]/div/div[3]/table/tbody/tr/td[2]/div/div/div/p/span + Edit-Trusted Certificate Authorities id=input_list_li2 ${name} lyf-edit-test-001 ${path}keyrings//root//tango-ca-root-01-cer.pem diff --git a/02-Keyword/tsg_ui/FTPHandle.robot b/02-Keyword/tsg_ui/FTPHandle.robot new file mode 100644 index 0000000..a81a78d --- /dev/null +++ b/02-Keyword/tsg_ui/FTPHandle.robot @@ -0,0 +1,94 @@ +*** Settings *** +Library FtpLibrary + +*** Keywords *** +checkFTPRecvReport + [Arguments] ${fURL} ${fport} ${fuser} ${fpwd} ${fpath} ${filename} + [Documentation] [fURL写法例如:192.168.1.1] + ... [fport写法例如:21] + ... [fuser写法例如:wxs] + ... [fpwd要写ftp服务器的密码,写法例如:111111] + ... [fpath要写ftp服务器的绝对路径,写法例如:/a/b/20200110/] + ... [filename,是指系统下发report时对report起的名字,在这里判断方法是ftp文件名称是否包含report名称,所以在TSG系统上下发report时应尽量不要用重名,以免判断失误,写法例如:长安街] + ... [注意:该关键字无返回值,他是等同于一个用例,若字符串不包含则表示用例执行失败,会有相关信息打印] + [Tags] function FTP reportResult + Ftp Connect ${fURL} ${fuser} ${fpwd} ${fport} + sleep 1 + cwd ${fpath} + sleep 1 + @{dirname} Dir Names + sleep 1 + ${Strdirname} Evaluate ''.join(@{dirname}) + Should Contain ${Strdirname} ${filename} + ftp close + +FTPDownloadFile + [Arguments] ${fURL} ${fport} ${fuser} ${fpwd} ${SrcPath} ${SrcName} ${dstPathName} + [Documentation] [fUrl是FTP服务器地址,例如:192.168.1.1] + ... [fport是ftp服务器的端口号,例如:21] + ... [fuser是用户名,例如:wxs] + ... [fpwd是密码,例如:wqqq] + ... [SrcPath是ftp服务器上的要下载的文件的路径,文件包名称必须写,例如:/a/b/] + ... [SrcName是ftp服务器上的要下载的文件名称,文件名称不要太复杂(不要包含符号),否则无法识别,例如:teacher王.txt] + ... [dstPathName是下载到本地时的本地路径名(+名称),名称可不写,建议不写,下载到本地的名称就会与FTP上文件一样,写法:1. D:/rfftppy/tmp/ 2.D:/rfftppy/tmp/b.txt \] + [Tags] function FTP downloadFile + Ftp Connect ${fURL} ${fuser} ${fpwd} ${fport} + cwd ${SrcPath} + sleep 1 + download file ${SrcName} ${dstPathName} + ftp close + +FTPUploadFileToTest + [Arguments] ${fURL} ${fport} ${fuser} ${fpwd} ${SrcPathName} + [Documentation] [fURL写法例如:192.168.1.1] + ... [fport写法例如:21] + ... [fuser写法例如:wxs] + ... [fpwd要写ftp服务器的密码,写法例如:111111] + ... [SrcPathName,本地待上传的文件的路径名,例如:E:/qqq.txt] + ... [注意:该关键字默认上传到ftp服务器的/test目录下,若test目录不存在会自己创建] + [Tags] function FTP uploadFileToTest + ${intest} Set Variable test + Run Keyword If '${fport}'!='21' Run Keyword Log 请注意:FTP服务器端口号不是21(默认端口号),请继续登入 + ... AND Log 登入中... + Ftp Connect ${fURL} ${fuser} ${fpwd} ${fport} + @{dirnames} Dir Names + ${result} checkListContainStirng ${intest} @{dirnames} + log ${SrcPathName} + Run Keyword If '${result}'=='${intest}' log /test目录存在 + ... ELSE Run Keyword log /test目录不存在,已创建并上传文件 + ... AND Mkd ${intest} + Cwd ${intest} + Comment @{aa} Dir Names + Upload File ${SrcPathName} + +checkListContainStirng + [Arguments] ${str} @{strlist} + FOR ${value} IN @{strlist} + Log ${value} + Return From Keyword If '${value}'=='${str}' ${value} + END + Return From Keyword ${value} + +FTPUploadFile + [Arguments] ${fURL} ${fport} ${fuser} ${fpwd} ${SrcPathName} + [Documentation] [fURL写法例如:192.168.1.1] + ... [fport写法例如:21] + ... [fuser写法例如:wxs] + ... [fpwd要写ftp服务器的密码,写法例如:111111] + ... [SrcPathName,本地待上传的文件的路径名,例如:E:/qqq.txt] + ... [注意:该关键字默认上传到ftp服务器的root目录下] + [Tags] function FTP uploadFile + Run Keyword If '${fport}'!='21' Run Keyword Log 请注意:FTP服务器端口号不是21(默认端口号),请继续登入 + ... AND Log 登入中... + Ftp Connect ${fURL} ${fuser} ${fpwd} ${fport} + Upload File ${SrcPathName} + +FTPLogin + [Arguments] ${fURL} ${fport} ${fuser} ${fpwd} + [Documentation] [fURL写法例如:192.168.1.1] + ... [fport写法例如:21] + ... [fuser写法例如:wxs] + ... [fpwd要写ftp服务器的密码,写法例如:111111] + [Tags] function FTP login + Ftp Connect ${fURL} ${fuser} ${fpwd} ${fport} + Get Welcome diff --git a/02-Keyword/tsg_ui/Menu.robot b/02-Keyword/tsg_ui/Menu.robot new file mode 100644 index 0000000..6089c22 --- /dev/null +++ b/02-Keyword/tsg_ui/Menu.robot @@ -0,0 +1,23 @@ +*** Settings *** +Library Selenium2Library + +*** Keywords *** +Menu + [Arguments] ${menuOne} ${menuTwo} + Wait Until Element Is Enabled id=routerEvent0 + # 一级菜单 + ${dict} create dictionary dashboard=routerEvent0 policy&objects=children1 log=children2 report=children3 device=children4 settings=children5 administartion=children6 + # 二级菜单 + ${policy&objects} create dictionary Security Policy=sidebarObjects_ProxyInterception Proxy Policy=sidebarObjects_ProxyManipulation Objects=sidebarObjects_Objects Schedules=sidebarObjects_Schedule Tags=sidebarObjects_Tags + ${log} create dictionary Security Event Logs=sidebarLog_SecurityEventLogs Proxy Event Logs=sidebarLog_ProxyEventLogs Session Records=sidebarLog_SesssionRecords Radius Logs=sidebarLog_RadiusLogs + # 遍历一级菜单 + FOR ${list} ${num} IN ENUMERATE @{dict} + run keyword if "${num}"=="${menuOne}" run keywords sleep 5 + ... AND click element id=${dict}[${num}] + END + # 遍历二级菜单 + FOR ${list} ${num} IN ENUMERATE @{${menuOne}} + run keyword if "${num}"=="dashboard" Exit For Loop + ... ELSE IF "${num}"=="${menuTwo}" run keywords sleep 3 + ... AND click element id=${${menuOne}}[${num}] + END diff --git a/02-Keyword/tsg_ui/log/Log.robot b/02-Keyword/tsg_ui/log/Log.robot new file mode 100644 index 0000000..d4cdc4c --- /dev/null +++ b/02-Keyword/tsg_ui/log/Log.robot @@ -0,0 +1,259 @@ +*** Settings *** +Documentation 写用例的话,直接调用关键字,输入关键字参数的值。 +... 例如:想查询时间为2020-02-24 00:00:00 到2020-02-25 00:00:00 \ 的policy id为2409的log +... 1、创建一个case, +... 2、输入关键字Security Event Logs +... 3、输入必填参数的值(根据关键字里的要求填入相对应的值) +... 必填参数:${time1} | ${time2} | ${type1} | ${value} | ${element1} +... ${time1}:为开始时间 \ ${time2}:为结束时间 +... ${type1}:为要查询的类型 +... ${value}:要查询的内容 +... ${element1}:想要获取信息的定位元素 +... +... 4、直接运行该case +Library Selenium2Library +Library ExcelLibrary + +*** Keywords *** +click + [Arguments] ${element} + Click Element ${element} + +input + [Arguments] ${element} ${text} + Input Text ${element} ${text} + +ui-login + Open Browser http://192.168.40.120 Chrome + input xpath=//*[@id="app"]/div/div[2]/div/div[2]/div/input lyf + input xpath=//*[@id="app"]/div/div[2]/div/div[3]/div/input 111111 + click xpath=//*[@id="app"]/div/div[2]/div/div[4]/button + +ui-logout + Close Browser + +Security Event Logs + [Arguments] ${time1} ${time2} ${type1} ${value} ${element1} + #打开浏览器 + #TSG-登录 lyf 111111 + Sleep 1 + click id=children2 #点击一级目录log + Sleep 1 + click id=sidebarLog_SecurityEventLogs #点击二级目录Security Event Logs + sleep 1 + ${result} ${text1} Run Keyword And Ignore Error text #获取弹出框文本,进行异常处理 + run keyword if '${result}'=='Pass' run keywords click xpath=/html/body/div/div/div[3]/button + sleep 1 + Clear Element Text xpath=//*[@id="app"]/div/div[3]/div/div/div[2]/div/input[1] #清空输入框 + sleep 1 + input xpath=//*[@id="app"]/div/div[3]/div/div/div[2]/div/input[1] ${time1} #在输入框里输入时间 \ 格式为2020-02-24 18:21:01 + sleep 1 + Clear Element Text xpath=//*[@id="app"]/div/div[3]/div/div/div[2]/div/input[2] #清空输入框 + sleep 1 + input xpath=//*[@id="app"]/div/div[3]/div/div/div[2]/div/input[2] ${time2} #在输入框里输入时间 \ 格式为2020-02-24 18:21:01 + sleep 1 + click xpath=/html/body/div/div[2]/button[2] + sleep 1 + click id=one-input + sleep 1 + click ${type1} #选择要查询的类型 + sleep 1 + input id=sreach_input ${value} #在输入框输入查询数据 + sleep 1 + click xpath=//*[@id="app"]/div/div[3]/div/div/div[1]/div/div[2] #点击搜索按钮 + sleep 2 + ${result1} ${text2} Run Keyword And Ignore Error text #获取弹出框文本,进行异常处理 + run keyword if '${result}'=='Pass' run keywords click xpath=/html/body/div/div/div[3]/button + sleep 1 + ${text3} Get text xpath=//*[@id="app"]/div/div[3]/div/div/div[7]/div/ul/li[1]/span + # Evaluate ${text3}.replace('','Total: ') + ${t} Convert To Integer ${text3} + ${a1} Evaluate ${t}%20 #求余 + ${t1}= Evaluate math.ceil(${t}/20) math #求整(如果有余数会得出整数加1) + ${t2} Evaluate ${t1}+1 + : FOR ${j} IN RANGE 1 ${t2} + \ ForSElog ${element1} ${j} ${t1} ${a1} + \ click xpath=//*[@id="zhumingmingPageRight"]/i + #关闭浏览器 + +text + sleep 2 + ${text1} Get Text xpath=/html/body/div/div/div[3]/button/span + +ForSElog + [Arguments] ${element} ${j} ${t1} ${a1} + : FOR ${i} IN RANGE 1 21 + \ log ${i} + \ click xpath=//*[@id="ly-table1-listcontent"]/div/div[3]/table/tbody/tr[${i}]/td[3] + \ sleep 2 + \ ${text4} Get text ${element} + \ log ${text4} + \ click id=securityEvent_logIdClose + \ run keyword if '${j}'=='${t1}' log yes + \ IF1 ${i} ${a1} + +IF1 + [Arguments] ${i} ${a2} + run keyword if '${i}'=='${a2}' Exit For Loop + +Proxy Event Logs + [Arguments] ${time1} ${time2} ${type1} ${value} ${element1} + #打开浏览器 + #TSG-登录 lyf 111111 + Sleep 1 + click id=children2 #点击一级目录log + Sleep 1 + click id=sidebarLog_ProxyEventLogs #点击二级目录ProxyEventLogs + sleep 1 + ${result} ${text1} Run Keyword And Ignore Error text1 #获取弹出框文本,进行异常处理 + run keyword if '${result}'=='Pass' run keywords click xpath=/html/body/div/div/div[3]/button + #click xpath=/html/body/div/div/div[3]/button + Clear Element Text id=d #清空输入框 + sleep 1 + input id=d ${time1} #在输入框里输入时间 \ 格式为2020-02-24 18:21:01 + sleep 1 + Clear Element Text id=a #清空输入框 + sleep 1 + input id=a ${time2} #在输入框里输入时间 \ 格式为2020-02-24 18:21:01 + sleep 1 + click xpath=/html/body/div/div[2]/button[2] #点击时间组件的ok按钮 + sleep 1 + click id=one-input #点击查询输入框 + sleep 1 + click ${type1} #选择要查询的类型 + sleep 1 + input id=sreach_input ${value} #在输入框输入查询数据 + sleep 1 + click xpath=//*[@id="app"]/div/div[3]/div/div/div[1]/div/div[2] #点击搜索按钮 + sleep 2 + ${result1} ${text2} Run Keyword And Ignore Error text1 #获取弹出框文本,进行异常处理 + run keyword if '${result}'=='Pass' run keywords click xpath=/html/body/div/div/div[3]/button + sleep 1 + ${text3} Get text xpath=//*[@id="app"]/div/div[3]/div/div/div[7]/div/ul/li[1]/span #获取列表数量 + # Evaluate ${text3}.replace('','Total: ') + ${t} Convert To Integer ${text3} #text转换为int + ${a1} Evaluate ${t}%20 #求余 + ${t1}= Evaluate math.ceil(${t}/20) math #求整(如果有余数会得出整数加1) + ${t2} Evaluate ${t1}+1 + : FOR ${j} IN RANGE 1 ${t2} + ForPElog ${element1} ${j} ${t1} ${a1} + click xpath=//*[@id="zhumingmingPageRight"]/i #点击翻页 + #关闭浏览器 + +text1 + sleep 2 + ${text1} Get Text xpath=/html/body/div[3]/div/div[3]/button/span + +SE logs-Export + [Arguments] ${time1} ${time2} ${type1} ${value} ${file} + #打开浏览器 + #TSG-登录 lyf 111111 + Sleep 1 + click id=children2 #点击一级目录log + Sleep 1 + click id=sidebarLog_SecurityEventLogs #点击二级目录Security Event Logs + sleep 1 + ${result} ${text1} Run Keyword And Ignore Error text #获取弹出框文本,进行异常处理 + run keyword if '${result}'=='Pass' run keywords click xpath=/html/body/div/div/div[3]/button + #click xpath=/html/body/div[2]/div/div[3]/button + Clear Element Text xpath=//*[@id="app"]/div/div[3]/div/div/div[2]/div/input[1] #清空输入框 + sleep 1 + input xpath=//*[@id="app"]/div/div[3]/div/div/div[2]/div/input[1] ${time1} #在输入框里输入时间 \ 格式为2020-02-24 18:21:01 + sleep 1 + Clear Element Text xpath=//*[@id="app"]/div/div[3]/div/div/div[2]/div/input[2] #清空输入框 + sleep 1 + input xpath=//*[@id="app"]/div/div[3]/div/div/div[2]/div/input[2] ${time2} #在输入框里输入时间 \ 格式为2020-02-24 18:21:01 + sleep 1 + click xpath=/html/body/div/div[2]/button[2] + sleep 1 + click id=one-input + sleep 1 + click ${type1} #选择要查询的类型 + sleep 1 + input id=sreach_input ${value} #在输入框输入查询数据 + sleep 1 + click xpath=//*[@id="app"]/div/div[3]/div/div/div[1]/div/div[2] #点击搜索按钮 + sleep 2 + ${result1} ${text2} Run Keyword And Ignore Error text #获取弹出框文本,进行异常处理 + run keyword if '${result}'=='Pass' ui-logout else log 有数据 + sleep 1 + ${text3} Get text xpath=//*[@id="app"]/div/div[3]/div/div/div[7]/div/ul/li[1]/span + ${t} Convert To Integer ${text3} + click xpath=//*[@id="log_securityEventExport"]/i + sleep 20 + Open Excel ${file} #打开Excel表 + sleep 2 + ${row} Get Row Count Sheet1 #获取Excel表的行数 + Should Be Equal As Numbers ${row} ${t} #断言 \ 获取到的log列表数量和获取到的Excel表的行数对比 + +PE Logs-Export + +Session Records + [Arguments] ${time1} ${time2} ${type1} ${value} ${element1} + #打开浏览器 + #TSG-登录 lyf 111111 + Sleep 1 + click id=children2 #点击一级目录log + Sleep 1 + click id=sidebarLog_SesssionRecords #点击二级目录Session Records + sleep 1 + ${result} ${text1} Run Keyword And Ignore Error text #获取弹出框文本,进行异常处理 + run keyword if '${result}'=='Pass' run keywords click xpath=/html/body/div/div/div[3]/button + # xpath=/html/body/div[2]/div/div[3]/button + Clear Element Text xpath=//*[@id="app"]/div/div[3]/div/div/div[2]/div/input[1] #清空输入框 + sleep 1 + input xpath=//*[@id="app"]/div/div[3]/div/div/div[2]/div/input[1] ${time1} #在输入框里输入时间 \ 格式为2020-02-24 18:21:01 + sleep 1 + Clear Element Text xpath=//*[@id="app"]/div/div[3]/div/div/div[2]/div/input[2] #清空输入框 + sleep 1 + input xpath=//*[@id="app"]/div/div[3]/div/div/div[2]/div/input[2] ${time2} #在输入框里输入时间 \ 格式为2020-02-24 18:21:01 + sleep 1 + click xpath=/html/body/div/div[2]/button[2] + sleep 1 + ${result} ${text1} Run Keyword And Ignore Error text #获取弹出框文本,进行异常处理 + run keyword if '${result}'=='Pass' run keywords click xpath=/html/body/div/div/div[3]/button + click id=one-input + sleep 1 + click ${type1} #选择要查询的类型 + sleep 1 + input id=sreach_input ${value} #在输入框输入查询数据 + sleep 1 + click xpath=//*[@id="app"]/div/div[3]/div/div/div[1]/div/div[2] #点击搜索按钮 + sleep 2 + ${result1} ${text2} Run Keyword And Ignore Error text #获取弹出框文本,进行异常处理 + run keyword if '${result}'=='Pass' run keywords click xpath=/html/body/div/div/div[3]/button + sleep 1 + ${text3} Get text xpath=//*[@id="app"]/div/div[3]/div/div/div[6]/div/ul/li[1]/span + # Evaluate ${text3}.replace('','Total: ') + ${t} Convert To Integer ${text3} + ${a1} Evaluate ${t}%20 #求余 + ${t1}= Evaluate math.ceil(${t}/20) math #求整(如果有余数会得出整数加1) + ${t2} Evaluate ${t1}+1 + : FOR ${j} IN RANGE 1 ${t2} + ForSR ${element1} ${j} ${t1} ${a1} + click xpath=//*[@id="zhumingmingPageRight"]/i + #关闭浏览器 + +ForPElog + [Arguments] ${element} ${j} ${t1} ${a1} + : FOR ${i} IN RANGE 1 21 + \ log ${i} + \ click xpath=//*[@id="ly-table1-listcontent"]/div/div[3]/table/tbody/tr[${i}]/td[3] + \ sleep 2 + \ ${text4} Get text ${element} + \ log ${text4} + \ click id=proxyEvent_logIdClose + \ run keyword if '${j}'=='${t1}' log yes + \ IF1 ${i} ${a1} + +ForSR + [Arguments] ${element} ${j} ${t1} ${a1} + : FOR ${i} IN RANGE 1 21 + \ log ${i} + \ click xpath=//*[@id="ly-table1-listcontent"]/div/div[3]/table/tbody/tr[${i}]/td[3] + \ sleep 2 + \ ${text4} Get text ${element} + \ log ${text4} + \ click id=sessionRecords_logIdClose + \ run keyword if '${j}'=='${t1}' log yes + \ IF1 ${i} ${a1} diff --git a/02-Keyword/tsg_ui/login/Login.robot b/02-Keyword/tsg_ui/login/Login.robot new file mode 100644 index 0000000..d1b8b87 --- /dev/null +++ b/02-Keyword/tsg_ui/login/Login.robot @@ -0,0 +1,25 @@ +*** Settings *** +Library Selenium2Library +Resource ../../../03-Variable/BifangApiVariable.txt +Library Selenium2Library +Resource ../Objects/Objects.robot +Resource ../Objects/ObjectPages.robot + +*** Keywords *** +Login + Open Browser http://${host}/#/login ${browserType} + Maximize Browser Window + input text xpath=//*[@id="app"]/div/div[2]/div/div[2]/div/input ${username} + input text xpath=//*[@id="app"]/div/div[2]/div/div[3]/div/input ${password} + Click button id=login + +AddLocalIp + ${obj1} create dictionary type=Ip name=LocahIPName ipads=${ipType} ipclient=masks ipclienttext1=${testClentIP} ipclienttext2=${ipMask} + CreatePage ${obj1}[type] ${obj1}[name] ipads=${obj1}[ipads] ipclient=${obj1}[ipclient] ipclienttext1=${obj1}[ipclienttext1] ipclienttext2=${obj1}[ipclienttext2] + set global variable ${LocahIPName} ${obj1}[name] + +UiLoginAndAddLocalIP + log UiLoginAndAddLocalIP + Login.Login + Run Keyword If ${addTestClentIPFlag}==1 AddLocalIp + log UiLoginAndAddLocalIP:${LocahIPName} diff --git a/02-Keyword/tsg_ui/logout/Logout.robot b/02-Keyword/tsg_ui/logout/Logout.robot new file mode 100644 index 0000000..90ae9e2 --- /dev/null +++ b/02-Keyword/tsg_ui/logout/Logout.robot @@ -0,0 +1,16 @@ +*** Settings *** +Library Selenium2Library +Resource ../Objects/ObjectPages.robot + +*** Keywords *** +Logout + Mouse Hover xpath=//*[@id="app"]/div/div[1]/div[2]/div/span/div/span + sleep 0.5 + click element xpath=//div[@class='SignOut'] + sleep 2 + Close All Browsers + +UiLogoutAndDelLocalIP + log UiLogoutAndDelLocalIP + Run Keyword If ${addTestClentIPFlag}==1 DeletePage ${LocahIPName} + Logout.Logout diff --git a/02-Keyword/tsg_ui/objects/ObjectPages.robot b/02-Keyword/tsg_ui/objects/ObjectPages.robot new file mode 100644 index 0000000..471c393 --- /dev/null +++ b/02-Keyword/tsg_ui/objects/ObjectPages.robot @@ -0,0 +1,71 @@ +*** Settings *** +Library Selenium2Library +Resource Objects.robot +Resource ../Menu.robot +Library Collections + +*** Keywords *** +CreatePage + [Arguments] ${objtype} ${name} ${ipads}=null ${ipclient}=null ${ipclienttext1}=null ${ipclienttext2}=null + ... ${keywordtext}=null ${hex}=close ${reqrestype}=null ${reqresheader}=null ${post}=null + Menu policy&objects Objects + sleep 3 + Objects.CreateButton ${objtype} + Objects.Create-name ${name} + Objects.Create-item + run keyword if "${objtype}"=="Ip" run keywords Objects.Create-ip-AddressType ${ipads} + ... AND Objects.Create-ip-ClientIP ${ipclient} + ... AND Objects.Create-ip-ClientIP-text ${ipclient} ${ipclienttext1} ${ipclienttext2} ${post} + run keyword if "${objtype}"=="Fqdn" or "${objtype}"=="Sub" or "${objtype}"=="Url" or "${objtype}"=="Category" or "${objtype}"=="Account" run keywords Objects.Create-keyword-text ${objtype} ${keywordtext} + ... AND sleep 1 + run keyword if '${objtype}'=='Key' run keywords Objects.Create-Key-text ${keywordtext} + ... AND Objects.Create-Key-hexmode ${hex} + run keyword if '${objtype}'=='ReqRes' run keywords Objects.Create-ReqRes-type ${reqrestype} + ... AND Objects.Create-ReqRes-header ${reqrestype} ${reqresheader} + ... AND Objects.Create-ReqRes-text ${keywordtext} + ... AND Objects.Create-ReqRes-hexmode ${hex} + Objects.Create-item-ok ${objtype} + Objects.Create-ok + +UpdateIPPage + SelectOne + UpButton + UpName yyq_test_up + Create-item + Create-ip-ClientIP range + Create-ip-ClientIP-text range 192.168.255.255 192.168.255.255 + Create-item-ok Ip #Ip + UpOk + +DeletePage + [Arguments] ${name} + sleep 1 + click element id=clear_input_btm + sleep 1 + input text id=one-input ${name} + press keys id=one-input ENTER + Objects.SelectOne + Objects.DeleteButton + Objects.Delete-delete + +UploadPage + UploadButton + Upload-name yyq-uploadFile + Upload-objectType + Upload-uploadedFile F:\\yyq\\python\\ip_20200221080650.txt + Upload-ok + +ExportPage + ExportPage + Export-objectType ip + Export-format txt + Export-ok + +DeleteObjects + [Arguments] ${obj} + sleep 2 + Menu policy&objects Objects + : FOR ${num} ${key} IN ENUMERATE @{obj} + \ sleep 2 + \ run keyword if "${key}"!="Ip" DeletePage ${obj}[${key}] + \ sleep 1 diff --git a/02-Keyword/tsg_ui/objects/Objects.robot b/02-Keyword/tsg_ui/objects/Objects.robot new file mode 100644 index 0000000..49725e7 --- /dev/null +++ b/02-Keyword/tsg_ui/objects/Objects.robot @@ -0,0 +1,400 @@ +*** Settings *** +Library Selenium2Library + +*** Keywords *** +CreateButton + [Arguments] ${objType} + Wait Until Element Is Enabled id=objectCreate + sleep 3 + Click element id=objectCreate + run keyword if "${objType}"=="Ip" run keywords sleep 2 + ... AND Click element id=object1 + ... ELSE IF "${objType}"=="Fqdn" run keywords sleep 2 + ... AND Click element id=object2 + ... ELSE IF "${objType}"=="Sub" run keywords sleep 2 + ... AND Click element id=object3 + ... ELSE IF "${objType}"=="ReqRes" run keywords sleep 2 + ... AND Click element id=object4 + ... ELSE IF "${objType}"=="Key" run keywords sleep 2 + ... AND Click element id=object5 + ... ELSE IF "${objType}"=="Url" run keywords sleep 2 + ... AND Click element id=object6 + ... ELSE IF "${objType}"=="Category" run keywords sleep 2 + ... AND Click element id=object7 + ... ELSE IF "${objType}"=="Account" run keywords sleep 2 + ... AND Click element id=object8 + ... ELSE IF log 对象类型有误 + +Create-name + [Arguments] ${objName} + sleep 2 + input text id=objectAdd_name ${objName} + +Create-item + click element id=objectAddItemAdd + +Create-item-Add + [Arguments] ${Type} + click element id=objectAddItem${Type}Add + +Create-item-ok + [Arguments] ${Type} + sleep 2 + run keyword if "${Type}"=="Category" click element id=objectAddItemFqdnOk + ... ELSE IF "${Type}"=="Account" click element id=objectItemAccountOk + ... ELSE click element id=objectAddItem${Type}Ok + +Create-item-Cancel + [Arguments] ${Type} + click button id=objectAddItem${Type}Cancel + +Create-ip-AddressType + [Arguments] ${AdsType} + sleep 2 + click element id=objectItemIpType0 + sleep 2 + run keyword if "${AdsType}"=="ipv4" run keywords click element xpath=/html/body/div/div[1]/div[1]/ul/li[1] + ... AND sleep 1 + ... ELSE IF "${AdsType}"=="ipv6" run keywords click element xpath=/html/body/div/div[1]/div[1]/ul/li[2] + ... AND sleep 1 + ... ELSE IF run keywords log 'Address Type错误' + +Create-ip-Protocol + [Arguments] ${Protocol} + run keyword if ${Protocol}=="any" click element id=objectItemIpProtocol10 + ... ELSE IF ${Protocol}=="tcp" click element id=objectItemIpProtocol20 + ... ELSE IF ${Protocol}=="udp" click element id=objectItemIpProtocol30 + +Create-ip-Directed + [Arguments] ${Directed} + run keyword if ${Directed}=="no" click element id=objectItemIpDirection10 + ... ELSE IF ${Directed}=="yes" click element id=objectItemIpDirection20 + +Create-ip-ClientIP + [Arguments] ${clientIPType} + sleep 2 + click element id=object_ip_sourecip0 + sleep 2 + run keyword if "${clientIPType}"=="range" run keywords sleep 1 + ... AND click element id=range0Range0111111 + ... ELSE IF "${clientIPType}"=="cidr" run keywords sleep 1 + ... AND click element id=CIDR0CIDR1 + ... ELSE IF "${clientIPType}"=="masks" run keywords sleep 1 + ... AND click element id=mask0Masks2 + ... ELSE IF log 选择错误 + sleep 2 + +Create-ip-ClientIP-text + [Arguments] ${clientIPType} ${clientIPStart} ${clientIPEnd} ${port}=null + sleep 2 + run keyword if "${clientIPType}"=="range" run keywords input text id=object_ip_clientip10 ${clientIPStart} + ... AND input text id=object_ip_clientip20 ${clientIPEnd} + ... AND input text id=object_ip_clientPort110 ${port} + run keyword if "${clientIPType}"=="cidr" run keywords input text id=object_ip_clientip30 ${clientIPStart} + ... AND input text id=object_ip_clientip40 ${clientIPEnd} + ... AND input text id=object_ip_clientPort110 ${port} + run keyword if "${clientIPType}"=="masks" run keywords input text id=object_ip_clientip50 ${clientIPStart} + ... AND input text id=object_ip_clientip60 ${clientIPEnd} + ... AND input text id=object_ip_clientPort110 ${port} + +Create-ip-ClientPort + +Create-ip-ClientPort-text + +Create-ip-ServerIP + +Create-ip-ServerPort + +Create-subobjects + click element id=objectAddSubAdd + +Create-Description + [Arguments] ${objDesc} + input text id=objectAdd_description ${objDesc} + +Create-ok + sleep 1 + click button id=objectAdd_ok + +Create-cancel + click button id=objectAdd_cancel + +SelectOne + sleep 3 + click element xpath=//*[@id="ly-table1-listcontent"]/div/div[3]/table/tbody/tr[1] + +UpButton + click button id=objectEdit + +DeleteButton + click button id=objectDel + +Delete-delete + sleep 2 + click button xpath=/html/body/div/div/div[3]/button[2] + +Delete-cancel + click button xpath=/html/body/div[2]/div/div[3]/button[1] + +UpName + [Arguments] ${name} + clear element text id=objectAdd_name + input text id=objectAdd_name ${name} + +UpOk + click button id=objectAdd_ok + +UploadButton + sleep 3 + click button id=objectImprt + +ExportButton + sleep 3 + click button id=objectExport + +Upload-name + [Arguments] ${name} + sleep 2 + input text xpath=//*[@id="app"]/div/div[3]/div/div/div[14]/div/div[1]/div[1]/div/input ${name} + +Upload-objectType + click button id=object_select_Import + sleep 2 + click element xpath=/html/body/div[2]/div[1]/div[1]/ul/li[1] + +Upload-uploadedFile + [Arguments] ${ads} + sleep 3 + Choose File xpath=//*[@id="app"]/div/div[3]/div/div/div[14]/div/div[2]/div/div[1]/input ${ads} + +Upload-ok + click button id=objectUploadedOk + +Export-objectType + [Arguments] ${objType} + click element id=object_select_Import1 + run keyword if "${objType}"=="ip" run keywords sleep 2 + ... AND click element xpath=/html/body/div[2]/div[1]/div[1]/ul/li[1] + ... ELSE IF "${objType}"=="fqdn" run keywords sleep 2 + ... AND Click element xpath=/html/body/div[2]/div[1]/div[1]/ul/li[2] + ... ELSE IF "${objType}"=="subscriberid" run keywords sleep 2 + ... AND Click element xpath=/html/body/div[2]/div[1]/div[1]/ul/li[3] + ... ELSE IF "${objType}"=="httpsignature" run keywords sleep 2 + ... AND Click element xpath=/html/body/div[2]/div[1]/div[1]/ul/li[4] + ... ELSE IF "${objType}"=="keywords" run keywords sleep 2 + ... AND Click element xpath=/html/body/div[2]/div[1]/div[1]/ul/li[5] + ... ELSE IF "${objType}"=="url" run keywords sleep 2 + ... AND Click element xpath=/html/body/div[2]/div[1]/div[1]/ul/li[6] + ... ELSE IF "${objType}"=="category" run keywords sleep 2 + ... AND Click element xpath=/html/body/div[2]/div[1]/div[1]/ul/li[7] + ... ELSE IF "${objType}"=="account" run keywords sleep 2 + ... AND Click element xpath=/html/body/div[2]/div[1]/div[1]/ul/li[8] + +Export-format + [Arguments] ${filetype} + sleep 2 + click element id=object_select_export + run keyword if "${filetype}"=="txt" run keywords sleep 2 + ... AND click element xpath=/html/body/div[3]/div[1]/div[1]/ul/li[1] + ... ELSE IF "${filetype}"=="csv" run keywords sleep 2 + ... AND click element xpath=/html/body/div[3]/div[1]/div[1]/ul/li[2] + +Export-ok + click button id=objectImportOk + +Export-cancel + click button id=objectImportCancel + +Create-keyword-text + [Arguments] ${type} ${keywordtext} + sleep 1 + run keyword if "${type}"=="Fqdn" run keywords sleep 1 + ... AND input text id=object_fqdn0 ${keywordtext} + ... ELSE IF "${type}"=="Sub" run keywords sleep 1 + ... AND input text id=object_sub0 ${keywordtext} + ... ELSE IF "${type}"=="Url" run keywords sleep 1 + ... AND input text id=object_url0 ${keywordtext} + ... ELSE IF "${type}"=="Category" run keywords sleep 1 + ... AND input text id=object_fqdn0 ${keywordtext} + ... ELSE IF "${type}"=="Account" run keywords sleep 1 + ... AND input text id=object_account0 ${keywordtext} + ... ELSE log 2 + +Create-ReqRes-type + [Arguments] ${type} + sleep 1 + run keyword if '${type}'=='req' click element xpath=//*[@id="objectAddItemReqRes"]/label[1] + ... ELSE IF '${type}'=='res' click element xpath=//*[@id="objectAddItemReqRes"]/label[2] + sleep 1 + +Create-ReqRes-header + [Arguments] ${type} ${header} + sleep 1 + run keyword if '${type}'=='req' and '${header}'=='ua' click element xpath=//*[@id="objectAddItemReqResType1"]/label[1] + ... ELSE IF '${type}'=='req' and '${header}'=='ck' click element xpath=//*[@id="objectAddItemReqResType1"]/label[2] + ... ELSE IF '${type}'=='res'and '${header}'=='sck' click element xpath=//*[@id="objectAddItemReqResType"]/label[1] + ... ELSE IF '${type}'=='res'and '${header}'=='ct' click element xpath=//*[@id="objectAddItemReqResType"]/label[2] + sleep 1 + +Create-ReqRes-text + [Arguments] ${keywordtext} + sleep 1 + input text id=object_sig0 ${keywordtext} + sleep 1 + +Create-ReqRes-hexmode + [Arguments] ${hex} + sleep 1 + run keyword if "${hex}"=="open" click element xpath=//*[@id="policy_Manipulation2"]/div[7]/div[1]/div[1]/form/div[4]/div/div + sleep 1 + +Create-Key-text + [Arguments] ${keywordtext} + sleep 1 + input text id=object_key0 ${keywordtext} + sleep 1 + +Create-Key-hexmode + [Arguments] ${hex} + sleep 1 + run keyword if "${hex}"=="open" click element xpath=//*[@id="objects_httpBodyKeywords1"]/div[1]/div[1]/form/div[2]/div/div + sleep 1 + +objects-delete + sleep 1 + click element id=objectDel #点击删除按钮 + sleep 1 + click element xpath=/html/body/div/div/div[3]/button[2] + #Close Browser #关闭浏览器 + +object-edit-fqdn + [Arguments] ${name} ${keywordtext} + Sleep 2 + click element id=objectEdit + Sleep 2 + Objects.Create-name ${name} + Sleep 1 + click element id=objectAddEdit + Sleep 1 + input text id=object_fqdn0 ${keywordtext} + Sleep 1 + click element id=objectAddItemFqdnOk + Sleep 1 + click element id=objectAdd_ok + Sleep 2 + +object-edit-Subscriber-ID + [Arguments] ${name} ${keywordtext} + Sleep 2 + click element id=objectEdit + Sleep 2 + Objects.Create-name ${name} + Sleep 1 + click element id=objectAddEdit + Sleep 1 + input text id=object_sub0 ${keywordtext} + Sleep 1 + click element id=objectAddItemSubOk + Sleep 1 + click element id=objectAdd_ok + Sleep 2 + +object-edit-url + [Arguments] ${name} ${keywordtext} + Sleep 2 + click element id=objectEdit + Sleep 2 + Objects.Create-name ${name} + Sleep 1 + click element id=objectAddEdit + Sleep 1 + input text id=object_url0 ${keywordtext} + Sleep 1 + click element id=objectAddItemUrlOk + Sleep 1 + click element id=objectAdd_ok + Sleep 2 + +object-edit-account + [Arguments] ${name} ${keywordtext} + Sleep 2 + click element id=objectEdit + Sleep 2 + Objects.Create-name ${name} + Sleep 1 + click element id=objectAddEdit + Sleep 1 + input text id=object_account0 ${keywordtext} + Sleep 1 + click element id=objectItemAccountOk + Sleep 1 + click element id=objectAdd_ok + Sleep 2 + +object-edit-keywords + [Arguments] ${name} ${keywordtext} ${hex}=close + Sleep 2 + click element id=objectEdit + Sleep 2 + Objects.Create-name ${name} + Sleep 1 + click element id=objectAddEdit + Sleep 1 + input text id=object_key0 ${keywordtext} + Sleep 1 + Objects.Create-Key-hexmode ${hex} + Sleep 1 + click element id=objectAddItemKeyOk + Sleep 1 + click element id=objectAdd_ok + Sleep 2 + +ui-object-search-name + [Arguments] ${name} + sleep 2 + click element id=one-input + sleep 2 + click element id=input_list_li2 + sleep 2 + input text id=sreach_input ${name} + sleep 2 + click element id=select_new_search_btn + sleep 2 + click element xpath=//*[@id="ly-table1-listcontent"]/div/div[3]/table + +object-edit-HTTPSignature + [Arguments] ${name} ${reqrestype} ${reqresheader} ${keywordtext} ${hex}=close + Sleep 2 + click element id=objectEdit + Sleep 2 + Objects.Create-name ${name} + Sleep 1 + click element id=objectAddEdit + Sleep 1 + Objects.Create-ReqRes-type ${reqrestype} + Objects.Create-ReqRes-header ${reqrestype} ${reqresheader} + input text id=object_sig0 ${keywordtext} + Sleep 1 + Objects.Create-ReqRes-hexmode ${hex} + click element id=objectAddItemReqResOk + Sleep 1 + click element id=objectAdd_ok + Sleep 2 + +object-edit-ip + [Arguments] ${name} ${ipads} ${ipclient} ${ipclienttext1} ${ipclienttext2} ${post}=null + Sleep 2 + click element id=objectEdit + Sleep 2 + Objects.Create-name ${name} + Sleep 1 + click element id=objectAddEdit + Sleep 1 + Objects.Create-ip-AddressType ${ipads} + Objects.Create-ip-ClientIP ${ipclient} + Objects.Create-ip-ClientIP-text ${ipclient} ${ipclienttext1} ${ipclienttext2} ${post} + Sleep 1 + click element id=objectAddItemIpOk + Sleep 1 + click element id=objectAdd_ok + Sleep 2 diff --git a/02-Keyword/tsg_ui/schedules/Schedules.robot b/02-Keyword/tsg_ui/schedules/Schedules.robot new file mode 100644 index 0000000..8b90349 --- /dev/null +++ b/02-Keyword/tsg_ui/schedules/Schedules.robot @@ -0,0 +1,260 @@ +*** Settings *** +Library Selenium2Library + +*** Keywords *** +Schedules-create + [Arguments] ${name} ${type1} ${number} ${weeks} ${dateorweeks} ${dates} + ... ${aweeks} ${Start Date} ${End Date} ${Start Time} ${End Time} + click element id=scheduleAdd #点击create按钮 + sleep 1 + input text id=schedule_name ${name} + sleep 1 + ${type} set variable ${type1} + run keyword if '${type}'=='Daily' run keywords sleep 1 + ... AND Schedules-Daily ${number} + ... ELSE IF '${type}'=='Weekly' run keywords sleep 1 + ... AND Schedules-Weekly ${number} ${weeks} + ... ELSE IF '${type}'=='Monthly' run keywords sleep 1 + ... AND Schedules-Monthly ${dateorweeks} ${number} ${dates} ${aweeks} + ... ${weeks} + ... ELSE IF '${type}'=='One-time' run keywords sleep 1 + ... AND click element id=scheduleAddTypeSingle + sleep 1 + input text id=schedulead_startdate ${Start Date} #开始日期 + sleep 1 + click element xpath=//*[@id="policy_Manipulation_create5"]/div[2] + sleep 1 + input text xpath=//*[@id="policy_Manipulation_create5"]/div[2]/form/div[5]/div/div/input ${End Date} #结束日期 + sleep 1 + click element xpath=//*[@id="policy_Manipulation_create5"]/div[2] + sleep 1 + input text id=schedulead_startTime ${Start Time} #开始时间 + sleep 1 + click element xpath=//*[@id="policy_Manipulation_create5"]/div[2] + sleep 1 + input text xpath=//*[@id="policy_Manipulation_create5"]/div[2]/form/div[7]/div/div/input ${End Time} #结束时间 + sleep 1 + click element xpath=//*[@id="policy_Manipulation_create5"]/div[2] + sleep 2 + click element xpath=//*[@id="policy_Manipulation_create5"]/div[2]/form/div[8]/div/div/button[1] #点击OK + sleep 2 + +Schedules-Daily + [Arguments] ${number} + click element id=scheduleAddTypeDaily #点击 Daily + sleep 1 + input text xpath=//*[@id="schedule_interval"]/div/input ${number} + sleep 1 + +Schedules-Weekly + [Arguments] ${number} ${weeks} + click element id=scheduleAddTypeWeekly #点击Weekly + sleep 1 + input text xpath=//*[@id="schedule_interval"]/div/input ${number} + sleep 1 + ${week} set variable ${weeks} + run keyword if '${week}'=='SUN' run keywords sleep 1 + ... AND click element id=schedulead_cities0 + ... ELSE IF '${week}'=='MON' run keywords sleep 1 + ... AND click element id=schedulead_cities1 + ... ELSE IF '${week}'=='TUE' run keywords sleep 1 + ... AND click element id=schedulead_cities2 + ... ELSE IF '${week}'=='WED' run keywords sleep 1 + ... AND click element id=schedulead_cities3 + ... ELSE IF '${week}'=='THU' run keywords sleep 1 + ... AND click element id=schedulead_cities4 + ... ELSE IF '${week}'=='FRI' run keywords sleep 1 + ... AND click element id=schedulead_cities5 + ... ELSE IF '${week}'=='SAT' run keywords sleep 1 + ... AND click element id=schedulead_cities6 + sleep 1 + +Schedules-Monthly + [Arguments] ${dateorweeks} ${number}=null ${dates}=null ${aweeks}=null ${weeks}=null + click element id=scheduleAddTypeMonthly #点击monthly + sleep 1 + ${dateorweek} set variable ${dateorweeks} + run keyword if '${dateorweek}'=='Date' run keywords sleep 1 + ... AND click element xpath=//*[@id="policy_Manipulation_create5"]/div[2]/form/div[3]/div/div[1]/label[1] + ... AND Schedules-Monthly-Date ${number} ${dates} + ... ELSE IF '${dateorweek}'=='Week' run keywords sleep 1 + ... AND click element xpath=//*[@id="policy_Manipulation_create5"]/div[2]/form/div[3]/div/div[1]/label[2] + ... AND Schedules-Monthly-Week ${number} ${aweeks} ${weeks} + +Schedules-Monthly-Date + [Arguments] ${number} ${dates} + input text xpath=//*[@id="schedule_interval"]/div/input ${number} + sleep 1 + ${date} set variable ${dates} + run keyword if '${date}'=='All' run keywords sleep 1 + ... AND click element id=schedule_alldaycontrol + ... ELSE IF '${date}'=='1' run keywords sleep 1 + ... AND click element id=schedule_onDay0 + ... ELSE IF '${date}'=='2' run keywords sleep 1 + ... AND click element id=schedule_onDay1 + ... ELSE IF '${date}'=='3' run keywords sleep 1 + ... AND click element id=schedule_onDay2 + ... ELSE IF '${date}'=='4' run keywords sleep 1 + ... AND click element id=schedule_onDay3 + ... ELSE IF '${date}'=='5' run keywords sleep 1 + ... AND click element id=schedule_onDay4 + ... ELSE IF '${date}'=='6' run keywords sleep 1 + ... AND click element id=schedule_onDay5 + ... ELSE IF '${date}'=='7' run keywords sleep 1 + ... AND click element id=schedule_onDay6 + ... ELSE IF '${date}'=='8' run keywords sleep 1 + ... AND click element id=schedule_onDay7 + ... ELSE IF '${date}'=='9' run keywords sleep 1 + ... AND click element id=schedule_onDay8 + ... ELSE IF '${date}'=='10' run keywords sleep 1 + ... AND click element id=schedule_onDay9 + ... ELSE IF '${date}'=='11' run keywords sleep 1 + ... AND click element id=schedule_onDay10 + ... ELSE IF '${date}'=='12' run keywords sleep 1 + ... AND click element id=schedule_onDay11 + ... ELSE IF '${date}'=='13' run keywords sleep 1 + ... AND click element id=schedule_onDay12 + ... ELSE IF '${date}'=='14' run keywords sleep 1 + ... AND click element id=schedule_onDay13 + ... ELSE IF '${date}'=='15' run keywords sleep 1 + ... AND click element id=schedule_onDay14 + ... ELSE IF '${date}'=='16' run keywords sleep 1 + ... AND click element id=schedule_onDay15 + ... ELSE IF '${date}'=='17' run keywords sleep 1 + ... AND click element id=schedule_onDay16 + ... ELSE IF '${date}'=='18' run keywords sleep 1 + ... AND click element id=schedule_onDay17 + ... ELSE IF '${date}'=='19' run keywords sleep 1 + ... AND click element id=schedule_onDay18 + ... ELSE IF '${date}'=='20' run keywords sleep 1 + ... AND click element id=schedule_onDay19 + ... ELSE IF '${date}'=='21' run keywords sleep 1 + ... AND click element id=schedule_onDay20 + ... ELSE IF '${date}'=='22' run keywords sleep 1 + ... AND click element id=schedule_onDay21 + ... ELSE IF '${date}'=='23' run keywords sleep 1 + ... AND click element id=schedule_onDay22 + ... ELSE IF '${date}'=='24' run keywords sleep 1 + ... AND click element id=schedule_onDay23 + ... ELSE IF '${date}'=='25' run keywords sleep 1 + ... AND click element id=schedule_onDay24 + ... ELSE IF '${date}'=='26' run keywords sleep 1 + ... AND click element id=schedule_onDay25 + ... ELSE IF '${date}'=='27' run keywords sleep 1 + ... AND click element id=schedule_onDay26 + ... ELSE IF '${date}'=='28' run keywords sleep 1 + ... AND click element id=schedule_onDay27 + ... ELSE IF '${date}'=='29' run keywords sleep 1 + ... AND click element id=schedule_onDay28 + ... ELSE IF '${date}'=='30' run keywords sleep 1 + ... AND click element id=schedule_onDay29 + ... ELSE IF '${date}'=='31' run keywords sleep 1 + ... AND click element id=schedule_onDay301sleep1 + sleep 1 + +Schedules-Monthly-Week + [Arguments] ${number} ${aweeks} ${weeks} + sleep 2 + input text xpath=/html/body/div/div/div[3]/div/div/div/div[2]/form/div[3]/div/div[2]/div/div/div/div/input ${number} + sleep 1 + click element id=schedulead_select_week + sleep 2 + ${aweek} set variable ${aweeks} + run keyword if '${aweek}'=='1' run keywords sleep 1 + ... AND click element xpath=/html/body/div/div[1]/div[1]/ul/li[1] + ... ELSE IF '${aweek}'=='2' run keywords sleep 1 + ... AND click element xpath=/html/body/div/div[1]/div[1]/ul/li[2] + ... ELSE IF '${aweek}'=='3' run1 keywords sleep 1 + ... AND click element xpath=/html/body/div/div[1]/div[1]/ul/li[3] + ... ELSE IF '${aweek}'=='4' run keywords sleep 1 + ... AND click eleme1nt xpath=/html/body/div/div[1]/div[1]/ul/li[4] + ... ELSE IF '${aweek}'=='L' run keywords sleep 1 + ... AND click element xpath=/html/body/div/div[1]/div[1]/ul/li[5] + sleep 1 + click element xpath=//*[@id="policy_Manipulation_create5"]/div[2]/form/div[3]/div/div[3]/nav/div/div[2]/span/span/i + sleep 1 + ${week} set variable ${weeks} + run keyword if '${week}'=='SUN' run keywords sleep 1 + ... AND click element id=schedulead_cities0 + ... ELSE IF '${week}'=='MON' run keywords sleep 1 + ... AND click element id=schedulead_cities1 + ... ELSE IF '${week}'=='TUE' run keywords sleep 1 + ... AND click element id=schedulead_cities2 + ... ELSE IF '${week}'=='WED' run keywords sleep 1 + ... AND click element id=schedulead_cities3 + ... ELSE IF '${week}'=='THU' run keywords sleep 1 + ... AND click element id=schedulead_cities4 + ... ELSE IF '${week}'=='FRI' run keywords sleep 1 + ... AND click element id=schedulead_cities5 + ... ELSE IF '${week}'=='SAT' run keywords sleep 1 + ... AND click element id=schedulead_cities6 + ... ELSE IF '${week}'=='All' run keywords sleep 1 + ... AND click element id=schedulead_weekchooseAll + sleep 1 + +Schedules-delete + sleep 1 + click element id=scheduleDel #点击删除按钮 + sleep 1 + click element xpath=/html/body/div[2]/div/div[3]/button[2] + +Schedules-search-id + [Arguments] ${id} + sleep 1 + click element id=one-input + sleep 1 + click element id=input_list_li1 + sleep 1 + input text id=sreach_input ${id} + sleep 1 + click element id=select_new_search_btn + sleep 1 + click element xpath=//*[@id="ly-table1-listcontent"]/div/div[3]/table + +Schedules-search-name + [Arguments] ${name} + sleep 1 + click element id=one-input + sleep 1 + click element id=input_list_li2 + sleep 1 + input text id=sreach_input ${name} + sleep 1 + click element id=select_new_search_btn + sleep 1 + click element xpath=//*[@id="ly-table1-listcontent"]/div/div[3]/table + +Schedules-edit + [Arguments] ${name} ${type1} ${number} ${weeks} ${dateorweeks} ${dates} + ... ${aweeks} ${Start Date} ${End Date} ${Start Time} ${End Time} + click element id=scheduleEdit #点击create按钮 + sleep 1 + input text id=schedule_name ${name} + sleep 1 + ${type} set variable ${type1} + run keyword if '${type}'=='Daily' run keywords sleep 1 + ... AND Schedules-Daily ${number} + ... ELSE IF '${type}'=='Weekly' run keywords sleep 1 + ... AND Schedules-Weekly ${number} ${weeks} + ... ELSE IF '${type}'=='Monthly' run keywords sleep 1 + ... AND Schedules-Monthly ${dateorweeks} ${number} ${dates} ${aweeks} + ... ${weeks} + sleep 1 + input text id=schedulead_startdate ${Start Date} #开始日期 + sleep 1 + click element xpath=//*[@id="policy_Manipulation_create5"]/div[2] + sleep 1 + input text xpath=//*[@id="policy_Manipulation_create5"]/div[2]/form/div[5]/div/div/input ${End Date} #结束日期 + sleep 1 + click element xpath=//*[@id="policy_Manipulation_create5"]/div[2] + sleep 1 + input text id=schedulead_startTime ${Start Time} #开始时间 + sleep 1 + click element xpath=//*[@id="policy_Manipulation_create5"]/div[2] + sleep 1 + input text xpath=//*[@id="policy_Manipulation_create5"]/div[2]/form/div[7]/div/div/input ${End Time} #结束时间 + sleep 1 + click element xpath=//*[@id="policy_Manipulation_create5"]/div[2] + sleep 1 + click element xpath=//*[@id="policy_Manipulation_create5"]/div[2]/form/div[8]/div/div/button[1] #点击OK + Sleep 2 diff --git a/02-Keyword/tsg_ui/securityPolicy/InterceptSSLModule.robot b/02-Keyword/tsg_ui/securityPolicy/InterceptSSLModule.robot new file mode 100644 index 0000000..c604573 --- /dev/null +++ b/02-Keyword/tsg_ui/securityPolicy/InterceptSSLModule.robot @@ -0,0 +1,122 @@ +*** Settings *** +Library Selenium2Library + +*** Keywords *** +Keyring-create + [Arguments] ${keyring-name} ${file} ${file1} ${1or2} ${type} ${type1} + [Documentation] 引用次关键字,填入必填参数 + ... 必填参数: + ... ${keyring-name}:新建页面name输入框里的内容 + ... ${file}:上传文件所在本地的路径 + ... ${file1}:上传文件所在本地的路径 + ... ${1or2}:填入1 或者其他数值 + ... ${type}:上传证书类型的元素 + ... ${type1}:上传证书加密解密算法的元素 + click element id=interceptionadd_eventkeying #点击下拉框 + sleep 1 + click element id=interceptionadd_keyadd #点击+号添加证书 + sleep 2 + input text id=keyringsadd_name ${keyring-name} #输入证书name + sleep 1 + Choose File xpath=//*[@id="proxy"]/div[10]/div/div/div[2]/form/div[2]/div/div/div/input ${file} #上传证书文件 + sleep 2 + Choose File xpath=//*[@id="proxy"]/div[10]/div/div/div[2]/form/div[4]/div/div/div/input ${file1} #上传证书文件 + ${select} Set Variable ${1or2} + Run Keyword If '${select}'=='1' click id=keyringsadd_customized + Run Keyword If '${select}'=='1' input id=reissueExpiryDate 10 + click element id=certificateType_input #点击下拉框 + sleep 1 + click element ${type} #选择证书类型 + sleep 1 + click element id=keyringsadd_publicKeyAlgo #点击下拉框 + sleep 1 + click element ${type1} #选择加密解密类型 + sleep 1 + click element id=parentobj_submit #点击ok + +Keyring-search + [Arguments] ${name} + [Documentation] 条用此关键字前需要给必填参数:${name} + ... ${name}:创建的keyring的name + click element id=tab-0 #点击Keyring + sleep 1 + click element id=interceptionadd_eventkeying #点击下拉框 + sleep 1 + input text id=card_keyringName ${name} #搜索框输入 + Sleep 1 + Press key id=card_keyringName \\13 #回车键 + sleep 1 + click element id=card_keylist0 #点击列表 + +Certificate Checks + [Arguments] ${Type} + [Documentation] 在调用此关键字前,需要添加必填参数${Type} + ... ${Type}为Fail-close或者是Pass-through \ \ \ 代表Certificate Checks 里的两个按钮 + click element id=tab-1 #点击Certificate Checks + sleep 1 + run keyword if "${Type}"=="Fail-close" click element id=card_fileoption0 + ... ELSE IF "${Type}"=="Pass-through" click element id=card_fileoption1 #选择Fail-close或者pass-through + +Dynamic Bypass + [Arguments] ${Type} + [Documentation] 调用此关键字前 需要给一个必填参数${Type} + ... ${Type}参数为EV或者CT或者MA或者OPE或者CP \ 对应Dynamic Bypass 五个按钮 + click element id=tab-3 #点击Dynamic Bypass + sleep 1 + click element id=mutual_authentication_swith + sleep 1 + click element id=undefined_swith + sleep 1 + click element id=cert_pinning1_swith + sleep 1 + run keyword if "${Type}"=="EV" click element id=ev_cert_swith + ... ELSE IF "${Type}"=="CT" click element id=cert_transparency_swith + ... ELSE IF "${Type}"=="MA" click element id=mutual_authentication_swith + ... ELSE IF "${Type}"=="OPE" click element id=undefined_swith + ... ELSE IF "${Type}"=="CP" click element id=cert_pinning1_swith + +Certificate Checks-close + [Documentation] 次关键字为关闭Certificate Checks的四个按钮 + click element id=tab-1 #点击Certificate Checks + sleep 1 + click element id=cn_swith + sleep 1 + click element id=issuer_swith + sleep 1 + click element id=self_signed_swith + sleep 1 + click element id=expiration_swith + +Protocol Version + [Arguments] ${Type} ${Type1} ${Type2} + [Documentation] 调用次关键字前需要添加必填参数: + ... ${Type}:填入MCV或者AH2 + ... ${Type1}:对应最小版本号(填入:3.0或者1.0或者1.1或者1.2或者1.3) + ... ${Type2}:对应最大版本号(填入:3.0或者1.0或者1.1或者1.2或者1.3) + click element id=tab-4 + sleep 1 + run keyword if "${Type}"=="MCV" run keywords click element id=interceptionadd_sslver_swith + ... AND Mirror Client Versions-close ${Type1} ${Type2} + ... ELSE IF "${Type}"=="AH2" click element id=interceptionaddallhttp_swith + +Mirror Client Versions-close + [Arguments] ${Type} ${Type1} + [Documentation] 调用次关键字前需要添加必填参数: + ... ${Type}:对应最小版本号(填入:3.0或者1.0或者1.1或者1.2或者1.3) + ... ${Type1}:对应最大版本号(填入:3.0或者1.0或者1.1或者1.2或者1.3) + sleep 1 + click element id=interceptionadd_sslmin + sleep 1 + run keyword if "${Type}"=="3.0" click element id=pro_min0 + ... ELSE IF "${Type}"=="1.0" click element id=pro_min1 + ... ELSE IF "${Type}"=="1.1" click element id=pro_min2 + ... ELSE IF "${Type}"=="1.2" click element id=pro_min3 + ... ELSE IF "${Type}"=="1.3" click element id=pro_min4 + sleep 1 + click element id=interceptionadd_sslmax + sleep 1 + run keyword if "${Type1}"=="3.0" click element id=pro_max0 + ... ELSE IF "${Type1}"=="1.0" click element id=pro_max1 + ... ELSE IF "${Type1}"=="1.1" click element id=pro_max2 + ... ELSE IF "${Typeq}"=="1.2" click element id=pro_max3 + ... ELSE IF "${Typeq}"=="1.3" click element id=pro_max4 diff --git a/02-Keyword/tsg_ui/securityPolicy/SecurityPolicy.robot b/02-Keyword/tsg_ui/securityPolicy/SecurityPolicy.robot new file mode 100644 index 0000000..fe6d05d --- /dev/null +++ b/02-Keyword/tsg_ui/securityPolicy/SecurityPolicy.robot @@ -0,0 +1,259 @@ +*** Settings *** +Library Selenium2Library + +*** Keywords *** +CreateButton + Wait Until Element Is Enabled id=proxyInterception_create + sleep 3 + click element id=proxyInterception_create + +Create-name + [Arguments] ${name} + sleep 2 + input text id=interceptionadd_name ${name} + +Create-action + [Arguments] ${action} + run keyword if "${action}"=="allow" run keywords sleep 1 + ... AND click element id=security_action_Allow + ... ELSE IF "${action}"=="deny" run keywords sleep 1 + ... AND click element id=security_action_Deny + ... ELSE IF "${action}"=="monitor" run keywords sleep 1 + ... AND click element id=security_action_Monitor + ... ELSE IF "${action}"=="intercept" run keywords sleep 1 + ... AND click element id=security_action_Intercept + +Create-Conditions + sleep 2 + click element id=interceptionadd_object + +Create-Conditions-ip + [Arguments] ${objname} + sleep 2 + click element id=interceptionadd_procolall1 + sleep 2 + SecurityPolicy.SelectOne ${objname} + +Create-Conditions-sub + [Arguments] ${objname} + sleep 2 + click element id=interceptionadd_procolall2 + sleep 2 + SecurityPolicy.SelectOne ${objname} + +Create-Conditions-protocol + [Arguments] ${protocol} + sleep 2 + click element id=interceptionadd_procolall3 + sleep 2 + run keyword if '${protocol}'=='http' run keywords sleep 1 + ... AND click element id=interceptionadd_prochange0 + ... ELSE IF '${protocol}'=='ssl' run keywords sleep 1 + ... AND click element id=interceptionadd_prochange1 + ... ELSE IF '${protocol}'=='dns' run keywords sleep 1 + ... AND click element id=interceptionadd_prochange2 + ... ELSE IF '${protocol}'=='mail' run keywords sleep 1 + ... AND click element id=interceptionadd_prochange3 + ... ELSE IF '${protocol}'=='ftp' run keywords sleep 1 + ... AND click element id=interceptionadd_prochange4 + ... ELSE log 协议内容错误 + +Create-Conditions-Search + [Arguments] ${Search} + input text xpath=//*[@id="proxy"]/div[5]/div[2]/div[2]/div/div[1]/input ${Search} + sleep 2 + +Create-Conditions-Close + click button id=interceptionadd_allcancelobject + sleep 2 + +Create-Tag + +Create-EffectiveDevices + +Create-Schedule + +Create-Log Session + +Create-Description + +Create-Enabled + [Arguments] ${state} + sleep 2 + run keyword if "${state}"=="open" run keywords click element id=enablencheck_swith + ... AND sleep 2 + ... AND click button id=interceptionadd-enable-confirm + +Create-ok + execute javascript document.documentElement.scrollTop=1000 + sleep 2 + click button id=interceptionadd_sub + sleep 1 + execute javascript document.documentElement.scrollTop=0 + +Create-cancel + click button id=interceptionadd_back + +Create-Conditions-obj + [Arguments] ${action} ${protocol} ${objtype} ${objname} ${objtype1}=null + run keyword if '${action}'=='allow' and '${protocol}'=='http' run keywords sleep 1 + ... AND click element id=interceptionadd_prochange0 + ... AND Create-Conditions-allow&intercept-http ${objtype} ${objname} + ... ELSE IF '${action}'=='intercept' and '${protocol}'=='http' run keywords sleep 1 + ... AND click element id=interceptionadd_prochange0 + ... AND Create-Conditions-allow&intercept-http ${objtype} ${objname} + ... ELSE IF '${action}'=='allow' and '${protocol}'=='ssl' run keywords sleep 1 + ... AND click element id=interceptionadd_prochange1 + ... AND Create-Conditions-allow&intercept-ssl ${objtype} ${objname} + ... ELSE IF '${action}'=='intercept' and '${protocol}'=='ssl' run keywords sleep 1 + ... AND click element id=interceptionadd_prochange1 + ... AND Create-Conditions-allow&intercept-ssl ${objtype} ${objname} + ... ELSE IF '${action}'=='deny' and '${protocol}'=='http' run keywords sleep 1 + ... AND click element id=interceptionadd_prochange0 + ... AND Create-Conditions-deny&monitor-http ${objtype} ${objname} + ... ELSE IF '${action}'=='monitor' and '${protocol}'=='http' run keywords sleep 1 + ... AND click element id=interceptionadd_prochange0 + ... AND Create-Conditions-deny&monitor-http ${objtype} ${objname} + ... ELSE IF '${action}'=='deny' and '${protocol}'=='ssl' run keywords sleep 1 + ... AND click element id=interceptionadd_prochange1 + ... AND Create-Conditions-deny&monitor-ssl ${objtype1} ${objtype} ${objname} + ... ELSE IF '${action}'=='monitor' and '${protocol}'=='ssl' run keywords sleep 1 + ... AND click element id=interceptionadd_prochange1 + ... AND Create-Conditions-deny&monitor-ssl ${objtype1} ${objtype} ${objname} + ... ELSE IF '${action}'=='deny' and '${protocol}'=='dns' run keywords sleep 1 + ... AND click element id=interceptionadd_prochange2 + ... AND Create-Conditions-deny&monitor-dns ${objtype} ${objname} + ... ELSE IF '${action}'=='monitor' and '${protocol}'=='dns' run keywords sleep 1 + ... AND click element id=interceptionadd_prochange2 + ... AND Create-Conditions-deny&monitor-dns ${objtype} ${objname} + ... ELSE IF '${action}'=='deny' and '${protocol}'=='mail' run keywords sleep 1 + ... AND click element id=interceptionadd_prochange3 + ... AND Create-Conditions-deny&monitor-mail ${objtype} ${objname} + ... ELSE IF '${action}'=='monitor' and '${protocol}'=='mail' run keywords sleep 1 + ... AND click element id=interceptionadd_prochange3 + ... AND Create-Conditions-deny&monitor-mail ${objtype} ${objname} + ... ELSE IF '${action}'=='deny' and '${protocol}'=='ftp' run keywords sleep 1 + ... AND click element id=interceptionadd_prochange4 + ... AND Create-Conditions-deny&monitor-ftp ${objtype} ${objname} + ... ELSE IF '${action}'=='monitor' and '${protocol}'=='ftp' run keywords sleep 1 + ... AND click element id=interceptionadd_prochange4 + ... AND Create-Conditions-deny&monitor-ftp ${objtype} ${objname} + ... ELSE log 对象错误 + +Create-Conditions-allow&intercept-http + [Arguments] ${objtype} ${objname} + sleep 2 + run keyword if '${objtype}'=='Fqdn' run keywords click element xpath=//*[@id="interceptionadd_pro0"]/div[2] + ... AND sleep 2 + ... ELSE IF '${objtype}'=='Category' run keywords click element xpath=//*[@id="interceptionadd_pro0"]/div[3] + ... AND sleep 2 + ... ELSE log 对象错误 + SecurityPolicy.SelectOne ${objname} + +Create-Conditions-allow&intercept-ssl + [Arguments] ${objtype} ${objname} + sleep 2 + run keyword if '${objtype}'=='Fqdn' run keywords click element xpath=//*[@id="interceptionadd_pro0"]/div[2] + ... AND sleep 2 + ... ELSE IF '${objtype}'=='Category' run keywords click element xpath=//*[@id="interceptionadd_pro0"]/div[3] + ... AND sleep 2 + ... ELSE log 对象错误 + SecurityPolicy.SelectOne ${objname} + +Create-Conditions-deny&monitor-http + [Arguments] ${objtype} ${objname} + sleep 2 + run keyword if '${objtype}'=='Fqdn' run keywords click element xpath=//*[@id="interceptionadd_pro0"]/div[2] + ... AND sleep 2 + ... ELSE IF '${objtype}'=='Category' run keywords click element xpath=//*[@id="interceptionadd_pro0"]/div[3] + ... AND sleep 2 + ... ELSE IF '${objtype}'=='Url' run keywords click element id=interceptionadd_pro1 + ... AND sleep 2 + ... ELSE IF '${objtype}'=='Reqhdr' run keywords click element id=interceptionadd_pro2 + ... AND sleep 2 + ... ELSE IF '${objtype}'=='Reshdr' run keywords click element id=interceptionadd_pro3 + ... AND sleep 2 + ... ELSE IF '${objtype}'=='Reqbody' run keywords click element id=interceptionadd_pro4 + ... AND sleep 2 + ... ELSE IF '${objtype}'=='Resbody' run keywords click element id=interceptionadd_pro5 + ... AND sleep 2 + ... ELSE log 对象错误 + SecurityPolicy.SelectOne ${objname} + +Create-Conditions-deny&monitor-ssl + [Arguments] ${objtype1} ${objtype} ${objname} + sleep 2 + run keyword if '${objtype1}'=='sni' and '${objtype}'=='Fqdn' run keywords click element xpath=//*[@id="interceptionadd_pro0"]/div[2] + ... AND sleep 2 + ... ELSE IF '${objtype1}'=='sni' and '${objtype}'=='Category' run keywords click element xpath=//*[@id="interceptionadd_pro0"]/div[3] + ... AND sleep 2 + ... ELSE IF ${objtype1}'=='cn' and ${objtype}'=='Fqdn' run keywords click element id=interceptionadd_pro1 + ... AND sleep 2 + ... AND click element xpath=//*[@id="interceptionadd_pro1"]/div[2] + ... AND sleep 2 + ... ELSE IF ${objtype1}'=='cn' and${objtype}'=='Category' run keywords click element id=interceptionadd_pro1 + ... AND sleep 2 + ... AND click element xpath=//*[@id="interceptionadd_pro1"]/div[3] + ... AND sleep 2 + ... ELSE IF ${objtype1}'=='san' and ${objtype}'=='Fqdn' run keywords click element id=interceptionadd_pro2 + ... AND sleep 2 + ... AND click element xpath=//*[@id="interceptionadd_pro2"]/div[2] + ... AND sleep 2 + ... ELSE IF ${objtype1}'=='san' and ${objtype}'=='Category' run keywords click element id=interceptionadd_pro2 + ... AND sleep 2 + ... AND click element xpath=//*[@id="interceptionadd_pro2"]/div[3] + ... AND sleep 2 + ... ELSE log 对象错误 + SecurityPolicy.SelectOne ${objname} + +Create-Conditions-deny&monitor-dns + [Arguments] ${objtype} ${objname} + sleep 2 + run keyword if '${objtype}'=='Fqdn' run keywords click element xpath=//*[@id="interceptionadd_pro0"]/div[2] + ... AND sleep 2 + ... ELSE IF '${objtype}'=='Category' run keywords click element xpath=//*[@id="interceptionadd_pro0"]/div[3] + ... AND sleep 2 + ... ELSE log 对象错误 + SecurityPolicy.SelectOne ${objname} + +Create-Conditions-deny&monitor-mail + [Arguments] ${objtype} ${objname} + sleep 2 + run keyword if '${objtype}'=='Subject' run keywords click element id=interceptionadd_pro0 + ... AND sleep 2 + ... ELSE IF '${objtype}'=='Content' run keywords click element id=interceptionadd_pro1 + ... AND sleep 2 + ... ELSE IF '${objtype}'=='ATT Name' run keywords click element id=interceptionadd_pro2 + ... AND sleep 2 + ... ELSE IF '${objtype}'=='ATT CONT' run keywords click element id=interceptionadd_pro3 + ... AND sleep 2 + ... ELSE IF '${objtype}'=='From' run keywords click element id=interceptionadd_pro4 + ... AND sleep 2 + ... ELSE IF '${objtype}'=='To' run keywords click element id=interceptionadd_pro5 + ... AND sleep 2 + ... ELSE IF '${objtype}'=='Account' run keywords click element id=interceptionadd_pro6 + ... AND sleep 2 + ... ELSE log 对象错误 + SecurityPolicy.SelectOne ${objname} + +Create-Conditions-deny&monitor-ftp + [Arguments] ${objtype} ${objname} + sleep 2 + run keyword if '${objtype}'=='url' run keywords click element id=interceptionadd_pro0 + ... AND sleep 2 + ... ELSE IF '${objtype}'=='content' run keywords click element id=interceptionadd_pro1 + ... AND sleep 2 + ... ELSE IF '${objtype}'=='account' run keywords click element id=interceptionadd_pro2 + ... AND sleep 2 + ... ELSE log 对象错误 + SecurityPolicy.SelectOne ${objname} + +SelectOne + [Arguments] ${objname} + sleep 2 + log ${objname} + input text xpath=//*[@id="condistions_protocol"]/div[2]/div[2]/div/div[1]/input ${objname} + sleep 1 + press keys xpath=//*[@id="condistions_protocol"]/div[2]/div[2]/div/div[1]/input ENTER + sleep 2 + click element xpath=//*[@id="interceptionadd_checkouobject"]/ul/li[1] diff --git a/02-Keyword/tsg_ui/setting/Settings.robot b/02-Keyword/tsg_ui/setting/Settings.robot new file mode 100644 index 0000000..31f0d51 --- /dev/null +++ b/02-Keyword/tsg_ui/setting/Settings.robot @@ -0,0 +1,914 @@ +*** Settings *** +Library Selenium2Library +Library E:/Program Files (x86)/Python37-32/Lib/site-packages/robot/libraries/String.py + +*** Keywords *** +click + [Arguments] ${element} + Click Element ${element} + +input + [Arguments] ${element} ${text} + Input Text ${element} ${text} + +ui-logout + Close Browser + +ui-login + Open Browser http://192.168.40.120 Chrome + input xpath=//*[@id="app"]/div/div[2]/div/div[2]/div/input lyf + input xpath=//*[@id="app"]/div/div[2]/div/div[3]/div/input 111111 + click xpath=//*[@id="app"]/div/div[2]/div/div[4]/button + +Create-Hijack Files + [Arguments] ${name} ${file} ${type} ${shift}=1 ${input1}=1 + Sleep 1 + click id=children5 #点击一级目录Settings + Sleep 1 + click id=sidebarProxy_Profiles #点击二级目录Proxy Profiles + Sleep 2 + click id=profilesTabs_Profile_HijackFiles #点击Hijack Files按钮 + Sleep 1 + click id=hijackAdd #点击Create + Sleep 2 + input id=hijack_profileName ${name} #输入name + Sleep 2 + Choose File xpath=//*[@id="app"]/div/div[3]/div/div/div[2]/div[1]/div[2]/form/div[2]/div/div/div[1]/input ${file} #上传文件 + Sleep 2 + ${dow_name} Set Variable ${shift} + ${input} Set Variable ${input1} + run keyword if "${dow_name}"=="close" and "${input}"=="shuru" run keywords sleep 1 + ... AND input id=hijack_contentName ${name} + ... ELSE IF "${dow_name}"=="open" click xpath=//*[@id="contentNameChoose"]/div[1]/span[2] + sleep 1 + click id=hijackAddContentType #点击+ 打开侧滑窗口 + Sleep 1 + click ${type} #选择文件类型 + sleep 2 + click id=hijackAddOk1 #点击OK + Sleep 2 + input id=one-input ${name} #搜索输入框输入name + Sleep 1 + click id=select_new_search_btn #点击搜索按钮 + Sleep 1 + ${text1} Get Text xpath=//*[@id="ly-table1-listcontent"]/div/div[3]/table/tbody/tr/td[2]/div/span #获取点击后页面文本信息 + Should Be Equal As Strings ${text1} ${name} #断言 + +Create-Insert Scripts + [Arguments] ${name} ${file} ${type} + Sleep 1 + click id=children5 #点击一级目录Settings + Sleep 1 + click id=sidebarProxy_Profiles #点击二级目录Proxy Profiles + Sleep 2 + click id=profilesTabs_Profile_Insert #点击Insert Scripts按钮 + Sleep 1 + click id=insertAdd #点击Create + Sleep 2 + input id=insert_profileName ${name} #输入name + Sleep 2 + Choose File xpath=//*[@id="insertAddUpload"]/div[1]/input ${file} #上传文件 + Sleep 2 + click id=insert_select_format #点击下拉框按钮 + Sleep 1 + click ${type} #选择css + sleep 1 + click xpath=//*[@id="policy_Manipulation_create8"]/div[2]/form/div[5]/div/div/button[1] #点击OK + Sleep 1 + input xpath=//*[@id="one-input"] ${name} #搜索输入框输入name + Sleep 1 + click xpath=//*[@id="app"]/div/div[3]/div/div/div[2]/div[1]/div[2]/div[2]/i #点击搜索按钮 + Sleep 1 + ${text1} Get Text xpath=//*[@id="app"]/div/div[3]/div/div/div[2]/div[2]/div/div[3]/table/tbody/tr[1]/td[2]/div/div/span #获取点击后页面文本信息 + Should Be Equal As Strings ${text1} ${name} #断言 + +Create-Traffic Mirror Profiles + [Arguments] ${name} ${type} ${shuru} + Sleep 1 + click id=children5 #点击一级目录Settings + Sleep 1 + click id=sidebarProxy_Profiles #点击二级目录Proxy Profiles + Sleep 2 + click id=profilesTabs_Profile_TrafficMirrorProfiles #点击Traffic Mirror Profiles按钮 + Sleep 1 + click id=trafficMirrorAdd #点击Create + Sleep 2 + input id=trafficmirror_profileName ${name} #输入name + Sleep 2 + click xpath=//*[@id="app"]/div/div[3]/div/div/div[2]/div/div[2]/form/div[2]/div/div/div[1]/span/span/i #点击下拉框 + Sleep 2 + click ${type} #选择vlan或者mac + Sleep 1 + input id=trafficmirror_addrArray0 ${shuru} + sleep 2 + click xpath=//*[@id="app"]/div/div[3]/div/div/div[2]/div/div[2]/form/div[5]/div/div/button[1] #点击OK + Sleep 2 + input id=one-input ${name} #搜索输入框输入name + Sleep 1 + click id=select_new_search_btn #点击搜索按钮 + Sleep 1 + ${text1} Get Text xpath=//*[@id="app"]/div/div[3]/div/div/div[2]/div[2]/div/div[3]/table/tbody/tr/td[2]/div/div/span #获取点击后页面文本信息 + Should Be Equal As Strings ${text1} ${name} #断言 + +Edit-Insert Scripts + [Arguments] ${id-name} ${name} ${name1} ${file} ${type} + [Documentation] 引用关键字,填入必填参数 + ... 必填参数: + ... ${id-name}:为选择要查询的类型是ID或者Name的元素 + ... ${name}:为查询输入框输入内容 + ... ${name1}:为修改页面的name输入框里输入的内容 + ... ${file}:为修改页面要上传文件的路径 + ... ${type}:选择文件类型的元素 + sleep 1 + click id=sidebarProxy_Profiles #点击二级目录Proxy Profiles + sleep 2 + click id=profilesTabs_Profile_Insert #点击Insert files按钮 + sleep 1 + click id=one-input #搜索点击输入框 + sleep 1 + click ${id-name} #选择ID或者name + sleep 1 + input id=sreach_input ${name} #输入搜索内容 + sleep 1 + click xpath=//*[@id="select_new_search_btn"] #点击搜索按钮 + sleep 1 + click xpath=//*[@id="app"]/div/div[3]/div/div/div[2]/div[2]/div/div[3]/table/tbody/tr[1] #点击搜素到的列表 + sleep 1 + click id=insertEdit #点击Edit + sleep 1 + Clear Element Text id=insert_profileName #清空输入框 + sleep 1 + input id=insert_profileName ${name1} #输入框输入 + sleep 1 + Choose File xpath=//*[@id="insertAddUpload"]/div[1]/input ${file} #上传文件 + sleep 1 + click id=insert_select_format #点击下拉框 + sleep 1 + click ${type} #选择文件类型 + sleep 1 + click xpath=//*[@id="policy_Manipulation_create8"]/div[2]/form/div[8]/div/div/button[1] #点击ok提交 + +Create-Response Pages + [Arguments] ${name} ${file} + [Documentation] 引用次关键字,填入必填参数 + ... 必填参数: + ... ${name}:新建页面name输入框里的内容 + ... ${file}:上传文件所在本地的路径 + #打开浏览器 + #ui-login lyf 111111 + Sleep 1 + click id=children5 #点击一级目录Settings + Sleep 1 + click id=sidebarProxy_Profiles #点击二级目录Proxy Profiles + Sleep 2 + click id=respinseAdd #Response Pages点击Create + Sleep 2 + input id=responsepages_profileName ${name} #输入name + Sleep 2 + Choose File xpath=//*[@id="policy_Manipulation_create6"]/div[2]/form/div[2]/div/div/div/input ${file} #上传文件 + Sleep 2 + click xpath=//*[@id="policy_Manipulation_create6"]/div[2]/form/div[4]/div/div/button[1] #点击OK缇交 + Sleep 1 + input xpath=//*[@id="one-input"] ${name} #搜索框输入 + Sleep 1 + click xpath=//*[@id="app"]/div/div[3]/div/div/div[2]/div[1]/div[1]/div[2]/i #点击搜索按钮 + Sleep 1 + ${text1} Get Text xpath=//*[@id="ly-table1-listcontent"]/div/div[3]/table/tbody/tr/td[2]/div/div/span #获取点击后页面文本信息 + Should Be Equal As Strings ${text1} ${name} #断言 + +Edit-Response Pages + [Arguments] ${id-name} ${name} ${name1} ${file} + [Documentation] 引用关键字,填入必填参数 + ... 必填参数: + ... ${id-name}:为选择要查询的类型是ID或者Name的元素 + ... ${name}:为查询输入框输入内容 + ... ${name1}:为修改页面的name输入框里输入的内容 + ... ${file}:为修改页面要上传文件的路径 + sleep 1 + click id=sidebarProxy_Profiles #点击二级目录Proxy Profiles + Sleep 2 + click id=one-input #搜索点击输入框 + Sleep 1 + click ${id-name} #选择ID或者name + Sleep 1 + input id=sreach_input ${name} + Sleep 1 + click xpath=//*[@id="ly-table1-listcontent"]/div/div[3]/table/tbody/tr[1] #点击搜素到的列表 + sleep 1 + click id=resinseEdit #点击Edit + sleep 1 + Clear Element Text id=responsepages_profileName #清空name输入框 + sleep 1 + input id=responsepages_profileName ${name1} + sleep 1 + Choose File xpath=//*[@id="policy_Manipulation_create6"]/div[2]/form/div[5]/div/div/div/input ${file} + sleep 1 + click xpath=//*[@id="policy_Manipulation_create6"]/div[2]/form/div[7]/div/div/button[1] + +Edit-Hijack Files + [Arguments] ${id-name} ${name} ${name1} ${file} ${type} ${shift}=1 + ... ${input1}=1 + [Documentation] 引用关键字,填入必填参数 + ... 必填参数: + ... ${id-name}:为选择要查询的类型是ID或者Name的元素 + ... ${name}:为查询输入框输入内容 + ... ${name1}:为修改页面的name输入框里输入的内容 + ... ${file}:为修改页面要上传文件的路径 + ... ${type}:为文件类型的元素 + sleep 1 + click id=sidebarProxy_Profiles #点击二级目录Proxy Profiles + Sleep 2 + click id=profilesTabs_Profile_HijackFiles #点击Hijack files按钮 + sleep 1 + click id=one-input #搜索点击输入框 + sleep 1 + click ${id-name} #选择ID或者name + sleep 1 + input id=sreach_input ${name} #输入搜索内容 + sleep 1 + click xpath=//*[@id="select_new_search_btn"] #点击搜索按钮 + sleep 1 + click xpath=//*[@id="ly-table1-listcontent"]/div/div[3]/table/tbody/tr[1] #点击搜素到的列表 + sleep 1 + click id=hijackEdit #点击Edit + sleep 1 + Clear Element Text id=hijack_profileName #清空输入框 + sleep 1 + input id=hijack_profileName ${name1} #输入框输入 + sleep 1 + Choose File xpath=//*[@id="app"]/div/div[3]/div/div/div[2]/div[1]/div[2]/form/div[5]/div/div/div[1]/input ${file} #上传文件 + sleep 1 + ${dow_name} Set Variable ${shift} + ${input} Set Variable ${input1} + run keyword if "${dow_name}"=="close" and "${input}"=="shuru" run keywords sleep 1 + ... AND input id=hijack_contentName ${name} + ... ELSE IF "${dow_name}"=="open" click xpath=//*[@id="contentNameChoose"]/div[1]/span[2] + sleep 1 + click id=hijackAddContentType #点击+号打开侧滑框 + sleep 3 + click ${type} #选择类型 + sleep 1 + click xpath=//*[@id="app"]/div/div[3]/div/div/div[2]/div[2]/div/div[2]/button #关闭侧滑框 + sleep 1 + click id=hijackAddOk #点击ok提交 + +Edit-Traffic Mirror Profiles + [Arguments] ${id-name} ${name} ${name1} ${type} ${shuju} + [Documentation] 引用关键字,填入必填参数 + ... 必填参数: + ... ${id-name}:为选择要查询的类型是ID或者Name的元素 + ... ${name}:为查询输入框输入内容 + ... ${name1}:为修改页面的name输入框里输入的内容 + ... ${type}:为选择点击vlan或mac的元素 + ... ${shuju}:为输入框输入内容 + sleep 1 + click id=sidebarProxy_Profiles #点击二级目录Proxy Profiles + Sleep 2 + click id=profilesTabs_Profile_TrafficMirrorProfiles #点击Traffic Mirror Profiles按钮 + sleep 1 + click id=one-input #搜索点击输入框 + sleep 1 + click ${id-name} #选择ID或者name + sleep 1 + input id=sreach_input ${name} #输入搜索内容 + sleep 1 + click xpath=//*[@id="select_new_search_btn"] #点击搜索按钮 + sleep 1 + click xpath=//*[@id="app"]/div/div[3]/div/div/div[2]/div[2]/div/div[3]/table/tbody/tr[1] #点击搜素到的列表 + sleep 1 + click id=trafficMirrorEdit #点击Edit + sleep 1 + Clear Element Text id=trafficmirror_profileName #清空输入框 + sleep 1 + input id=trafficmirror_profileName ${name1} #输入框输入 + sleep 1 + click xpath=//*[@id="app"]/div/div[3]/div/div/div[2]/div/div[2]/form/div[5]/div/div/div[1]/input #点击下拉框 + sleep 1 + click ${type} #选择vlan或者mac + sleep 1 + Clear Element Text id=trafficmirror_addrArray0 #清空输入框 + sleep 1 + input id=trafficmirror_addrArray0 ${shuju} #输入内容 + sleep 1 + click xpath=//*[@id="app"]/div/div[3]/div/div/div[2]/div/div[2]/form/div[8]/div/div/button[1] #点击ok + +import-Trusted Certificate Authorities + [Arguments] ${name} ${file} + [Documentation] 引用次关键字,填入必填参数 + ... 必填参数: + ... ${name}:新建页面name输入框里的内容 + ... ${file}:上传文件所在本地的路径 + #打开浏览器 + #ui-login lyf 111111 + Sleep 1 + click id=children5 #点击一级目录Settings + Sleep 1 + click id=sidebarProxy_CertificateManagement #点击二级目录Trusted Certificate Authorities + Sleep 2 + click id=Authorities_create #点击Import + Sleep 2 + input id=authoritiesAdd_name ${name} #输入name + Sleep 2 + Choose File xpath=//*[@id="upload_dome"]/div/input ${file} #上传文件 + Sleep 2 + click id=authoritiesAdd_sub #点击OK缇交 + Sleep 1 + input xpath=//*[@id="one-input"] ${name} #搜索框输入 + Sleep 1 + click id=select_new_search_btn #点击搜索按钮 + Sleep 1 + ${text1} Get Text xpath=//*[@id="ly-table1-listcontent"]/div/div[3]/table/tbody/tr/td[2]/div/div/div/p/span #获取点击后页面文本信息 + Should Be Equal As Strings ${text1} ${name} #断言 + +Create-Decryption Keyrings + [Arguments] ${name} ${file} ${file1} ${1or2} ${type} ${type1} + ... ${shift}=close + [Documentation] 引用次关键字,填入必填参数 + ... 必填参数: + ... ${name}:新建页面name输入框里的内容 + ... ${file}:上传文件所在本地的路径 + ... ${file1}:上传文件所在本地的路径 + ... ${1or2}:填入1 或者其他 + ... ${type}:上传证书类型的元素 + ... ${type1}:上传证书加密解密算法的元素 + #打开浏览器 + #ui-login lyf 111111 + Sleep 1 + click id=children5 #点击一级目录Settings + Sleep 1 + click id=sidebarProxy_CertificateManagement #点击二级目录Trusted Certificate Authorities + Sleep 2 + click xpath=//*[@id="proxyTabs"]/div/ul/li[2] #点击Decryption Keyrings + sleep 1 + click id=Keyrings_create #点击Create + Sleep 2 + input id=keyringsadd_name ${name} #输入name + Sleep 2 + Choose File xpath=//*[@id="app"]/div/div[3]/div/div/div[2]/div/div[2]/form/div[2]/div/div/div/input ${file} #上传文件 + Sleep 2 + Choose File xpath=//*[@id="app"]/div/div[3]/div/div/div[2]/div/div[2]/form/div[4]/div/div/div/input ${file1} #上传文件 + ${select} Set Variable ${1or2} + Run Keyword If '${select}'=='1' click id=keyringsadd_customized + Run Keyword If '${select}'=='1' input id=reissueExpiryDate 10 + sleep 1 + click xpath=//*[@id="app"]/div/div[3]/div/div/div[2]/div/div[2]/form/div[7]/div/div/div[1] #点击下拉框 + sleep 1 + click ${type} #选择证书类型 + sleep 1 + click xpath=//*[@id="app"]/div/div[3]/div/div/div[2]/div/div[2]/form/div[8]/div/div/div[1] #点击下拉框 + sleep 1 + click ${type1} #选择加密解密类型 + sleep 1 + ${root} Set Variable ${shift} + run keyword if "${root}"=="open" run keywords sleep 1 + ... AND click xpath=//*[@id="app"]/div/div[3]/div/div/div[2]/div/div[2]/form/div[10]/div/div + ... ELSE IF "${root}"=="close" log "go on" + click id=keyringsadd_sub #点击OK缇交 + Sleep 1 + input xpath=//*[@id="one-input"] ${name} #搜索框输入 + Sleep 1 + click id=select_new_search_btn #点击搜索按钮 + Sleep 1 + ${text1} Get Text xpath=//*[@id="ly-table1-listcontent"]/div/div[3]/table/tbody/tr/td[2]/div/div/div/p/span #获取点击后页面文本信息 + Should Be Equal As Strings ${text1} ${name} #断言 + +Create-SSL Decryption Exclusion + [Arguments] ${name} ${value} ${name1} + [Documentation] 引用次关键字,填入必填参数 + ... 必填参数: + ... ${name}:新建页面name输入框里的内容 + ... ${value}:输入内容 + ... ${naem1}:搜索框填入内容 + Sleep 1 + click id=children5 #点击一级目录Settings + Sleep 1 + click id=sidebarProxy_CertificateManagement #点击二级目录Trusted Certificate Authorities + Sleep 2 + click xpath=//*[@id="proxyTabs"]/div/ul/li[3] #点击SSL Decryption Exclusion按钮 + sleep 1 + click id=ssl_create #点击Create + Sleep 2 + input id=sslAdd_name ${name} #输入name + Sleep 2 + input id=sslAdd_itemDesc ${value} #输入内容 + Sleep 2 + click id=ssl_ok #点击OK缇交 + Sleep 1 + input xpath=//*[@id="one-input"] ${name1} #搜索框输入 + Sleep 1 + click id=select_new_search_btn #点击搜索按钮 + Sleep 1 + ${text1} Get Text xpath=//*[@id="ly-table1-listcontent"]/div/div[3]/table/tbody/tr/td[2]/div/div/div/p/span #获取点击后页面文本信息 + Should Be Equal As Strings ${text1} ${name} #断言 + +Search-Cached Intermediate Certificates + [Arguments] ${type} ${id-sni} ${enabled} + [Documentation] 引用关键字,填入必填参数 + ... ${type}:为搜索类型的元素(id或sni) + ... ${enabled}:为enabled开启或关闭按钮的元素 + Sleep 1 + click id=one-input #点击搜索框 + Sleep 1 + click ${type} + Sleep 1 + input id=sreach_input ${id-sni} + click id=select_new_search_btn #点击搜索按钮 + Sleep 1 + click xpath=//*[@id="ly-table1-listcontent"]/div/div[3]/table/tbody/tr/td[8]/div/div/div/p/a/i #点击下载 + Sleep 10 + click ${enabled} #点击enabled按钮 + sleep 1 + +Edit-Trusted Certificate Authorities + [Arguments] ${id-name} ${value} ${name} ${file} + [Documentation] 引用关键字,填入必填参数 + ... 必填参数: + ... ${id-name}:为选择要查询的类型是ID或者Name的元素 + ... ${value}:为查询输入框输入内容 + ... ${name}:为修改页面的name输入框里输入的内容 + ... ${file}:为修改页面要上传文件的路径 + sleep 1 + click id=sidebarProxy_CertificateManagement #点击二级目录Trusted Certificate Authorities + Sleep 2 + click id=one-input #点击搜索框 + sleep 1 + click ${id-name} #选择搜索类型 + sleep 1 + input id=sreach_input ${value} #输入内容 + sleep 1 + click id=select_new_search_btn #点击搜索按钮 + sleep 1 + click xpath=//*[@id="ly-table1-listcontent"]/div/div[3]/table/tbody/tr #点击搜索列表 + sleep 1 + click id=Authorities_edit #点击Edit按钮 + sleep 1 + Clear Element Text id=authoritiesAdd_name #清空name输入框 + sleep 1 + input id=authoritiesAdd_name ${name} #输入name + sleep 1 + Choose File xpath=//*[@id="upload_dome"]/div/input ${file} #上传文件 + sleep 1 + click id=authoritiesAdd_sub #点击ok + +Edit-Decryption Keyrings + [Arguments] ${id-name} ${value} ${name} ${file} ${file1} ${1or2} + ... ${type} ${type1} + [Documentation] 引用次关键字,填入必填参数 + ... 必填参数: + ... ${id-name}:为选择要查询的类型是ID或者Name的元素 + ... ${value}:为查询输入框输入内容 + ... ${name}:新建页面name输入框里的内容 + ... ${file}:上传文件所在本地的路径 + ... ${file1}:上传文件所在本地的路径 + ... ${1or2}:填入1 或者其他 + ... ${type}:上传证书类型的元素 + ... ${type1}:上传证书加密解密算法的元素 + sleep 1 + click id=sidebarProxy_CertificateManagement #点击二级目录Trusted Certificate Authorities + Sleep 2 + click xpath=//*[@id="proxyTabs"]/div/ul/li[2] #点击Decryption Keyrings + sleep 1 + click id=one-input #点击搜索框 + sleep 1 + click ${id-name} #选择搜索类型 + sleep 1 + input id=sreach_input ${value} #输入内容 + sleep 1 + click id=select_new_search_btn #点击搜索按钮 + sleep 1 + click xpath=//*[@id="ly-table1-listcontent"]/div/div[3]/table/tbody/tr #点击搜索列表 + sleep 1 + click id=Keyrings_edit #点击Edit按钮 + sleep 1 + Clear Element Text id=keyringsadd_name #清空name输入框 + sleep 1 + input id=keyringsadd_name ${name} #输入name + sleep 1 + Choose File xpath=//*[@id="app"]/div/div[3]/div/div/div[2]/div/div[2]/form/div[5]/div/div/div/input ${file} #上传文件 + Sleep 2 + Choose File xpath=//*[@id="app"]/div/div[3]/div/div/div[2]/div/div[2]/form/div[7]/div/div/div/input ${file1} #上传文件 + ${select} Set Variable ${1or2} + Run Keyword If '${select}'=='1' click id=keyringsadd_customized + Run Keyword If '${select}'=='1' input id=reissueExpiryDate 10 + sleep 1 + click xpath=//*[@id="app"]/div/div[3]/div/div/div[2]/div/div[2]/form/div[10]/div/div/div[1] #点击下拉框 + sleep 1 + click ${type} #选择证书类型 + sleep 1 + click xpath=//*[@id="app"]/div/div[3]/div/div/div[2]/div/div[2]/form/div[11]/div/div/div[1] #点击下拉框 + sleep 1 + click ${type1} #选择加密解密类型 + sleep 1 + click id=keyringsadd_sub #点击OK缇交 + +Edit-SSL Decryption Exclusion + [Arguments] ${id-name} ${value} ${name} ${value1} + [Documentation] 引用关键字,填入必填参数 + ... ${id-name}:id或者name的元素 + ... ${value}:输入搜索的内容 + ... ${name}:输入name + ... ${calue1}:输入内容 + sleep 1 + click id=sidebarProxy_CertificateManagement #点击二级目录Trusted Certificate Authorities + Sleep 2 + click xpath=//*[@id="proxyTabs"]/div/ul/li[3] #点击SSL Decryption Exclusion按钮 + sleep 1 + click id=one-input #点击搜索框 + sleep 1 + click ${id-name} #选择搜索类型 + sleep 1 + input id=sreach_input ${value} #输入内容 + sleep 1 + click id=select_new_search_btn #点击搜索按钮 + sleep 1 + click xpath=//*[@id="ly-table1-listcontent"]/div/div[3]/table/tbody/tr #点击搜索列表 + Sleep 1 + click id=ssl_edit #点击Edit + Sleep 1 + Clear Element Text id=sslAdd_name #清空name输入框 + sleep 1 + input id=sslAdd_name ${name} #输入name + sleep 1 + input id=sslAdd_itemDesc ${value1} #输入内容 + Sleep 2 + click id=ssl_ok #点击OK缇交 + +Settings_swarch_name + [Arguments] ${name} + sleep 2 + click element id=one-input + sleep 2 + click element id=input_list_li2 + sleep 2 + input text id=sreach_input ${name} + sleep 2 + click element id=select_new_search_btn + sleep 2 + click element xpath=//*[@id="ly-table1-listcontent"]/div/div[3]/table + +Create-Policy_Verify + [Arguments] ${name} ${list2}=null ${fail1}=null ${list4}=null ${list6}=null ${min1}=null + ... ${max1}=null + Sleep 1 + click id=children5 #点击一级目录Settings + Sleep 1 + click id=sidebarProxy_Profiles #点击二级目录Proxy Profiles + sleep 2 + click id=profilesTabs_Profile_DecryptionProfile #点击Decryption Profile + Sleep 1 + click id=insertAdd #点击Create + Sleep 1 + input id=insert_profileName ${name} + Sleep 1 + @{list} Create List Common Name Issuer Self-signed Expiry Date Mutual Authentication + ... On Protocol Errors Certificate Pinning Mirror Client Versions Allow HTTP/2 + : FOR ${i} IN @{list} + \ click xpath=//*[@id="policy_Manipulation_create8"]/div[2]/form/div/div/label[contains(text(), "${i}")]/following-sibling::div/div/span + \ sleep 1 + @{list1} Set Variable ${list2} + ${fail} Set Variable ${fail1} + : FOR ${j} IN @{list1} + \ run keyword if "@{list1}"=="[]" Exit for loop + \ ... ELSE Run Keywords click xpath=//*[@id="policy_Manipulation_create8"]/div[2]/form/div/div/label[contains(text(), "${j}")]/following-sibling::div/div/span + \ ... AND sleep 1 + run keyword if "${fail}"=="Fail-close" Run Keywords sleep 1 + ... AND click xpath=//*[@id="policy_Manipulation_create8"]/div[2]/form/div[3]/div[5]/div/div/label[1]/span + ... ELSE IF "${fail}"=="Pass-through" Run Keywords sleep 1 + ... AND click xpath=//*[@id="policy_Manipulation_create8"]/div[2]/form/div[3]/div[5]/div/div/label[2]/span + ... ELSE log 1111 + @{list3} Set Variable ${list4} + : FOR ${k} IN @{list3} + \ run keyword if "@{list3}"=="[]" Exit for loop + \ ... ELSE Run Keywords click xpath=//*[@id="policy_Manipulation_create8"]/div[2]/form/div/div/label[contains(text(), "${k}")]/following-sibling::div/div/span + \ ... AND sleep 1 + @{list5} Set Variable ${list6} + ${min} Set Variable ${min1} + ${max} Set Variable ${max1} + : FOR ${z} IN @{list5} + \ run keyword if "@{list5}"=="[]" Min_max_version ${min} ${max} + \ ... ELSE IF "${z}"=="Allow HTTP/2" Run Keywords sleep 1 + \ ... AND click xpath=//*[@id="policy_Manipulation_create8"]/div[2]/form/div/div/label[contains(text(), "${z}")]/following-sibling::div/div/span + \ ... ELSE IF "${z}"=="Mirror Client Versions" Run Keywords sleep 1 + \ ... AND click xpath=//*[@id="policy_Manipulation_create8"]/div[2]/form/div/div/label[contains(text(), "${z}")]/following-sibling::div/div/span + \ ... ELSE IF "${z}"!="Mirror Client Versions" and "${min}"=="TLSv1.0" Run Keywords sleep 1 + \ ... AND click xpath=//*[@id="policy_Manipulation_create8"]/div[2]/form/div[7]/div[2]/div/div/div/span/span/i + \ ... AND sleep 1 + \ ... AND click id=pro_min1 + \ ... ELSE IF "${z}"!="Mirror Client Versions" and "${min}"=="TLSv1.1" Run Keywords sleep 1 + \ ... AND click xpath=//*[@id="policy_Manipulation_create8"]/div[2]/form/div[7]/div[2]/div/div/div/span/span/i + \ ... AND sleep 1 + \ ... AND click id=pro_min2 + \ ... ELSE IF "${z}"!="Mirror Client Versions" and "${min}"=="TLSv1.2" Run Keywords sleep 1 + \ ... AND click xpath=//*[@id="policy_Manipulation_create8"]/div[2]/form/div[7]/div[2]/div/div/div/span/span/i + \ ... AND sleep 1 + \ ... AND click id=pro_min3 + \ ... ELSE IF "${z}"!="Mirror Client Versions" and "${min}"=="TLSv1.3" Run Keywords sleep 1 + \ ... AND click xpath=//*[@id="policy_Manipulation_create8"]/div[2]/form/div[7]/div[2]/div/div/div/span/span/i + \ ... AND sleep 1 + \ ... AND click id=pro_min4 + \ ... ELSE IF "${z}"!="Mirror Client Versions" and "${min}"=="SSLv3.0" Run Keywords sleep 1 + \ ... AND click xpath=//*[@id="policy_Manipulation_create8"]/div[2]/form/div[7]/div[2]/div/div/div/span/span/i + \ ... AND sleep 1 + \ ... AND click id=pro_max0 + \ ... ELSE IF "${z}"!="Mirror Client Versions" and "${max}"=="TLSv1.0" Run Keywords sleep 1 + \ ... AND click xpath=//*[@id="policy_Manipulation_create8"]/div[2]/form/div[7]/div[3]/div/div/div/span/span/i + \ ... AND sleep 1 + \ ... AND click id=pro_max1 + \ ... ELSE IF "${z}"!="Mirror Client Versions" and "${max}"=="TLSv1.1" Run Keywords sleep 1 + \ ... AND click xpath=//*[@id="policy_Manipulation_create8"]/div[2]/form/div[7]/div[3]/div/div/div/span/span/i + \ ... AND sleep 1 + \ ... AND click id=pro_max2 + \ ... ELSE IF "${z}"!="Mirror Client Versions" and "${max}"=="TLSv1.2" Run Keywords sleep 1 + \ ... AND click xpath=//*[@id="policy_Manipulation_create8"]/div[2]/form/div[7]/div[3]/div/div/div/span/span/i + \ ... AND sleep 1 + \ ... AND click id=pro_max3 + \ ... ELSE IF "${z}"!="Mirror Client Versions" and "${max}"=="TLSv1.3" Run Keywords sleep 1 + \ ... AND click xpath=//*[@id="policy_Manipulation_create8"]/div[2]/form/div[7]/div[3]/div/div/div/span/span/i + \ ... AND sleep 1 + \ ... AND click id=pro_max4 + \ ... ELSE IF "${z}"!="Mirror Client Versions" and "${max}"=="SSLv3.0" Run Keywords sleep 1 + \ ... AND click xpath=//*[@id="policy_Manipulation_create8"]/div[2]/form/div[7]/div[3]/div/div/div/span/span/i + \ ... AND sleep 1 + \ ... AND click id=pro_max0 + sleep 1 + run keyword if "@{list5}"=="[]" Min_max_version ${min} ${max} + ${class}= Get Element Attribute xpath=//*[@id="policy_Manipulation_create8"]/div[2]/form/div[3]/div[1]/div/div class + log ${class} + click id=insertAddOk1 + +Min_max_version + [Arguments] ${min} ${max} + run keyword if "${min}"=="TLSv1.0" Run Keywords sleep 1 + ... AND click xpath=//*[@id="policy_Manipulation_create8"]/div[2]/form/div[7]/div[2]/div/div/div/span/span/i + ... AND sleep 1 + ... AND click id=pro_min1 + ... ELSE IF "${min}"=="TLSv1.1" Run Keywords sleep 1 + ... AND click xpath=//*[@id="policy_Manipulation_create8"]/div[2]/form/div[7]/div[2]/div/div/div/span/span/i + ... AND sleep 1 + ... AND click id=pro_min2 + ... ELSE IF "${min}"=="TLSv1.2" Run Keywords sleep 1 + ... AND click xpath=//*[@id="policy_Manipulation_create8"]/div[2]/form/div[7]/div[2]/div/div/div/span/span/i + ... AND sleep 1 + ... AND click id=pro_min3 + ... ELSE IF "${min}"=="TLSv1.3" Run Keywords sleep 1 + ... AND click xpath=//*[@id="policy_Manipulation_create8"]/div[2]/form/div[7]/div[2]/div/div/div/span/span/i + ... AND sleep 1 + ... AND click id=pro_min4 + ... ELSE IF "${min}"=="SSLv3.0" Run Keywords sleep 1 + ... AND click xpath=//*[@id="policy_Manipulation_create8"]/div[2]/form/div[7]/div[2]/div/div/div/span/span/i + ... AND sleep 1 + ... AND click id=pro_max0 + ... ELSE log 错误 + run keyword if "${max}"=="TLSv1.0" Run Keywords sleep 1 + ... AND click xpath=//*[@id="policy_Manipulation_create8"]/div[2]/form/div[7]/div[3]/div/div/div/span/span/i + ... AND sleep 1 + ... AND click id=pro_max1 + ... ELSE IF "${max}"=="TLSv1.1" Run Keywords sleep 1 + ... AND click xpath=//*[@id="policy_Manipulation_create8"]/div[2]/form/div[7]/div[3]/div/div/div/span/span/i + ... AND sleep 1 + ... AND click id=pro_max2 + ... ELSE IF "${max}"=="TLSv1.2" Run Keywords sleep 1 + ... AND click xpath=//*[@id="policy_Manipulation_create8"]/div[2]/form/div[7]/div[3]/div/div/div/span/span/i + ... AND sleep 1 + ... AND click id=pro_max3 + ... ELSE IF "${max}"=="TLSv1.3" Run Keywords sleep 1 + ... AND click xpath=//*[@id="policy_Manipulation_create8"]/div[2]/form/div[7]/div[3]/div/div/div/span/span/i + ... AND sleep 1 + ... AND click id=pro_max4 + ... ELSE IF "${max}"=="SSLv3.0" Run Keywords sleep 1 + ... AND click xpath=//*[@id="policy_Manipulation_create8"]/div[2]/form/div[7]/div[3]/div/div/div/span/span/i + ... AND sleep 1 + ... AND click id=pro_max0 + ... ELSE log 错误 + +Create-Policy_Verify1 + [Arguments] ${name} ${dict1}=null ${fail1}=null ${min1}=null ${max1}=null + Sleep 1 + click id=children5 #点击一级目录Settings + Sleep 1 + click id=sidebarProxy_Profiles #点击二级目录Proxy Profiles + sleep 2 + click id=profilesTabs_Profile_DecryptionProfile #点击Decryption Profile + Sleep 1 + click id=insertAdd #点击Create + Sleep 1 + input id=insert_profileName ${name} + Sleep 1 + Button_Switch ${dict1} //*[@id="policy_Manipulation_create8"]/div[2]/form/div/div/label[contains(text(), " ")]/following-sibling::div/div el-switch is-checked el-switch + ${fail} Set Variable ${fail1} + run keyword if "${fail}"=="Fail-close" Run Keywords sleep 1 + ... AND click xpath=//*[@id="policy_Manipulation_create8"]/div[2]/form/div[3]/div[5]/div/div/label[1]/span + ... ELSE IF "${fail}"=="Pass-through" Run Keywords sleep 1 + ... AND click xpath=//*[@id="policy_Manipulation_create8"]/div[2]/form/div[3]/div[5]/div/div/label[2]/span + ... ELSE log 1111 + ${min} Set Variable ${min1} + ${max} Set Variable ${max1} + run keyword if "${min}"=="TLSv1.0" Run Keywords sleep 1 + ... AND click xpath=//*[@id="policy_Manipulation_create8"]/div[2]/form/div[7]/div[2]/div/div/div/span/span/i + ... AND sleep 1 + ... AND click id=pro_min1 + ... ELSE IF "${min}"=="TLSv1.1" Run Keywords sleep 1 + ... AND click xpath=//*[@id="policy_Manipulation_create8"]/div[2]/form/div[7]/div[2]/div/div/div/span/span/i + ... AND sleep 1 + ... AND click id=pro_min2 + ... ELSE IF "${min}"=="TLSv1.2" Run Keywords sleep 1 + ... AND click xpath=//*[@id="policy_Manipulation_create8"]/div[2]/form/div[7]/div[2]/div/div/div/span/span/i + ... AND sleep 1 + ... AND click id=pro_min3 + ... ELSE IF "${min}"=="TLSv1.3" Run Keywords sleep 1 + ... AND click xpath=//*[@id="policy_Manipulation_create8"]/div[2]/form/div[7]/div[2]/div/div/div/span/span/i + ... AND sleep 1 + ... AND click id=pro_min4 + ... ELSE IF "${min}"=="SSLv3.0" Run Keywords sleep 1 + ... AND click xpath=//*[@id="policy_Manipulation_create8"]/div[2]/form/div[7]/div[2]/div/div/div/span/span/i + ... AND sleep 1 + ... AND click id=pro_min0 + ... ELSE log 错误 + run keyword if "${max}"=="TLSv1.0" Run Keywords sleep 1 + ... AND click xpath=//*[@id="policy_Manipulation_create8"]/div[2]/form/div[7]/div[3]/div/div/div/span/span/i + ... AND sleep 1 + ... AND click id=pro_max1 + ... ELSE IF "${max}"=="TLSv1.1" Run Keywords sleep 1 + ... AND click xpath=//*[@id="policy_Manipulation_create8"]/div[2]/form/div[7]/div[3]/div/div/div/span/span/i + ... AND sleep 1 + ... AND click id=pro_max2 + ... ELSE IF "${max}"=="TLSv1.2" Run Keywords sleep 1 + ... AND click xpath=//*[@id="policy_Manipulation_create8"]/div[2]/form/div[7]/div[3]/div/div/div/span/span/i + ... AND sleep 1 + ... AND click id=pro_max3 + ... ELSE IF "${max}"=="TLSv1.3" Run Keywords sleep 1 + ... AND click xpath=//*[@id="policy_Manipulation_create8"]/div[2]/form/div[7]/div[3]/div/div/div/span/span/i + ... AND sleep 1 + ... AND click id=pro_max4 + ... ELSE IF "${max}"=="SSLv3.0" Run Keywords sleep 1 + ... AND click xpath=//*[@id="policy_Manipulation_create8"]/div[2]/form/div[7]/div[3]/div/div/div/span/span/i + ... AND sleep 1 + ... AND click id=pro_max0 + ... ELSE log 错误 + sleep 2 + click id=insertAddOk1 + sleep 2 + click id=one-input #点击搜索框 + sleep 2 + click id=input_list_li2 #选择搜索类型-name + sleep 1 + input id=sreach_input ${name} #输入内容 + sleep 1 + click id=select_new_search_btn #点击搜索按钮 + ${name1} get text xpath=//*[@id="app"]/div/div[3]/div/div/div[2]/div[2]/div/div[3]/table/tbody/tr[1]/td[2]/div/div/span + Should Be Equal As Strings ${name1} ${name} + +Button_Switch + [Arguments] ${dict1} ${xpath1} ${xpath2} ${open} ${close} + ${dict} Set Variable ${dict1} + : FOR ${list} ${key} IN ENUMERATE @{dict} + \ ${class}= Get Element Attribute xpath=${xpath1}${key}${xpath2} class + \ run keyword if "${class}"=="${open}" and "${dict}[${key}]"=="1" log 默认开启,不进行操作 + \ run keyword if "${class}"=="${open}" and "${dict}[${key}]"=="0" Run Keywords log 默认开启,但需求需要关闭,进行点击关闭按钮 + \ ... AND sleep 1 + \ ... AND click xpath=${xpath1}${key}${xpath2}/span + \ run keyword if "${class}"=="${close}" and "${dict}[${key}]"=="1" Run Keywords log 默认关闭,但需求需要开启,进行点击开启按钮 + \ ... AND sleep 1 + \ ... AND click xpath=${xpath1}${key}${xpath2}/span + \ run keyword if "${class}"=="${close}" and "${dict}[${key}]"=="0" log 默认关闭,不进行操作 + +Edit_Policy_Verify + [Arguments] ${id-name} ${value} ${name} ${dict1}=null ${fail1}=null ${min1}=null + ... ${max1}=null + click id=sidebarProxy_Profiles #点击二级目录Proxy Profiles + sleep 2 + click id=profilesTabs_Profile_DecryptionProfile #点击Decryption Profile + Sleep 1 + click id=one-input #点击搜索框 + sleep 1 + click ${id-name} #选择搜索类型 + sleep 1 + input id=sreach_input ${value} #输入内容 + sleep 1 + click id=select_new_search_btn #点击搜索按钮 + sleep 1 + click xpath=//*[@id="app"]/div/div[3]/div/div/div[2]/div[2]/div/div[3]/table/tbody/tr #点击搜索列表 + Sleep 1 + click id=insertEdit #点击Edit + Sleep 2 + Clear Element Text id=insert_profileName #清空name输入框 + sleep 1 + input id=insert_profileName ${name} #输入name + sleep 1 + Button_Switch ${dict1} //*[@id="policy_Manipulation_create8"]/div[2]/form/div/div/label[contains(text(), " ")]/following-sibling::div/div el-switch is-checked el-switch + ${fail} Set Variable ${fail1} + run keyword if "${fail}"=="Fail-close" Run Keywords sleep 1 + ... AND click xpath=//*[@id="policy_Manipulation_create8"]/div[2]/form/div[6]/div[5]/div/div/label[1]/span + ... ELSE IF "${fail}"=="Pass-through" Run Keywords sleep 1 + ... AND click xpath=//*[@id="policy_Manipulation_create8"]/div[2]/form/div[6]/div[5]/div/div/label[2]/span + ... ELSE log 1111 + ${min} Set Variable ${min1} + ${max} Set Variable ${max1} + run keyword if "${min}"=="TLSv1.0" Run Keywords sleep 1 + ... AND click xpath=//*[@id="policy_Manipulation_create8"]/div[2]/form/div[10]/div[2]/div/div/div/span/span/i + ... AND sleep 1 + ... AND click id=pro_min1 + ... ELSE IF "${min}"=="TLSv1.1" Run Keywords sleep 1 + ... AND click xpath=//*[@id="policy_Manipulation_create8"]/div[2]/form/div[10]/div[2]/div/div/div/span/span/i + ... AND sleep 1 + ... AND click id=pro_min2 + ... ELSE IF "${min}"=="TLSv1.2" Run Keywords sleep 1 + ... AND click xpath=//*[@id="policy_Manipulation_create8"]/div[2]/form/div[10]/div[2]/div/div/div/span/span/i + ... AND sleep 1 + ... AND click id=pro_min3 + ... ELSE IF "${min}"=="TLSv1.3" Run Keywords sleep 1 + ... AND click xpath=//*[@id="policy_Manipulation_create8"]/div[2]/form/div[10]/div[2]/div/div/div/span/span/i + ... AND sleep 1 + ... AND click id=pro_min4 + ... ELSE IF "${min}"=="SSLv3.0" Run Keywords sleep 1 + ... AND click xpath=//*[@id="policy_Manipulation_create8"]/div[2]/form/div[10]/div[2]/div/div/div/span/span/i + ... AND sleep 1 + ... AND click id=pro_min0 + ... ELSE log 错误 + run keyword if "${max}"=="TLSv1.0" Run Keywords sleep 1 + ... AND click xpath=//*[@id="policy_Manipulation_create8"]/div[2]/form/div[10]/div[3]/div/div/div[1]/span/span/i + ... AND sleep 1 + ... AND click id=pro_max1 + ... ELSE IF "${max}"=="TLSv1.1" Run Keywords sleep 1 + ... AND click xpath=//*[@id="policy_Manipulation_create8"]/div[2]/form/div[10]/div[3]/div/div/div/span/span/i + ... AND sleep 1 + ... AND click id=pro_max2 + ... ELSE IF "${max}"=="TLSv1.2" Run Keywords sleep 1 + ... AND click xpath=//*[@id="policy_Manipulation_create8"]/div[2]/form/div[10]/div[3]/div/div/div/span/span/i + ... AND sleep 1 + ... AND click id=pro_max3 + ... ELSE IF "${max}"=="TLSv1.3" Run Keywords sleep 1 + ... AND click xpath=//*[@id="policy_Manipulation_create8"]/div[2]/form/div[10]/div[3]/div/div/div/span/span/i + ... AND sleep 1 + ... AND click id=pro_max4 + ... ELSE IF "${max}"=="SSLv3.0" Run Keywords sleep 1 + ... AND click xpath=//*[@id="policy_Manipulation_create8"]/div[2]/form/div[10]/div[3]/div/div/div/span/span/i + ... AND sleep 1 + ... AND click id=pro_max0 + ... ELSE log 错误 + click id=insertAddOk1 + sleep 2 + click id=one-input #点击搜索框 + sleep 1 + click id=input_list_li2 #选择搜索类型-name + sleep 1 + input id=sreach_input ${name} #输入内容 + sleep 1 + click id=select_new_search_btn #点击搜索按钮 + ${name1} get text xpath=//*[@id="app"]/div/div[3]/div/div/div[2]/div[2]/div/div[3]/table/tbody/tr[1]/td[2]/div/div/span + Should Be Equal As Strings ${name1} ${name} + sleep 1 + click xpath=//*[@id="app"]/div/div[3]/div/div/div[2]/div[2]/div/div[3]/table/tbody/tr[1]/td[2]/div/div/span + Delete + +Delete + sleep 2 + click id=insertDel + sleep 2 + click xpath=/html/body/div/div/div[3]/button[2] + sleep 2 +<<<<<<< HEAD + +Policy_Verify + Sleep 1 + click id=children5 #点击一级目录Settings + Sleep 1 + click id=sidebarTrouble_shooting #点击二级目录Trouble Shooting + Sleep 2 + click id=Proxy_Profiles_Profile_ResponsePages #点击Policy Verify按钮 + Sleep 1 + ${Select-Test} Set Variable ${Select-Test1} + Run Keyword If "${Select-Test}"=="Security Policy Match" Run Keywords click xpath=//*[@id="app"]/div/div[3]/div/div/div[2]/div[1]/div[1]/div[1]/form/div[1]/div/div/div/span/span/i + ... AND sleep 1 + ... AND click xpath=/html/body/div[5]/div[1]/div[1]/ul/li[1] + ... ELSE IF "${Select-Test}"=="Proxy Policy Match" Run Keywords click xpath=//*[@id="app"]/div/div[3]/div/div/div[2]/div[1]/div[1]/div[1]/form/div[1]/div/div/div/span/span/i + ... AND sleep 1 + ... AND click xpath=/html/body/div[5]/div[1]/div[1]/ul/li[2] + ... ELSE log 错误 + ${Address-type} Set Variable ${Address-type1} + Run Keyword If "${Address-type}"=="v4" Run Keywords click xpath=//*[@id="app"]/div/div[3]/div/div/div[2]/div[1]/div[1]/div[1]/form/div[2]/div/div/div/span/span/i + ... AND sleep 1 + ... AND click xpath=/html/body/div[6]/div[1]/div[1]/ul/li[1] + ... ELSE IF "${Address-type}"=="v6" Run Keywords click xpath=//*[@id="app"]/div/div[3]/div/div/div[2]/div[1]/div[1]/div[1]/form/div[2]/div/div/div/span/span/i + ... AND sleep 1 + ... AND click xpath=/html/body/div[6]/div[1]/div[1]/ul/li[2] + ... ELSE log 错误 + input xpath=//*[@id="app"]/div/div[3]/div/div/div[2]/div[1]/div[1]/div[1]/form/div[3]/div/div/input ${Client-IP} + sleep 2 + input xpath=//*[@id="app"]/div/div[3]/div/div/div[2]/div[1]/div[1]/div[1]/form/div[4]/div/div/input ${Client-Port} + sleep 2 + input xpath=//*[@id="app"]/div/div[3]/div/div/div[2]/div[1]/div[1]/div[1]/form/div[5]/div/div/input ${Server-IP} + sleep 2 + input xpath=//*[@id="app"]/div/div[3]/div/div/div[2]/div[1]/div[1]/div[1]/form/div[6]/div/div/input ${Server-Port} + ${Protocol} Set Variable ${Protocol1} + Run Keyword If "${Protocol}"=="Any" Run Keywords click xpath=//*[@id="app"]/div/div[3]/div/div/div[2]/div[1]/div[1]/div[1]/form/div[7]/div/div/div/span/span/i + ... AND sleep 1 + ... AND click xpath=/html/body/div[7]/div[1]/div[1]/ul/li[1] + ... ELSE IF "${Protocol}"=="TCP" Run Keywords click xpath=//*[@id="app"]/div/div[3]/div/div/div[2]/div[1]/div[1]/div[1]/form/div[7]/div/div/div/span/span/i + ... AND sleep 1 + ... AND click xpath=/html/body/div[7]/div[1]/div[1]/ul/li[2] + ... ELSE IF "${Protocol}"=="UDP" Run Keywords click xpath=//*[@id="app"]/div/div[3]/div/div/div[2]/div[1]/div[1]/div[1]/form/div[7]/div/div/div/span/span/i + ... AND sleep 1 + ... AND click xpath=/html/body/div[7]/div[1]/div[1]/ul/li[2] +======= +>>>>>>> f1b3db9c57b4332c650f11402b50fed24271e105 diff --git a/02-Keyword/tsg_ui/tag/Tags.robot b/02-Keyword/tsg_ui/tag/Tags.robot new file mode 100644 index 0000000..5e04028 --- /dev/null +++ b/02-Keyword/tsg_ui/tag/Tags.robot @@ -0,0 +1,120 @@ +*** Settings *** +Library Selenium2Library + +*** Keywords *** +ui-tags-create + [Arguments] ${tag-name} ${color-element} ${tag-value} + [Documentation] 引用关键字,填入必填参数: + ... ${tag-name}:输入tag 的name + ... ${color-element}:选择tag字体的颜色 + ... ${tag-value}:输入tag内容 + click element id=tagAdd #点击create按钮,新建tag + sleep 2 + input text id=tagsAdd_name ${tag-name} #输入tag name + sleep 1 + click element id=tagsAdd_color #点击color + sleep 2 + click element ${color-element} #选择tag字体颜色 + sleep 2 + input text id=tag_tagName0 ${tag-value} #输入tag内容 + sleep 1 + click element id=tagAddOk1 + sleep 1 + +ui-tags-create-1 + [Arguments] ${tag-name} ${color-element} ${tag-value} ${tag-value1} + [Documentation] 引用关键字,填入必填参数: + ... ${tag-name}:输入tag 的name + ... ${color-element}:选择tag字体的颜色 + ... ${tag-value}:输入tag内容 + ... ${tag-value1}:输入tag内容 + click element id=tagAdd #点击create按钮,新建tag + sleep 2 + input text id=tagsAdd_name ${tag-name} #输入tag name + sleep 1 + click element id=tagsAdd_color #点击color + sleep 2 + click element ${color-element} #选择tag字体颜色 + sleep 1 + input text id=tag_tagName0 ${tag-value} #输入tag内容 + sleep 1 + click element id=tagAddInput + input text id=tag_tagName1 ${tag-value1} #输入tag内容 + sleep 1 + click element id=tagAddOk1 + +ui-tags-edit + [Arguments] ${tag-name} ${color-element} ${tag-value} + [Documentation] 引用关键字,填入必填参数: + ... ${tag-name}:输入tag 的name + ... ${color-element}:选择tag字体的颜色 + ... ${tag-value}:输入tag内容 + sleep 1 + click element id=tagEdit #点击edit按钮 + sleep 2 + input text id=tagsAdd_name ${tag-name} #输入tag name + sleep 2 + click element id=tagsAdd_color #点击color + sleep 1 + click element ${color-element} #选择tag字体颜色 + sleep 1 + input text id=tag_tagName0 ${tag-value} #输入tag内容 + sleep 1 + click element id=tagAddOk1 + sleep 1 + +ui-tags-search-id + [Arguments] ${id} + sleep 1 + click element id=one-input + sleep 1 + click element id=input_list_li1 + sleep 1 + input text id=sreach_input ${id} + sleep 1 + click element id=select_new_search_btn + sleep 1 + click element xpath=//*[@id="ly-table1-listcontent"]/div/div[3]/table + +ui-tags-search-name + [Arguments] ${name} + sleep 1 + click element id=one-input + sleep 1 + click element id=input_list_li2 + sleep 1 + input text id=sreach_input ${name} + sleep 1 + click element id=select_new_search_btn + sleep 1 + click element xpath=//*[@id="ly-table1-listcontent"]/div/div[3]/table + +ui-tags-delete + sleep 1 + click element id=tagDel #点击删除按钮 + sleep 1 + click element id=tags-tagsDel-confirm + +ui-tags-edit-1 + [Arguments] ${tag-name} ${color-element} ${tag-value} ${tag-value1} + [Documentation] 引用关键字,填入必填参数: + ... ${tag-name}:输入tag 的name + ... ${color-element}:选择tag字体的颜色 + ... ${tag-value}:输入tag内容 + ... ${tag-value1}:输入tag内容 + sleep 1 + click element id=tagEdit #点击edit按钮 + sleep 2 + input text id=tagsAdd_name ${tag-name} #输入tag name + sleep 1 + click element id=tagsAdd_color #点击color + sleep 1 + click element ${color-element} #选择tag字体颜色 + sleep 2 + input text id=tag_tagName0 ${tag-value} #输入tag内容 + sleep 1 + sleep 1 + click element id=tagAddInput + input text id=tag_tagName1 ${tag-value1} #输入tag内容 + click element id=tagAddOk1 + sleep 1