-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathTestResultStatsExample.java
More file actions
123 lines (110 loc) · 5.04 KB
/
TestResultStatsExample.java
File metadata and controls
123 lines (110 loc) · 5.04 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
package ai.rhesis.sdk.examples;
import ai.rhesis.sdk.RhesisClient;
import ai.rhesis.sdk.entities.TestRun;
import ai.rhesis.sdk.entities.stats.MetricStats;
import ai.rhesis.sdk.entities.stats.TestResultStats;
import ai.rhesis.sdk.entities.stats.TestRunSummary;
import ai.rhesis.sdk.entities.stats.TimelineData;
import ai.rhesis.sdk.enums.TestResultStatsMode;
import java.util.List;
import java.util.Map;
public class TestResultStatsExample {
public static void main(String[] args) {
RhesisClient client = RhesisClient.builder().apiKey(System.getenv("RHESIS_API_KEY")).build();
// --- Full test result stats ---
System.out.println("=== Test Result Stats (all) ===");
TestResultStats stats = client.testResults().stats();
if (stats.overallPassRates() != null) {
System.out.println("Total results: " + stats.overallPassRates().total());
System.out.println("Passed: " + stats.overallPassRates().passed());
System.out.println("Failed: " + stats.overallPassRates().failed());
System.out.println("Pass rate: " + stats.overallPassRates().passRate() + "%");
}
// --- Metric pass rates ---
if (stats.metricPassRates() != null) {
System.out.println("\n=== Metric Pass Rates ===");
for (Map.Entry<String, MetricStats> entry : stats.metricPassRates().entrySet()) {
MetricStats m = entry.getValue();
System.out.printf(
" %-20s total=%d passed=%d failed=%d rate=%.1f%%%n",
entry.getKey(), m.total(), m.passed(), m.failed(), m.passRate());
}
}
// --- Behavior breakdown ---
System.out.println("\n=== Behavior Pass Rates ===");
TestResultStats behaviorStats = client.testResults().stats(TestResultStatsMode.BEHAVIOR);
if (behaviorStats.behaviorPassRates() != null) {
for (Map.Entry<String, MetricStats> entry : behaviorStats.behaviorPassRates().entrySet()) {
System.out.printf(
" %-25s rate=%.1f%% (%d/%d)%n",
entry.getKey(),
entry.getValue().passRate(),
entry.getValue().passed(),
entry.getValue().total());
}
}
// --- Category breakdown ---
System.out.println("\n=== Category Pass Rates ===");
TestResultStats categoryStats = client.testResults().stats(TestResultStatsMode.CATEGORY);
if (categoryStats.categoryPassRates() != null) {
for (Map.Entry<String, MetricStats> entry : categoryStats.categoryPassRates().entrySet()) {
System.out.printf(" %-25s rate=%.1f%%%n", entry.getKey(), entry.getValue().passRate());
}
}
// --- Topic breakdown ---
System.out.println("\n=== Topic Pass Rates ===");
TestResultStats topicStats = client.testResults().stats(TestResultStatsMode.TOPIC);
if (topicStats.topicPassRates() != null) {
for (Map.Entry<String, MetricStats> entry : topicStats.topicPassRates().entrySet()) {
System.out.printf(" %-25s rate=%.1f%%%n", entry.getKey(), entry.getValue().passRate());
}
}
// --- Timeline ---
if (stats.timeline() != null) {
System.out.println("\n=== Timeline ===");
for (TimelineData point : stats.timeline()) {
System.out.printf(
" %s overall: %d/%d (%.1f%%)%n",
point.date(),
point.overall().passed(),
point.overall().total(),
point.overall().passRate());
}
}
// --- Per-run summary ---
if (stats.testRunSummary() != null) {
System.out.println("\n=== Per-Run Summary ===");
for (TestRunSummary run : stats.testRunSummary()) {
System.out.printf(
" [%s] %s — %d tests, rate=%.1f%%%n",
run.id(), run.name(), run.totalTests(), run.overall().passRate());
}
}
// --- Filtered by a specific test run ---
List<TestRun> runs = client.testRuns().list();
if (!runs.isEmpty()) {
System.out.println("\n=== Results for run: " + runs.get(0).name() + " ===");
TestResultStats runStats =
client
.testResults()
.stats(TestResultStatsMode.ALL, Map.of("test_run_ids", List.of(runs.get(0).id())));
if (runStats.overallPassRates() != null) {
System.out.println("Pass rate: " + runStats.overallPassRates().passRate() + "%");
}
if (runStats.metricPassRates() != null) {
System.out.println("Metrics evaluated: " + runStats.metricPassRates().size());
}
}
// --- Metadata ---
if (stats.metadata() != null) {
System.out.println("\n=== Metadata ===");
System.out.println("Period: " + stats.metadata().period());
System.out.println("Total runs: " + stats.metadata().totalTestRuns());
System.out.println("Total results: " + stats.metadata().totalTestResults());
System.out.println("Metrics: " + stats.metadata().availableMetrics());
System.out.println("Behaviors: " + stats.metadata().availableBehaviors());
System.out.println("Categories: " + stats.metadata().availableCategories());
System.out.println("Topics: " + stats.metadata().availableTopics());
}
}
}