2017-04-24 24 views
-1

jmxファイルでいくつかのjmeter関数を使用しています。 jmeterツールでコマンドラインから実行すると、正常に実行され、関数が実行され、値が返されます。Javaコードから呼び出すときにJmeter関数が実行されない

同じjmxファイルをロードするjavaコードを実行すると、関数が文字列として取得され、値は返されません。

私はいくつかの関数でテストしましたが、結果は同じです。 JTLファイルでは、私はthis- $ {__時間(YYYY-MM-DD HH:MM:SS)}のようなものを参照

<httpSample t="663" it="0" lt="631" ts="1492989803759" s="true" lb="User-getapikey ${__time(yyyy-MM-dd HH:mm:ss)} " rc="200" rm="" tn="Thread Group 1-1" dt="text" de="UTF-8" by="528" ng="1" na="1"> 

その私のJavaコード、私は機能を持っていないときには正常に動作しました:

StandardJMeterEngine jmeter = new StandardJMeterEngine(); 
JMeterUtils.loadJMeterProperties(jmeterPropertiesPath); 
JMeterUtils.setJMeterHome(jmeterHomePath); 
JMeterUtils.initLogging(); 
JMeterUtils.initLocale(); 

SaveService.loadProperties(); 
HashTree testPlanTree = null; 
       try{ 
        log.info("loading testPlanTree"); 
        testPlanTree = SaveService.loadTree(jmxFile); 
        JMeter.convertSubTree(testPlanTree); 
       }catch(IOException ex){ 
        log.info("error loading file as tree"); 
        log.info(ex.getMessage()); 
        return; 
       } 
       jmeter.configure(testPlanTree); 
       jmeter.run(); 
+0

ご迷惑をおかけしますか? – Teocci

+0

私はまったく同じ問題を抱えています。これに解決策はありましたか? –

+0

はい@DanielIsraelは、コマンドを実行しているのinstaed: CMD = "/ javaの/ binに/ javaの-jar /test/test.jar" 我々は、コマンドを実行します。/テスト CMD =「/ javaの/ binに/ Javaの-cp」/ test.jar:/ test/test_lib/* 'com.company.JmeterPlugin " test_libにはApacheJMeter_functions.jarが含まれています。 – Serine

答えて

0

あなたのコードは、あなたのプロジェクトのクラスパスにApacheJMeter_functions.jarを持っている良い、ちょうどダブルチェックを探します。このファイルはJMeterインストールの "lib/ext"フォルダの下にあります。

また、同様.jtlファイルにテストの実行結果を格納するResultCollectorを追加したい場合があります:キックオフするためのJava APIを使用することを含むJMeterのテストの実行に異なるアプローチの詳細については、

Summariser summer = null; 
String summariserName = JMeterUtils.getPropDefault("summariser.name", "summary"); 
if (summariserName.length() > 0) { 
    summer = new Summariser(summariserName); 
} 

ResultCollector logger = new ResultCollector(summer); 
logger.setFilename("result.jtl"); 
testPlanTree.add(testPlanTree.getArray()[0], logger); 

チェックアウトFive Ways To Launch a JMeter Test without Using the JMeter GUIテストを開発する。

+0

あなたの答えはDmitriです。私はこの期間中に多くのことを試しました。 Apache JMeter_functions.jarをプロジェクトのクラスパスに外部jarとしてインクルードし、Javaアプリケーションとしてアプリケーションを実行すると正常に機能します。私は自分のjtlで正常な結果を得ています。 しかし、それを.jarにエクスポートしてコマンドラインから呼び出すと、ApacheJMeter_functions.jarが含まれていることが理解できませんでした。 – Serine

+0

私はそれをmeta-infのクラスパスに追加しました。また、 'JMeterUtils.setProperty(" search_paths "、" JMeter_lib/ApacheJMeter_functions.jar ");' を相対パスと絶対パスで指定しましたが、コール。 また、あなたが提供したリンクからコードを試しましたが、jarファイルとして実行しても機能しません。 – Serine

関連する問題