diff options
| author | zhangchengwei <[email protected]> | 2024-04-11 19:56:37 +0800 |
|---|---|---|
| committer | zhangchengwei <[email protected]> | 2024-04-11 19:56:37 +0800 |
| commit | c1bf11fb48f38bba3567d1ff1208813a74cbb9e4 (patch) | |
| tree | a2d3dc69c3b6ca57f4e49a434d26d5f20c29191b | |
| parent | 97cba73980177259f39c8d2812c41d78df5ebb69 (diff) | |
1.调整statistic关于active session取值优化
| -rw-r--r-- | createProfile.py | 2 | ||||
| -rw-r--r-- | getLog.py | 40 |
2 files changed, 29 insertions, 13 deletions
diff --git a/createProfile.py b/createProfile.py index a95b452..ff818e5 100644 --- a/createProfile.py +++ b/createProfile.py @@ -228,7 +228,7 @@ class CreateProfile(): response = requests.post(url, headers=headers, json=process_post_data, verify=False) response_dict = response.json() # 处理返回数据,提取id - time.sleep(2) + #time.sleep(2) #print(response_dict) profile_id = response_dict["data"]["id"] create_profile_id_dict["profile_type"] = profile_type @@ -217,7 +217,7 @@ class GetLog(): #print(result_list) statistics_value = 0 if statistics_info["chart_type"] == "line" or statistics_info["chart_type"] == "table" or statistics_info["chart_type"] == "bar": - print(f'{statistics_info["chart_type"]}断言对比...') + print(f'{statistics_info["chart_type"]}>>断言对比...') print(statistics_info) statistics_value = copy.deepcopy(result_list[0]) # 将列表中metric值设置为0 @@ -225,17 +225,33 @@ class GetLog(): if isinstance(v, int): statistics_value[k] = 0 # 遍历result结果,将metric值累加并存储到statistics_value;因为流量单一,只能统计第一个计算值 + print(result_list) + tmp_list_1 = [] # 下面for..提取值使用 for result_index in range(len(result_list)): - for k, v in result_list[result_index].items(): + if "session_identifier_sketch" in result_list[0].keys(): # session_identifier_sketch 需要单独处理 + for k, v in result_list[result_index].items(): + if isinstance(v, int): + if v != 0: + tmp_list_1.append(v) # 将不等于0的数值添加到列表中,为了计算平均数 + else: # 其它的取值方式 + 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(): + break + if "session_identifier_sketch" in result_list[0].keys(): # session_identifier_sketch 需要单独处理 + sum_1 = 0 + for i in range(1, len(tmp_list_1) - 1): # 去掉首位两个数计算平均数 + sum_1 += tmp_list_1[i] + avg_1 = sum_1 / (len(tmp_list_1) - 2) + for k, v in result_list[0].items(): # 取得session_indentifier_sketch的值 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(): - break + statistics_value[k] = avg_1 print("TSG实际查询到的结果数据:\n{}".format(statistics_value)) # 重组需要断言使用的key列表 assert_key_list = [] for k, v in statistics_value.items(): - if isinstance(v, int): + if isinstance(v, int) or isinstance(v, float): assert_key_list.append(k) # 开始判断key的正确性 for i in range(len(assert_key_list)): @@ -260,15 +276,15 @@ class GetLog(): if chart_type == "line": print(f"流量回放预期结果总数:\n{statistics_metircs_except}") failure_info_1 = f"Total expected results for traffic playback:{statistics_metircs_except}" - statistics_metircs_except_avg = {} # 重组预期15秒粒度结果 + statistics_metircs_except_avg = {} # 重组预期1秒粒度结果 for k, v in statistics_metircs_except.items(): if "bytes" in k: - statistics_metircs_except_avg[k] = int((v) / 15) # 统计平均字节数 + statistics_metircs_except_avg[k] = int((v) / 1) # 统计平均字节数 else: - statistics_metircs_except_avg[k] = int(v / 15) + statistics_metircs_except_avg[k] = int(v / 1) if assert_key != "session_identifier_sketch" and assert_key != "client_ip_sketch" and assert_key != "server_ip_sketch": # 除了这几个gauge,需要打印下信息 - print(f"流量回放结果按15秒粒度平均数:\n{statistics_metircs_except_avg}") - failure_info_2 = f"Average number of traffic playback results by 15-second granularity:{statistics_metircs_except_avg}" + print(f"流量回放结果按1秒粒度平均数:\n{statistics_metircs_except_avg}") + failure_info_2 = f"Average number of traffic playback results by 1-second granularity:{statistics_metircs_except_avg}" print(assert_key) if assert_key == "bytes": if statistics_value[assert_key] > (statistics_metircs_except_avg["total_bytes"] - 10): # 预期值减10,因为出现多个时间周期统计的结果实际值减小 @@ -306,7 +322,7 @@ class GetLog(): unique_server_ips = sessions_count statistics_metircs_except_gauge["client_ip_sketch"] = unique_client_ips statistics_metircs_except_gauge["server_ip_sketch"] = unique_server_ips - print(f"流量回放结果按15秒粒度的Gauge:\n{statistics_metircs_except_gauge}") + print(f"流量回放结果按1秒粒度的Gauge:\n{statistics_metircs_except_gauge}") if -3 < statistics_value[assert_key] - statistics_metircs_except_gauge[assert_key] < 3: print("<<<<<<<<<<statistics 结果正常>>>>>>>>>>") metric_result = True |
