diff options
| author | yang liu <[email protected]> | 2024-03-29 17:52:53 +0800 |
|---|---|---|
| committer | yang liu <[email protected]> | 2024-03-29 17:52:53 +0800 |
| commit | cbad385a35425ea61173ffe8a1dae89d8545d160 (patch) | |
| tree | 18352711d6c2dfa358c580b9845247b6a1d5e8c2 | |
| parent | 12dde021c69c3baec9b7dcd24586acc34323117b (diff) | |
| parent | a792d6e7898926b57c900816fa5834afd18a26bf (diff) | |
Merge branch 'develop' of https://git.mesalab.cn/zhaokun/tsg_policy_api into develop
6 files changed, 83 insertions, 19 deletions
diff --git a/createObject.py b/createObject.py index b484707..62c9c41 100644 --- a/createObject.py +++ b/createObject.py @@ -217,6 +217,7 @@ class CreateObject(): response = requests.post(url, data=data, headers=headers, files= files) print('已经请求了1次了') print('本次请求返回的code号是'+ str(response.status_code)) + time.sleep(20) time2 = datetime.utcnow() time_difference = time2 - time1 seconds_difference = time_difference.total_seconds() @@ -271,6 +272,7 @@ class CreateObject(): # 从返回数据中获取object_type,方便后续判断将id添加到哪个全局变量里边 if is_repeat == 1: print(response_dict) + time.sleep(20) obj_type = response_dict['data']['object']['type'] object_ids = self.get_object_ids(response_dict) # 为了每次清空需要反复创建的object的组合使用,否则会反复删除已经存在的object diff --git a/createProfile.py b/createProfile.py index e1efd1c..bf0d4ff 100644 --- a/createProfile.py +++ b/createProfile.py @@ -46,7 +46,7 @@ class CreateProfile(): metrics_dict["source_columns"][0] = post_statistics_data["chart_list"][chart_idex]["metrics"][metric_index]["source_columns"] metrics_dict["function"]["name"] = post_statistics_data["chart_list"][chart_idex]["metrics"][metric_index]["function"] metrics_dict["alias"] = post_statistics_data["chart_list"][chart_idex]["metrics"][metric_index]["source_columns"].title() - metrics_dict["alias"] = "".join(metrics_dict["alias"].split("_")) # 取消中间空格 + metrics_dict["alias"] = " ".join(metrics_dict["alias"].split("_")) # 将_连接改为空格连接 # 根据metric和function判断unit是什么 metrics = metrics_dict["source_columns"][0] fun_name = metrics_dict["function"]["name"] @@ -95,7 +95,7 @@ class CreateProfile(): dimensions_dict["alias"] = "Time" else: dimensions_dict["alias"] = dimensions_dict["source_columns"][0].lower() - dimensions_dict["alias"] = "".join(dimensions_dict["alias"].split("_")) # 取消中间空格 + dimensions_dict["alias"] = " ".join(dimensions_dict["alias"].split("_")) # 将_连接改为空格连接 f_template_dict["statistics_template"]["dataview"]["charts"][chart_idex]["query"]["dimensions"].append(copy.deepcopy(dimensions_dict)) chart_after_name = dimensions_dict["source_columns"][0] + " " # 重组order by diff --git a/data/case_data/signature/security_deny_default_siguature_ssl_handshake_certificate_issuer_common_name.json b/data/case_data/signature/security_deny_default_siguature_ssl_handshake_certificate_issuer_common_name.json new file mode 100644 index 0000000..29bef17 --- /dev/null +++ b/data/case_data/signature/security_deny_default_siguature_ssl_handshake_certificate_issuer_common_name.json @@ -0,0 +1,31 @@ +{ + "isMultiPriority": false, + "ruleNum": 1, + "policyType": "security", + "rule_action_1": "deny", + "method_1": "default", + "do_log_1": 2, + "send_tcp_reset_1": 1, + "obj_condition_1": [ + { + "attribute_name": "ATTR_SOURCE_IP", + "objectType": "ip", + "objectSubType": "ip", + "objectList": [ + { + "addItemList": [ + { + "ip_address": "default", + "port_range": "0-65535" + } + ] + } + ] + } + ], + "app_name_1": ["ssl_handshake_certificate_issuer_common_name"], + "hope_return": "timed out", + "counters_1": {"hits": 1}, + "log_query_param_1": [], + "command": "curl --connect-timeout 5 -m 5 -kv https://froala.com/wysiwyg-editor/" +}
\ No newline at end of file diff --git a/data/case_data/signature/security_deny_default_siguature_ssl_handshake_certificate_issuer_organization_name.json b/data/case_data/signature/security_deny_default_siguature_ssl_handshake_certificate_issuer_organization_name.json new file mode 100644 index 0000000..e49d507 --- /dev/null +++ b/data/case_data/signature/security_deny_default_siguature_ssl_handshake_certificate_issuer_organization_name.json @@ -0,0 +1,31 @@ +{ + "isMultiPriority": false, + "ruleNum": 1, + "policyType": "security", + "rule_action_1": "deny", + "method_1": "default", + "do_log_1": 2, + "send_tcp_reset_1": 1, + "obj_condition_1": [ + { + "attribute_name": "ATTR_SOURCE_IP", + "objectType": "ip", + "objectSubType": "ip", + "objectList": [ + { + "addItemList": [ + { + "ip_address": "default", + "port_range": "0-65535" + } + ] + } + ] + } + ], + "app_name_1": ["ssl_handshake_certificate_issuer_organization_name"], + "hope_return": "timed out", + "counters_1": {"hits": 1}, + "log_query_param_1": [], + "command": "curl --connect-timeout 5 -m 5 -kv https://www.bilibili.com/" +}
\ No newline at end of file diff --git a/data/case_data/statistics_rule/statistics_latency.json b/data/case_data/statistics_rule/statistics_latency.json index 3321052..a11c916 100644 --- a/data/case_data/statistics_rule/statistics_latency.json +++ b/data/case_data/statistics_rule/statistics_latency.json @@ -5,8 +5,8 @@ "rule_action_1": "statistics", "do_log_1": 2, "trex": { - "m": 1, - "d": 1, + "m": 10, + "d": 60, "yaml_name": "http_50.yaml", "pcap_name": "http_get_347pkts.pcap" }, @@ -56,19 +56,13 @@ } ], "dimensions": [ - { - "source_columns": [ - "__time" - ], - "is_drilldown": 0 - } ], "order_by": null, "limit": 1000, "drilldown_limit": null, "threshold": { - "in_bytes": "10", - "out_bytes": "10" + "in_bytes": "0", + "out_bytes": "0" } } ] @@ -202,8 +202,13 @@ class GetLog(): result_list_source = r_dict["data"]["result"] #print(result_list_source) result_list = [] - for _ in copy.deepcopy(result_list_source): # 将key转成小写 - result_list.append({k.lower():v for k, v in _.items()}) + for _ in copy.deepcopy(result_list_source): # 将key转成小写, ***且将key中空格替换为下划线**** + #result_list.append({k.lower():v for k, v in _.items()}) + tmp_dict = {} + for k, v in _.items(): + k_0 = "_".join(k.lower().split()) # 将key变为小写且使用下划线连接 + tmp_dict[k_0] = v + result_list.append(tmp_dict) #print(result_list) statistics_value = 0 if statistics_info["chart_type"] == "line" or statistics_info["chart_type"] == "table" or statistics_info["chart_type"] == "bar": @@ -214,12 +219,12 @@ class GetLog(): for k, v in statistics_value.items(): if isinstance(v, int): statistics_value[k] = 0 - # 遍历result结果,将metric值累加并存储到statistics_value + # 遍历result结果,将metric值累加并存储到statistics_value;因为流量单一,只能统计第一个计算值 for result_index in range(len(result_list)): for k, v in result_list[result_index].items(): if isinstance(v, int): statistics_value[k] += v - if "Client IP Matched Objects".lower() in result_list[0].keys() or "Server IP Matched Objects".lower() in result_list[0].keys() or "websketch categories".lower() in result_list[0].keys(): + if "client_ip_matched_objects".lower() in result_list[0].keys() or "server_ip_matched_objects".lower() in result_list[0].keys() or "websketch_categories".lower() in result_list[0].keys(): break print("TSG实际查询到的结果数据:\n{}".format(statistics_value)) # 重组需要断言使用的key列表 @@ -236,7 +241,7 @@ class GetLog(): break elif statistics_info["chart_type"] == "histogram": print("histogram图表暂不统计结果") - pass + metric_results = [True, ""] return metric_results def assert_livechart_statistics(self, chart_type, assert_key, statistics_value, statistics_metircs_except, trex_ip_info): @@ -304,7 +309,7 @@ class GetLog(): print(f"遗漏断言的key:{assert_key}") metric_result = False elif chart_type == "histogram": - pass + metric_result = True else: # table bar等二维图表 print(f"流量回放结果总数:\n{statistics_metircs_except}") failure_info_1 = f"Total expected results for traffic playback:{statistics_metircs_except}" @@ -335,7 +340,8 @@ class GetLog(): metric_result = False if metric_result == False: print(failure_reason) - failure_reason_info = "{}{}{}".format(failure_info_1, failure_info_2, failure_info_3) + actual_result = "Total actual results:{statistics_value}" + failure_reason_info = "{}{}{}.{}".format(failure_info_1, failure_info_2, failure_info_3, actual_result) return metric_result, failure_reason_info def get_sc_metric(self, token, start_time, end_time, sc_info, sc_expected_metric, active_dest_ips_list, host_api,vsys_id): |
