little script to test performances of couchdb.
1 #!/bin/sh
2 myver='0.1'
3 CURL=$(which curl)
4
5 TMPFILE=$(mktemp /tmp/couchdb.XXXXXXXXXX) || exit 1
6 SERVER_URL="http://localhost:5984"
7 DB_TEST="couchdb_test"
8 DOCS=""
9 DOCS_MAX=100
10
11 if test $(which seq); then
12 docs_seq=$(seq ${DOCS_MAX})
13 elif test $(which jot); then
14 docs_seq=$(jot -s " " ${DOCS_MAX} 0 ${DOCS_MAX})
15 else
16 echo "CANCELED: can't create sequence..."
17 exit 0;
18 fi
19
20
21
22 # create db
23 resp=$(${CURL} --silent --request PUT ${SERVER_URL}/${DB_TEST}/)
24 if test "${resp}" = '{"ok":true}'; then
25 echo "Database ${DB_TEST} created"
26 else
27 echo "CANCELED : Error while creating database"
28 exit 0;
29 fi
30
31 # create docs
32 start=`date +%s`
33 for i in ${docs_seq}; do
34 resp=$(${CURL} --silent --data "{ \"type\":\"test\", \"name\": \"${i}\" }" --request POST --header "Content-Type: application/json" ${SERVER_URL}/${DB_TEST}/)
35 doc_id=`echo $resp | sed 's/.*"id"\:"\([^"]*\)".*/\1/'`
36 current=`date +%s`
37 DOCS="${DOCS} ${doc_id}"
38 end=`date +%s`
39 e=`expr ${end} - ${current}`
40 start=`expr ${start} + ${e}`
41 done
42 end=`date +%s`
43 t1=`expr ${end} - ${start}`
44
45 # fetch docs
46 start=`date +%s`
47 for doc_id in ${DOCS}; do
48 resp=$(${CURL} --silent --request GET --header "Content-Type: application/json" ${SERVER_URL}/${DB_TEST}/{$doc_id})
49 done
50 end=`date +%s`
51 t2=`expr ${end} - ${start}`
52
53 # delete docs
54 start=`date +%s`
55 for doc_id in ${DOCS}; do
56 # first get doc
57 current=`date +%s`
58 resp=$(${CURL} --silent --request GET --header "Content-Type: application/json" ${SERVER_URL}/${DB_TEST}/{$doc_id})
59 rev=`echo $resp | sed 's/.*"_rev"\:"\([^"]*\)".*/\1/'`
60 end=`date +%s`
61 e=`expr ${end} - ${current}`
62 start=`expr ${start} + ${e}`
63 resp=$(${CURL} --silent --request DELETE ${SERVER_URL}/${DB_TEST}/{$doc_id}?rev=${rev})
64 done
65 end=`date +%s`
66 t3=`expr ${end} - ${start}`
67
68 #delete db
69 resp=$(${CURL} --silent --request DELETE ${SERVER_URL}/${DB_TEST})
70
71 echo "Results :"
72 echo "--------------------------"
73 echo "${DOCS_MAX} docs created in ${t1}s"
74 echo "${DOCS_MAX} docs fetched in ${t2}s"
75 echo "${DOCS_MAX} docs deleted in ${t3}s"
Pages : 1