diff --git a/tests/src/params/report_params.hpp b/tests/src/params/report_params.hpp
new file mode 100644
index 0000000..908fb5d
--- /dev/null
+++ b/tests/src/params/report_params.hpp
@@ -0,0 +1,34 @@
+#pragma once
+
+#include <chrono>
+#include <string>
+
+class ReportParams final
+{
+  public:
+    ReportParams& reportName(std::string val)
+    {
+        reportNameProperty = std::move(val);
+        return *this;
+    }
+
+    const std::string& reportName() const
+    {
+        return reportNameProperty;
+    }
+
+    ReportParams& reportingType(std::string val)
+    {
+        reportingTypeProperty = std::move(val);
+        return *this;
+    }
+
+    const std::string& reportingType() const
+    {
+        return reportingTypeProperty;
+    }
+
+  protected:
+    std::string reportNameProperty = "TestReport";
+    std::string reportingTypeProperty = "OnRequest";
+};
\ No newline at end of file
