DjangoRESTFrameworkのCurlテストをシェルスクリプトでコマンド一発で終わらせる方法


(この記事は自分のブログの転載になります)
DjangoRESTFrameworkのCurlテストをシェルスクリプトでコマンド一発で終わらせる方法 - まわ

DjangoRESTFrameworkでWebAPIが段々増えてくると、curlテストが面倒になってきませんか?? それをシェルスクリプトで一気にやってしまおうというと思い下記のようなシェルスクリプト運用をしてみて、便利だったので誰かの役に立つかもしれないのでお伝えします〜^^ (シェルスクリプト初チャレンジなので記載コードの要領が悪いかもしれませんが、そのあたりはすみません)

以下の要領でシェルスクリプトを作っておきます

curltest.shというファイル名にします

#!/bin/sh

BASEURL="http://127.0.0.1:8000"; #ローカルでDjangoのrunserverのurl
HEAD="Content-Type:application/json";
DIR=".";
SETDT=`date "+%Y%m%d%H%M"`
TITLE="curl_test"

echo "curl_test start\n" >> $DIR/$SETDT$TITLE.txt;
sleep 1;

#以下、テスト項目をエンドポイント別にAPIを作るごとにどんどん書いていく

#例
#get test
ENDPOINT="/api/hogefuga/list";
echo "curl_test endpoint:${ENDPOINT}" >> $DIR/$SETDT$TITLE.txt;
curl -X GET -H $HEAD ${BASEURL}${ENDPOINT} >> $DIR/$SETDT$TITLE.txt;
echo '<===リスト一覧がでていれば成功です!' >> $DIR/$SETDT$TITLE.txt;
echo "curl_test end\n" >> $DIR/$SETDT$TITLE.txt;


#PUT POSTでデータを付加する場合の例
DATA='{"email":"[email protected]","password":"HogeFUGa1111"}';
#curl のところに -d $DATA を追加でできます

できましたら、実行コマンドを打ちます


$chmod 755 curltest.sh

で、
$ ./curltest.sh

もしくは
$ sh curltest.sh

で、シェルスクリプトの配置ディレクトリにテスト結果のtxtファイルが日付つきで保存されます。

参考文献

初心者向けシェルスクリプトの基本コマンドの紹介