5
5
from ydb .tests .olap .lib .allure_utils import allure_test_description
6
6
from ydb .tests .olap .lib .results_processor import ResultsProcessor
7
7
from time import time
8
+ from allure_commons ._core import plugin_manager
9
+ from allure_pytest .listener import AllureListener
8
10
9
11
10
12
class LoadSuiteBase :
@@ -29,6 +31,12 @@ def _get_duraton(stats, field):
29
31
30
32
test = f'Query{ query_num :02d} '
31
33
allure_test_description (self .suite , test , refference_set = self .refference )
34
+ allure_listener = next (filter (lambda x : isinstance (x , AllureListener ), plugin_manager .get_plugin_manager ().get_plugins ()))
35
+ allure_test_result = allure_listener .allure_logger .get_test (None )
36
+ query_num_param = next (filter (lambda x : x .name == 'query_num' , allure_test_result .parameters ), None )
37
+ if query_num_param :
38
+ query_num_param .mode = allure .parameter_mode .HIDDEN .value
39
+
32
40
result = YdbCliHelper .workload_run (
33
41
path = path , query_num = query_num , iterations = self .iterations , type = self .workload_type , timeout = self .timeout
34
42
)
@@ -63,9 +71,11 @@ def _get_duraton(stats, field):
63
71
64
72
if result .stderr is not None :
65
73
allure .attach (result .stderr , 'Stderr' , attachment_type = allure .attachment_type .TEXT )
66
- for p in ['Min' , 'Max' , ' Mean' , 'Median ' ]:
74
+ for p in ['Mean' ]:
67
75
if p in stats :
68
- allure .dynamic .parameter (p , f'{ int (stats [p ])} ms' )
76
+ value = int (stats [p ])
77
+ s = f'{ int (value / 1000 )} s ' if value >= 1000 else ''
78
+ allure .dynamic .parameter (p , f'{ s } { value % 1000 } ms' )
69
79
error_message = ''
70
80
success = True
71
81
if not result .success :
0 commit comments