-
-
Save t2psyto/1c6ba7378596591a57e204983259ee09 to your computer and use it in GitHub Desktop.
@echo off | |
setlocal enabledelayedexpansion | |
echo ■■ パタン1: インターネット(yahoo) | |
set cwd1=%~dp0 | |
set cwd=%cwd1:~0,-1% | |
rem タイムスタンプ YYYYMMDD_hhmmss を取得 | |
set time2=%time: =0% | |
set time3=%time2::=% | |
set timestamp=%date:/=%_%time3:~0,6% | |
rem echo timestamp: %timestamp% | |
rem 接続先ログファイルのパス | |
set LOGDIR=%cwd%\web応答計測 | |
rem set LOGFILE=%cwd%\%timestamp%_%COMPUTERNAME%_webresponse.log | |
mkdir %LOGDIR% > nul 2>&1 | |
set LOGFILE=%LOGDIR%\%timestamp%_%COMPUTERNAME%_web応答テスト_Yahoo.log | |
rem 接続先URL | |
set URL=http://yahoo.co.jp | |
rem PROXY | |
set HTTP_PROXY= | |
set HTTPS_PROXY= | |
rem 試行回数 | |
set CYCLE=3 | |
echo ■ webサーバの応答速度を計測します。 | |
echo timestamp: %timestamp% | |
echo URL: %URL% | |
echo HTTP_PROXY: %HTTP_PROXY% | |
echo LOGFILE: %LOGFILE% | |
echo. | |
set CURL_RESULT_HEADER=timestamp, content_type, filename_effective, ftp_entry_path, http_code, http_connect, local_ip, local_port, num_connects, num_redirects, redirect_url, remote_ip, remote_port, size_download, size_header, size_request, size_upload, speed_download, speed_upload, ssl_verify_result, time_appconnect, time_connect, time_namelookup, time_pretransfer, time_redirect, time_starttransfer, time_total, url_effective | |
echo %CURL_RESULT_HEADER% >> %LOGFILE% | |
for /l %%i in (1, 1, %CYCLE%) do ( | |
echo □ 回数: %%i / %CYCLE% | |
rem @echo|set /p=%timestamp% >> %LOGFILE% | |
del /S /Q %TEMP%\tmpclip*.txt > nul 2>&1 | |
curl -m 3 %URL% -o NUL -SsfL -w "%%{content_type}, %%{filename_effective}, %%{ftp_entry_path}, %%{http_code}, %%{http_connect}, %%{local_ip}, %%{local_port}, %%{num_connects}, %%{num_redirects}, %%{redirect_url}, %%{remote_ip}, %%{remote_port}, %%{size_download}, %%{size_header}, %%{size_request}, %%{size_upload}, %%{speed_download}, %%{speed_upload}, %%{ssl_verify_result}, %%{time_appconnect}, %%{time_connect}, %%{time_namelookup}, %%{time_pretransfer}, %%{time_redirect}, %%{time_starttransfer}, %%{time_total}, %%{url_effective}" 2> %TEMP%\tmpcliperr.txt 1> %TEMP%\tmpclip.txt | |
rem curl のエラーメッセージを計測結果に結合 | |
if exist %TEMP%\tmpcliperr.txt ( | |
echo|set /p=, >> %TEMP%\tmpclip.txt | |
type %TEMP%\tmpcliperr.txt >> %TEMP%\tmpclip.txt | |
) | |
rem curl 計測結果を環境変数に格納 | |
for /f "usebackq delims=\\" %%i in (`type %TEMP%\tmpclip.txt`) do set CURL_RESULT=%timestamp%, %%i | |
del /S /Q %TEMP%\tmpclip*.txt > nul 2>&1 | |
echo %CURL_RESULT_HEADER% | |
echo !CURL_RESULT! | |
echo !CURL_RESULT! >> %LOGFILE% | |
echo. | |
timeout /T 5 > nul | |
) | |
echo. | |
echo. | |
echo ■ 計測が完了しました。 | |
echo. | |
echo. | |
echo. | |
echo. | |
rem pause | |
echo ■ 計測がすべて完了しました。終了します。 | |
timeout /T 5 /NOBREAK |
接続エラーの時はログ末尾にcurlのエラーメッセージがつく。
下記はプロキシに接続できなかった場合のログ
timestamp, content_type, filename_effective, ftp_entry_path, http_code, http_connect, local_ip, local_port, num_connects, num_redirects, redirect_url, remote_ip, remote_port, size_download, size_header, size_request, size_upload, speed_download, speed_upload, ssl_verify_result, time_appconnect, time_connect, time_namelookup, time_pretransfer, time_redirect, time_starttransfer, time_total, url_effective
20231010_113607, , NUL, , 000, 000, , 0, 0, 0, , , 0, 0, 0, 0, 0, 0, 0, 0, 0.000000, 0.000000, 0.000037, 0.000000, 0.000000, 0.000000, 2.038002, https://yahoo.co.jp/, curl: (7) Failed to connect to 192.168.1.2 port 8080 after 2037 ms: Couldn't connect to server
20231010_113607, , NUL, , 000, 000, , 0, 0, 0, , , 0, 0, 0, 0, 0, 0, 0, 0, 0.000000, 0.000000, 0.000039, 0.000000, 0.000000, 0.000000, 2.037337, https://yahoo.co.jp/, curl: (7) Failed to connect to 192.168.1.2 port 8080 after 2037 ms: Couldn't connect to server
20231010_113607, , NUL, , 000, 000, , 0, 0, 0, , , 0, 0, 0, 0, 0, 0, 0, 0, 0.000000, 0.000000, 0.000039, 0.000000, 0.000000, 0.000000, 2.020430, https://yahoo.co.jp/, curl: (7) Failed to connect to 192.168.1.2 port 8080 after 2020 ms: Couldn't connect to server
こんな感じのログがとれる。