Apache JMeter(アパッチ ジェイメーター)は、Apacheソフトウェア財団にて開発されている、パフォーマンス測定および負荷テストを行うJavaアプリケーションです。
HTTPレスポンスの内容の妥当性を判定することもできるため、パフォーマンステストのみならず、機能テストに使用することも可能です。
オープンソースかつ多数の機能を備えていることから、WebアプリケーションおよびWebサーバの性能測定に広く利用されているようです。
Software Design and Planning
Apache JMeter(アパッチ ジェイメーター)は、Apacheソフトウェア財団にて開発されている、パフォーマンス測定および負荷テストを行うJavaアプリケーションです。
HTTPレスポンスの内容の妥当性を判定することもできるため、パフォーマンステストのみならず、機能テストに使用することも可能です。
オープンソースかつ多数の機能を備えていることから、WebアプリケーションおよびWebサーバの性能測定に広く利用されているようです。
サーブレットコンテナ(Java Serveletを動かすソフト)
→サーバ上で動くJavaプログラム 。動的なページが生成可能。
(JSPはコンパイルするとServletになる。)
1 2 3 4 5 6 7 8 9 10 11 | public class HelloWorld extends HttpServlet{ public void doGet(HttpServletRequest request, HttpServletResponse response) throws IOException, ServletException{ response.setContentType("text/html"); PrintWriter out = response.getWriter(); out.println("<html>"); out.println("<head>"); out.println("<title>Hello World!</title>"); //~HTMLを出力~ out.close(); } } |
正式名称は「Apache Tomcat」。
初版は1999年。
簡易的なWebサーバとしての機能も持つ。
JavaでZip圧縮
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 | private void createZip() { File[] files = {/* 圧縮したいファイル配列 */}; ZipOutputStream zos = null; try { zos = new ZipOutputStream(new BufferedOutputStream(new FileOutputStream(new File("hoge.zip")))); createZip(zos, files); } catch (IOException e) { e.printStackTrace(); } finally { IOUtils.closeQuietly(zos); } } private void createZip(ZipOutputStream zos, File[] files) throws IOException { byte[] buf = new byte[1024]; InputStream is = null; try { for (File file : files) { ZipEntry entry = new ZipEntry(file.getName()); zos.putNextEntry(entry); is = new BufferedInputStream(new FileInputStream(file)); int len = 0; while ((len = is.read(buf)) != -1) { zos.write(buf, 0, len); } } } finally { IOUtils.closeQuietly(is); } } |
プロキシ経由で接続
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 | // FTPクライアント作成 FTPClient ftpClient = new FTPClient(); try { // プロキシ経由で接続 if (proxyHost != null && !proxyHost.equals("")) { ftpClient = new FTPHTTPClient(proxyHost, proxyPort); ftpClient.connect(ftpHost); ftpClient.login(user, passwd); } else { ftpClient.connect(ftpHost); ftpClient.login(user, passwd); } ・・・ |
FTPサーバに接続後 取得するファイルのフィルタをかける
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 | // ファイルフィルタ FTPFileFilter filter = new FTPFileFilter() { @Override public boolean accept(FTPFile ftpFile) { // 正規表現でマッチさせたファイルを取得 Pattern pattern; pattern = Pattern.compile("^[0-9a-zA-Z].txt$"); return (ftpFile.isFile() && pattern.matcher(ftpFile.getName()).find()); } }; ftpClient.enterLocalPassiveMode(); ftpClient.setFileType(FTP.BINARY_FILE_TYPE); FTPFile[] result; if (filter != null && !filter.equals("")) { result = ftpClient.listFiles(targetDir, filter); } else { result = ftpClient.listFiles(targetDir); } |