diff --git a/scripts/run_test.sh b/scripts/run_test.sh
new file mode 100644
index 0000000..483f583
--- /dev/null
+++ b/scripts/run_test.sh
@@ -0,0 +1,127 @@
+FUEL_MASTER_IP=$1
+FUEL_MASTER_PASSWD=$2
+EXTERNAL_IP=$3
+KEY_FILE_NAME=$4
+
+if [ ! -z $5 ]
+then
+    FILE_TO_TEST=$5
+else
+    FILE_TO_TEST="bbb.txt"
+fi
+
+if [ ! -z $6 ]
+then
+    FILE_TO_STORE_RESULTS=$6
+else
+    FILE_TO_STORE_RESULTS="aaa.txt"
+fi
+
+if [ ! -z $7 ]
+then
+    TIMEOUT=$7
+else
+    TIMEOUT=60
+fi
+
+
+echo "Fuel master IP: $FUEL_MASTER_IP"
+echo "Fuel master password: $FUEL_MASTER_PASSWD"
+echo "External IP: $EXTERNAL_IP"
+echo "Key file name: $KEY_FILE_NAME"
+
+# note : function will works properly only when image dame is single string without spaces that can brake awk
+function wait_image_active() {
+	image_state="none"
+	image_name=$IMAGE_NAME
+    counter=0
+
+	while [ $image_state != "active" ] ; do
+		sleep 1
+		image_state=$(glance image-list | grep $image_name | awk '{print $12}')
+		echo $image_state
+		counter=$((counter + 1))
+
+		if [ $counter -eq $TIMEOUT ]
+        then
+            echo "Time limit exceed"
+            break
+        fi
+	done
+}
+
+
+function wait_floating_ip() {
+    sleep 10
+	floating_ip="|"
+	vm_name=$VM_NAME
+    counter=0
+
+	while [ $floating_ip != "|" ] ; do
+		sleep 1
+		floating_ip=$(nova floating-ip-list | grep $vm_name | awk '{print $13}' | head -1)
+		counter=$((counter + 1))
+
+		if [ $counter -eq $TIMEOUT ]
+        then
+            echo "Time limit exceed"
+            break
+        fi
+	done
+}
+
+
+function wait_vm_deleted() {
+	vm_name=$(nova list| grep $VM_NAME| awk '{print $4}'| head -1)
+    counter=0
+
+	while [ ! -z $vm_name ] ; do
+		sleep 1
+		vm_name=$(nova list| grep $VM_NAME| awk '{print $4}'| head -1)
+		counter=$((counter + 1))
+
+		if [ $counter -eq $TIMEOUT ]
+        then
+            echo "Time limit exceed"
+            break
+        fi
+	done
+}
+
+source run_vm.sh $FUEL_MASTER_IP $FUEL_MASTER_PASSWD $EXTERNAL_IP
+source `get_openrc`
+list=$(nova list)
+if [ "$list" == "" ]; then
+    echo "openrc variables are unset or set to the empty string"
+fi
+
+IP=$(nova floating-ip-list | grep $FLOATING_NET | awk '{if ($5 == "-") print $2}' | head -n1)
+
+if [ -z $IP ]; then
+    IP=$(nova floating-ip-create net04_ext| awk '{print $2}')
+
+    if [ -z $list ]; then
+        echo "Cannot allocate new floating ip"
+    fi
+fi
+
+VM_IP=$IP
+echo "VM IP: $VM_IP"
+
+# sends images to glance
+bash prepare.sh
+wait_image_active
+echo "Image has been saved"
+VOL_ID=$(boot_vm)
+echo "VM has been booted"
+wait_floating_ip
+echo "Floating IP has been obtained"
+source `prepare_vm`
+echo "VM has been prepared"
+ssh -i $KEY_FILE_NAME ubuntu@$VM_IP \
+    "cd /tmp/io_scenario; sudo bash ../single_node_test_short.sh $FILE_TO_TEST $FILE_TO_STORE_RESULTS"
+nova delete $VM_NAME
+wait_vm_deleted
+echo "$VM_NAME has been deleted successfully"
+cinder delete $VOL_ID
+echo "Volume has been deleted $VOL_ID"
