diff options
author | Guangrong Fu <fu.guangrong@zte.com.cn> | 2017-09-04 18:26:10 +0800 |
---|---|---|
committer | Guangrong Fu <fu.guangrong@zte.com.cn> | 2017-09-04 18:29:05 +0800 |
commit | 603b27eec9586eabb2e2d765243a3be0bf15c14c (patch) | |
tree | e516fe2d9371ffdfa983421104e5195b32fa5bdb /test/csit/tests/holmes | |
parent | ab395aba7794a7f3739205e80a2cd9c3546b7534 (diff) |
Initial Submission of Holmes CSIT Configurations
Add shell scripts
Add test case implemetations
Change-Id: I94c11e83ee50725bc11ed2a21e16491bbaf26749
Issue-ID: HOLMES-39
Signed-off-by: Guangrong Fu <fu.guangrong@zte.com.cn>
Diffstat (limited to 'test/csit/tests/holmes')
9 files changed, 328 insertions, 0 deletions
diff --git a/test/csit/tests/holmes/testcase/CommonKeywords/HttpRequest.robot b/test/csit/tests/holmes/testcase/CommonKeywords/HttpRequest.robot new file mode 100644 index 000000000..5b8417404 --- /dev/null +++ b/test/csit/tests/holmes/testcase/CommonKeywords/HttpRequest.robot @@ -0,0 +1,37 @@ +*** Settings *** +Library Collections +Library RequestsLibrary +Resource ../RuleMgt/Rule-Keywords.robot + +*** Keywords *** +httpPut + [Arguments] ${restHost} ${restUrl} ${data} + ${headers} create dictionary Content-Type=application/json;charset=utf-8 Accept=application/json + create session microservices ${restHost} ${headers} + log ${data} + ${putResponse} put request microservices ${restUrl} ${data} \ ${EMPTY} + ... ${headers} + log ${putResponse} + [Return] ${putResponse} + +httpGet + [Arguments] ${restHost} ${restUrl} + create session microservices ${restHost} + ${getResponse} get request microservices ${restUrl} + [Return] ${getResponse} + +httpPost + [Arguments] ${restHost} ${restUrl} ${data} + ${headers} create dictionary Content-Type=application/json Accept=application/json + create session microservices ${restHost} ${headers} + log ${data} + ${postResponse} post request microservices ${restUrl} ${data} + Comment log ${postResponse.content} + [Return] ${postResponse} + +httpDelete + [Arguments] ${restHost} ${restUrl} ${data} + ${headers} create dictionary Content-Type=application/json Accept=application/json + create session microservices ${restHost} ${headers} + ${deleteResponse} delete request microservices ${restUrl} ${data} + [Return] ${deleteResponse} diff --git a/test/csit/tests/holmes/testcase/EngineMgt/Engine-Keywords.robot b/test/csit/tests/holmes/testcase/EngineMgt/Engine-Keywords.robot new file mode 100644 index 000000000..aac867678 --- /dev/null +++ b/test/csit/tests/holmes/testcase/EngineMgt/Engine-Keywords.robot @@ -0,0 +1,34 @@ +*** Settings *** +Library Collections +Library RequestsLibrary +Resource ../CommonKeywords/HttpRequest.robot +Resource EngineAddr.robot + +*** Keywords *** +deleteEngineRule + [Arguments] ${packageName} ${codeFlag}=1 + [Documentation] ${packageName} :The data type is string! + ${headers} create dictionary Content-Type=application/json + create session microservices ${engineHost} ${headers} + ${deleteUrl} set variable ${engineUrl}/${packageName} + ${deleteResponse} delete request microservices ${deleteUrl} + log ${deleteResponse.content} + run keyword if ${codeFlag}==1 Should be equal as strings ${deleteResponse.status_code} 200 + run keyword if ${codeFlag}!=1 Should be equal as strings ${deleteResponse.status_code} 499 + [Return] ${deleteResponse} + +verifyEngineRule + [Arguments] ${checkContent} ${codeFlag}=1 + ${response} httpPost ${engineHost} ${engineUrl} ${checkContent} + log ${response.content} + run keyword if ${codeFlag}==1 Should be equal as strings ${response.status_code} 200 + run keyword if ${codeFlag}!=1 Should be equal as strings ${response.status_code} 499 + [Return] ${response} + +deployEngineRule + [Arguments] ${jsonParams} ${codeFlag}=1 + ${response} httpPut ${engineHost} ${engineUrl} ${jsonParams} + log ${response.content} + run keyword if ${codeFlag}==1 Should be equal as strings ${response.status_code} 200 + run keyword if ${codeFlag}!=1 Should be equal as strings ${response.status_code} 499 + [Return] ${response} diff --git a/test/csit/tests/holmes/testcase/EngineMgt/Engine-Mgt.robot b/test/csit/tests/holmes/testcase/EngineMgt/Engine-Mgt.robot new file mode 100644 index 000000000..52c6822fc --- /dev/null +++ b/test/csit/tests/holmes/testcase/EngineMgt/Engine-Mgt.robot @@ -0,0 +1,41 @@ +*** Settings *** +Suite Setup +Suite Teardown Delete All Sessions +Test Teardown +Test Timeout +Library demjson +Resource Engine-Keywords.robot +Resource ../RuleMgt/Rule-Keywords.robot + +*** Test Cases *** +verify_invalid_rule + [Documentation] Verify a rule with invalid contents. + ${dic1} create dictionary content=123123123 + ${Jsonparam} encode ${dic1} + verifyEngineRule ${Jsonparam} -1 + +verify_valid_rule + [Documentation] Verify a rule with valid contents. + ${dic2} create dictionary content=package rule03080001 + ${Jsonparam} encode ${dic2} + verifyEngineRule ${Jsonparam} + +deploy_invalid_rule + [Documentation] Add a rule with invalid contents to the engine. + ${dic3} create dictionary content=789789789 engineid="" + ${Jsonparam} encode ${dic3} + ${response} deployEngineRule ${Jsonparam} -1 + +deploy_valid_rule + [Documentation] Add a rule with valid contents to the engine. + ${dic4} create dictionary content=package rule03080002 engineid="" + ${Jsonparam} encode ${dic4} + ${response} deployEngineRule ${Jsonparam} + +delete_existing_rule + [Documentation] Delete an existing rule using an existing package ID from the engine. + deleteEngineRule rule03080002 + +delete_non_existing_rule + [Documentation] Delete an existing rule using a non-existing package ID from the engine. + deleteEngineRule rule03080002 -1 diff --git a/test/csit/tests/holmes/testcase/EngineMgt/EngineAddr.robot b/test/csit/tests/holmes/testcase/EngineMgt/EngineAddr.robot new file mode 100644 index 000000000..0ff3e6d82 --- /dev/null +++ b/test/csit/tests/holmes/testcase/EngineMgt/EngineAddr.robot @@ -0,0 +1,3 @@ +*** Variables *** +${engineHost} http://${MSB_IP} +${engineUrl} /openoapi/holmes-engine-mgmt/v1/rule diff --git a/test/csit/tests/holmes/testcase/EngineMgt/__init__.txt b/test/csit/tests/holmes/testcase/EngineMgt/__init__.txt new file mode 100644 index 000000000..a69b32dc5 --- /dev/null +++ b/test/csit/tests/holmes/testcase/EngineMgt/__init__.txt @@ -0,0 +1,2 @@ +*** Settings *** +Suite Setup diff --git a/test/csit/tests/holmes/testcase/RuleMgt/Rule-Keywords.robot b/test/csit/tests/holmes/testcase/RuleMgt/Rule-Keywords.robot new file mode 100644 index 000000000..b2039174d --- /dev/null +++ b/test/csit/tests/holmes/testcase/RuleMgt/Rule-Keywords.robot @@ -0,0 +1,81 @@ +*** Settings *** +Library RequestsLibrary +Library Collections +Resource RuleAddr.robot +Resource ../CommonKeywords/HttpRequest.robot + +*** Keywords *** +prepareRules + ${rule1} create dictionary rulename=ying001 content=package rule0001 enabled=1 description=this is first description + ${rule2} create dictionary rulename=ying002 content=package rule0002 enabled=0 description=this is seconddescription + ${rule3} create dictionary rulename=ying003 content=package rule0003 enabled=1 description=this is third description + @{rulesList} create list ${rule1} ${rule2} ${rule3} + : FOR ${row} IN @{rulesList} + \ ${rulejson} encode ${row} + \ log ${rulejson} + \ createRule ${rulejson} + +ruleMgtSuiteVariable + ${RULEDIC} create dictionary rulename=gy2017001 description=create a new rule! content=package rule2017001 enabled=1 + set suite variable ${RULEDIC} + +queryConditionRule + [Arguments] ${queryParam} ${codeFlag}=1 + [Documentation] ${queryParam} : The data type is Json . + create session microservices ${ruleMgtHost} + ${param} set variable queryrequest\=${queryParam} + ${headers} set variable + ${getResponse} get request microservices ${ruleMgtUrl} ${headers} ${param} + log ${getResponse.content} + run keyword if ${codeFlag}==1 Should be equal as strings ${getResponse.status_code} 200 + run keyword if ${codeFlag}!=1 Should be equal as strings ${getResponse.status_code} 499 + [Return] ${getResponse} + +traversalRuleAttribute + [Arguments] ${responseJsonData} ${expectAttrDic} + [Documentation] ${expectAttrDic} : The data type is dictionary; + ... key is the name of the attribute, value is the expected value of the attribute. + @{responseRules} Get From Dictionary ${responseJsonData} rules + : FOR ${rule} IN @{responseRules} + \ log ${rule} + \ verifyRuleAttribute ${rule} ${expectAttrDic} + +verifyRuleAttribute + [Arguments] ${singleRule} ${expectAttrDic} + [Documentation] ${expectAttrDic} : The data type is dictionary; key is the name of the attributes to be traversaled, value is the expected value of the attributes. + log ${singleRule} + log ${expectAttrDic} + @{attrsKeys} get dictionary keys ${expectAttrDic} + : FOR ${attr} IN @{attrsKeys} + \ log ${attr} + \ ${actualResponse} get from dictionary ${singleRule} ${attr} + \ ${expectResponse} get from dictionary ${expectAttrDic} ${attr} + \ Comment log ${actualResponse} + \ Comment log ${expectResponse} + Should be equal as strings ${actualResponse} ${expectResponse} + +createRule + [Arguments] ${jsonParams} ${codeFlag}=1 + [Documentation] ${codeFlag} : The data type is string, defult value is 1, indicating that the case need to assert thatthe statues code is 200. + ... Then other values indicating that the case need to assert that the statues code is 499. + ${response} httpPut ${ruleMgtHost} ${ruleMgtUrl} ${jsonParams} + log ${response.content} + run keyword if ${codeFlag}==1 Should be equal as strings ${response.status_code} 200 + run keyword if ${codeFlag}!=1 Should be equal as strings ${response.status_code} 499 + [Return] ${response} + +modifyRule + [Arguments] ${jsonParams} ${codeFlag}=1 + ${response} httpPost ${ruleMgtHost} ${ruleMgtUrl} ${jsonParams} + log ${response.content} + run keyword if ${codeFlag}==1 Should be equal as strings ${response.status_code} 200 + run keyword if ${codeFlag}!=1 Should be equal as strings ${response.status_code} 499 + [Return] ${response} + +deleteRule + [Arguments] ${jsonParam} ${codeFlag}=1 + ${response} httpDelete ${ruleMgtHost} ${ruleMgtUrl} ${jsonParam} + log ${response.content} + run keyword if ${codeFlag}==1 Should be equal as strings ${response.status_code} 200 + run keyword if ${codeFlag}!=1 Should be equal as strings ${response.status_code} 499 + [Return] ${response} diff --git a/test/csit/tests/holmes/testcase/RuleMgt/Rule-Mgt.robot b/test/csit/tests/holmes/testcase/RuleMgt/Rule-Mgt.robot new file mode 100644 index 000000000..03ee70849 --- /dev/null +++ b/test/csit/tests/holmes/testcase/RuleMgt/Rule-Mgt.robot @@ -0,0 +1,127 @@ +*** Settings *** +Suite Setup +Suite Teardown Delete All Sessions +Test Timeout +Library demjson +Resource Rule-Keywords.robot + +*** Test Cases *** +add_valid_rule + [Documentation] Add a valid rule. + ${dict2} create dictionary rulename=youbowu0314 description=create a new rule! content=package rule03140002 enabled=1 + ${jsonParams} encode ${dict2} + ${response} createRule ${jsonParams} + ${respJson} to json ${response.content} + ${RULEID} get from dictionary ${respJson} ruleid + set global variable ${RULEID} + log ${RULEID} + +add_invalid_content_rule + [Documentation] Add an invalid rule of which the content is incorrect!! + ${dict1} create dictionary rulename=gy0307001 description=create a new rule! content=123123123 enabled=1 + ${jsonParams} encode ${dict1} + ${response} createRule ${jsonParams} -1 + log ${response.content} + +add_deficient_rule + [Documentation] Add an invalid rule of which some mandatory fields are missing.(rulename) + ${dict3} create dictionary description=create a valid rule! content=package rule2017 enabled=1 + ${jsonParams} encode ${dict3} + ${response} createRule ${jsonParams} -1 + +query_rule_with_existing_id + [Documentation] Query a rule with an existing ID. + should not be empty ${RULEID} + ${response} queryConditionRule {"ruleid":"${RULEID}"} + ${respJson} to json ${response.content} + ${count} get from dictionary ${respJson} totalcount + run keyword if ${count}!=1 fail Can't find the rule with the specified ruleid. + +query_rule_with_non_existing_id + [Documentation] Query a rule with a non-existing ID. + ${response} queryConditionRule {"ruleid":"invalidid"} + ${respJson} to json ${response.content} + ${count} get from dictionary ${respJson} totalcount + run keyword if ${count}!=0 fail + +query_rule_with_partial_existing_name + [Documentation] Query rules with (a part of) an existing name. + ${response} queryConditionRule {"rulename":"youbowu"} + ${respJson} to json ${response.content} + ${count} get from dictionary ${respJson} totalcount + run keyword if ${count}<1 fail Can't find the rule with (a part of) an existing name + +query_rule_with_partial_non_existing_name + [Documentation] Query rules with (a part of) a non-existing name. + ${response} queryConditionRule {"rulename":"zte2017"} + ${respJson} to json ${response.content} + ${count} get from dictionary ${respJson} totalcount + run keyword if ${count}!=0 fail + +query_rule_with_vaild_status + [Documentation] Query rules with a valid status. + ${response} queryConditionRule {"enabled":1} + ${respJson} to json ${response.content} + ${count} get from dictionary ${respJson} totalcount + run keyword if ${count}<0 fail Can't find the rule with the status valued 1. + +query_rule_with_invalid_status + [Documentation] Query rules with an invalid status. + ${response} queryConditionRule {"enabled":99} + ${respJson} to json ${response.content} + ${count} get from dictionary ${respJson} totalcount + run keyword if ${count}!=0 fail + +query_rule_with_empty_status + [Documentation] Query rules with the status left empty. + ${response} queryConditionRule {"enabled":""} + ${respJson} to json ${response.content} + ${count} get from dictionary ${respJson} totalcount + run keyword if ${count}!=0 fail + +query_rule_with_combinational_fields + [Documentation] Query rules using the combination of different fields. + ${dic} create dictionary rulename=youbowu0314 enabled=1 + ${paramJson} encode ${dic} + ${response} queryConditionRule ${paramJson} + ${respJson} to json ${response.content} + ${count} get from dictionary ${respJson} totalcount + run keyword if ${count}<1 fail Can't find the rules with the combination of different fields. + ... ELSE traversalRuleAttribute ${respJson} ${dic} + +modify_rule_with_status + [Documentation] modify the rule with a valid status. + ${dic} create dictionary ruleid=${RULEID} enabled=0 content=package rule03140002 + ${modifyParam} encode ${dic} + ${modifyResp} modifyRule ${modifyParam} + ${response} queryConditionRule {"ruleid":"${RULEID}"} + ${respJson} to json ${response.content} + ${count} get from dictionary ${respJson} totalcount + run keyword if ${count}!=1 fail query rule fails! (can't find the rule modified!) + ... ELSE traversalRuleAttribute ${respJson} ${dic} + +modify_rule_with_invalid_status + [Documentation] modify the rule with an invalid status. + ${dic} create dictionary ruleid=${RULEID} enabled=88 content=package rule03140002 + ${modifyParam} encode ${dic} + ${modifyResponse} modifyRule ${modifyParam} -1 + +modify_rule_with_description + [Documentation] modify the description of the rule with the new string. + ${dic} create dictionary ruleid=${RULEID} description=now, i modifying the description of the rule. content=package rule03140002 + ${modifyParam} encode ${dic} + ${modifyResp} modifyRule ${modifyParam} + ${response} queryConditionRule {"ruleid":"${RULEID}"} 1 + ${respJson} to json ${response.content} + ${count} get from dictionary ${respJson} totalcount + run keyword if ${count}!=1 fail query rule fails! + ... ELSE traversalRuleAttribute ${respJson} ${dic} + +delete_existing_rule + [Documentation] Delete an existing rule. + should not be empty ${RULEID} + deleteRule {"ruleid":"${RULEID}"} + +delete_non_existing_rule + [Documentation] Delete a non-existing rule. + deleteRule {"ruleid":"${RULEID}"} -1 diff --git a/test/csit/tests/holmes/testcase/RuleMgt/RuleAddr.robot b/test/csit/tests/holmes/testcase/RuleMgt/RuleAddr.robot new file mode 100644 index 000000000..a9cf66c60 --- /dev/null +++ b/test/csit/tests/holmes/testcase/RuleMgt/RuleAddr.robot @@ -0,0 +1,3 @@ +*** Variables *** +${ruleMgtHost} http://${MSB_IP} +${ruleMgtUrl} /openoapi/holmes-rule-mgmt/v1/rule diff --git a/test/csit/tests/holmes/testcase/RuleMgt/__init__.txt b/test/csit/tests/holmes/testcase/RuleMgt/__init__.txt new file mode 100644 index 000000000..e69de29bb --- /dev/null +++ b/test/csit/tests/holmes/testcase/RuleMgt/__init__.txt |