diff --git a/tests/off_target_test.robot b/tests/off_target_test.robot
new file mode 100644
index 0000000..28d4991
--- /dev/null
+++ b/tests/off_target_test.robot
@@ -0,0 +1,46 @@
+# Copyright 2020-present Open Networking Foundation
+# Original copyright 2020-present ADTRAN, Inc.
+#
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+#     http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+
+*** Settings ***
+Documentation    Library test suite for the kafka_robot library. Due to a missing Kafka server offline test can be
+...    executed only.
+Library    OperatingSystem    WITH NAME    os
+Library    String
+
+*** Test Cases ***
+Library import
+    [Documentation]    Checks if the kafka_robot library can be imported.
+    Import Library    kafka_robot.KafkaClient    WITH NAME    kafka
+
+Library Version
+    [Documentation]    Determines the version of the installed package and compares it with the returned version of the
+    ...    corresponding keyword.
+    ${lib_version}    kafka.Library Version Get
+    ${pip show}    Run    python3 -m pip show kafka-robot | grep Version
+    ${pip show}    Split To Lines    ${pip show}
+    FOR    ${line}    IN    @{pip show}
+        ${is_version}    Evaluate    '${line}'.startswith('Version')
+        Continue For Loop If    not ${is_version}
+        ${pip_version}    Evaluate    '${line}'.split(':')[-1].strip()
+        Should Be Equal    ${pip_version}    ${lib_version}
+    END
+
+Keywords
+    [Documentation]    Checks if the keyword name exists in the library's keyword list.
+    Keyword Should Exist    kafka.Connection Close
+    Keyword Should Exist    kafka.Connection Open
+    Keyword Should Exist    kafka.Records Clear
+    Keyword Should Exist    kafka.Records Get
+    Keyword Should Exist    kafka.Subscribe
+    Keyword Should Exist    kafka.Unsubscribe
