- 投稿日:2020-02-10T23:39:36+09:00
JMeter チートシート
JMeter とは
自動でブラウザ操作をするツール
主にラッシュテストに使う
ちょっとした操作ならpostman の方が優秀だが、
postman は複数スレッドを起動できないため、JMeterを使わざるおえない前提
JMeterのインストール先:c:\apache-jmeter-5.2.1
JMeter の起動(画面)
jmeter_view.batset JMETER_LANGUAGE=-Duser.language="ja" -Duser.region="JP" c:\apache-jmeter-5.2.1\bin\jmeter.bat -H "プロキシホスト" -P "プロキシポート" -u "プロキシユーザー" -a "プロキシパスワード" -t honya_rush_test.jmx1行目:日本語化
2行目:jmeterをviewモードで起動
起動オプション
-t:ブラウザ操作の設定を保存するファイル名。初回はファイルがないのでエラーになるJMeter の設定(画面)
外部から設定した方が便利な設定は、変数にする
書式:${__P(変数名)}ここでは、スレッド数、Ramp-Up期間、ループ回数を変数にした。
JMeter の起動
起動するごとに日時フォルダを作成し、結果をまるっと保存する設定
jmeter_run.batset time_tmp=%time: =0% set now=%date:/=%%time_tmp:~0,2%%time_tmp:~3,2%%time_tmp:~6,2% set JMETER_LANGUAGE=-Duser.language="ja" -Duser.region="JP" c:\apache-jmeter-5.2.1\bin\jmeter.bat -H "プロキシホスト" -P "プロキシポート" -u "プロキシユーザー" -a "プロキシパスワード" -n -t honya_rush_test.jmx -Jthread_count=100 -Jloop_count=100 -Jramp_up=100 -j %now%/jmeter.log -l %now%/jmeter.jtl -e -o %now%/report1行目、2行目:日時フォルダ名の設定
4行目:日本語化
5行目:jmeterをバッチモードで起動
起動オプション
-t:viewモードで作成したファイル名
-n:jmeterをバッチモードで起動
-J変数名=値:viewモードで設定した外部設定にした変数に値を入れる
-j:ログファイル名
-l:テスト結果出力先ファイル名
-e:レポートを出力する
-o:テスト結果出力先フォルダ名あとがき
-a がパスワード って、passwordの a かな?
-l がテスト結果ということは、もしかして leport??
-j がログファイル名?
覚えられないオプションよりチートシート
おまけ
JMeterのインストール
java8 以上が必要
apache-jmeter-5.2.1.zip zipの直リン(2020/2/10現在)
- 投稿日:2020-02-10T23:03:12+09:00
【初心者向け】java -jar コマンドでJVM(-D)オプションが効かない、ライブラリがバグってるんじゃないかと言いたくなったとき。
背景
Java製のOSSや社内に閉じたライブラリを開発していると、こんな問い合わせを受けることが何度かあったので、せめてQiitaに書いておけばググって自己解決してくれるのではないかという淡い期待をこめて。
問い合わせはこんな感じ
パターン1
ライブラリのドキュメントには、
-Dxxxx=yyyy
を指定すると、xxxx
オプションが有効になると書いてありますが、動作しません。ライブラリがバグってませんか?パターン2
組み込みTomcat(またはJettyなど)を使用したjarを起動する際、JMXを有効にするために
-Dcom.sun.management.jmxremote
やそのほかJMXのオプションをつけてますが、アプリケーションを起動してもJMXのポートがLISTENになりません。組み込みTomcat(またはJettyなど)のパラメータ調整が必要でしょうか?
バグってるのはライブラリでもServletコンテナでもない
誤ったコマンドjava -jar zzzz.jar -Dxxxx=yyyy -Dcom.sun.management.jmxremote一見特段問題なく見えるんですが、正しくは下記の通りです。
正しいコマンドjava -Dxxxx=yyyy -Dcom.sun.management.jmxremote -jar zzzz.jar要するに、
-jar
オプションの後にJVM引数を指定するなって話ですねちなみに、
java -help
コマンドで、ちゃんと順序は明示されています。言うまでもなく[options]
がJVMオプションで、[args]
がプログラムが処理するコマンドライン引数ですね。$ java -help 使用方法: java [options] <mainclass> [args...] (クラスを実行する場合) または java [options] -jar <jarfile> [args...] (jarファイルを実行する場合) または java [options] -m <module>[/<mainclass>] [args...] java [options] --module <module>[/<mainclass>] [args...] (モジュールのメイン・クラスを実行する場合) または java [options] <sourcefile> [args] (単一のソースファイル・プログラムを実行する場合) メイン・クラス、ソース・ファイル、-jar <jarfile>、 -mまたは--module <module>/<mainclass>に続く引数は、メイン・クラスへの引数として 渡されます。 ... 以下、略最後に
JVMオプションが効かない!?ってときは、他人を疑う前に、まずは自分の打ち込んだコマンドをご確認ください。
- 投稿日:2020-02-10T21:38:27+09:00
Javaのメソッドと引数の関係を生化学式に解釈する
Javaをはじめたのですが、なかなか理解できないので自分なりの解釈で勉強します
メソッドの定義
public static メソッド名 (引数リスト) { 処理 }メソッドの呼び出し
メソッド名(引数)引数とメソッドの考え方
引数=基質
メソッド=酵素
と考えるpublic class Main { public static void main(String[] args){ hello ("Java"); } public static void hello (String name){ System.out.println(name + "こんにちは"); } }基質(引数)が酵素(helloメソッド)を活性化する(呼びだす)
活性部位(変数の型と順番)があわなきゃダメ→コンパイルエラーになっちゃう
- 投稿日:2020-02-10T18:49:04+09:00
Minecraft Plugin開発(Java)
1.15.2-R0.1
Minecraft(JE)です
アイテムをドロップしたことを検知して、その数秒後にアイテムの名前を変更するコードを書きたいのですが、上手くいきません。
Bメソッドまで呼ばれていることを確認しましたが、Bメソッド内のitemStackの更新が上手くいかないようです。
Aメソッド内では問題なく名前の変更ができました。
回答お待ちしています下記コード
//省略// @EventHandler public void onPlayerDrop(PlayerDropItemEvent e) { ItemStack itemStack = e.getItemDrop().getItemStack(); Test test = new Test(itemStack); test.A(); e.setCancelled(true); } } public Test { java.lang.System.out.println("Test"); JavaPlugin javaPlugin; ItemStack itemStack; public Test (ItemStack itemStack) { this.itemStack = itemStack; } public void A () { java.lang.System.out.println("A"); itemStack.setDisplayName("testA"); itemStack.setItemMeta(itemMeta); new BukkitRunnable() { @Override public void run() { B(); } }.runTaskLater(javaPlugin, 5); } public void B () { java.lang.System.out.println("B"); itemStack.setDisplayName("testB"); itemStack.setItemMeta(itemMeta); } }