JMeter为jtl文件写入多个条目以进行1次交易

时间:2017-12-18 22:24:47

标签: apache jmeter

我无法从NON-gui模式jmeter输出的JTL文件中获得准确的结果。

我有一个生成父样本的事务控制器,当我运行事务时,生成的jtl文件只有一个条目,我期待。

1513634189384,1552,Test Login Controller,200,"Number of samples in transaction : 1, number of failing samples : 0",Client 1-1,,true,4314,1,1,0

在远程计算机上测试脚本时,我希望JTL文件中有一个带有主机名的条目: 例如:
1513634189384,1552,Test Login Controller,200,"Number of samples in transaction : 1, number of failing samples : 0",Client1-1,,true,,4314,1,1,MY-HOST

但是,生成的JTL文件有3个条目,其中1个是期望的。 结果输出:

 1513634189384,1552,Test Login Controller,200,"Number of samples in transaction : 1, number of failing samples : 0",Client 1-1,,true,4314,1,1,0  
 1513634189384,1552,Test Login Controller,200,"Number of samples in transaction : 1, number of failing samples : 0",Client 1-1,,true,,4314,1,1  
 1513634189384,1552,Test Login Controller,200,"Number of samples in transaction : 1, number of failing samples : 0",Client 1-1,,true,,4314,1,1,MY-HOST

为什么其他2个条目被写入并从哪里开始?

我在Jmeter 3.0上。 我的属性是:

# legitimate values: xml, csv, db.  Only xml and csv are currently supported.
#jmeter.save.saveservice.output_format=csv


# true when field should be saved; false otherwise

# assertion_results_failure_message only affects CSV output
jmeter.save.saveservice.assertion_results_failure_message=true

# legitimate values: none, first, all  
#jmeter.save.saveservice.assertion_results=none

#jmeter.save.saveservice.data_type=true   
#jmeter.save.saveservice.label=true  
#jmeter.save.saveservice.response_code=true  
# response_data is not currently supported for CSV output  
#jmeter.save.saveservice.response_data=false  
# Save ResponseData for failed samples  
jmeter.save.saveservice.response_data.on_error=true  
#jmeter.save.saveservice.response_message=true  
#jmeter.save.saveservice.successful=true  
#jmeter.save.saveservice.thread_name=true  
#jmeter.save.saveservice.time=true  
#jmeter.save.saveservice.subresults=true  
#jmeter.save.saveservice.assertions=true  
jmeter.save.saveservice.latency=false  
#jmeter.save.saveservice.connect_time=false  
#jmeter.save.saveservice.samplerData=false  
#jmeter.save.saveservice.responseHeaders=false  
#jmeter.save.saveservice.requestHeaders=false  
#jmeter.save.saveservice.encoding=false  
#jmeter.save.saveservice.bytes=true  
#jmeter.save.saveservice.url=false  
#jmeter.save.saveservice.filename=false  
jmeter.save.saveservice.hostname=true  
jmeter.save.saveservice.thread_counts=true  
#jmeter.save.saveservice.sample_count=false  
jmeter.save.saveservice.idle_time=false  

2 个答案:

答案 0 :(得分:0)

  1. 您可能正在将结果写入相同的.jtl文件中。您可以将-f参数添加到JMeter启动脚本,以确保JMeter在测试执行之前删除现有的.jtl结果文件。

    jmeter -n -f -t test.jmx -l result.jtl
    

    更多信息:Full list of command-line options

  2. 你可能有> 1远程机器,因此JMeter实际上在3个从站上执行测试,因此在结果文件中有3个条目。您可以尝试将__machineName()__machineIP()功能添加到交易控制器的名称,例如Test Login Controller - ${__machineName()}

    JMeter Function Append hostname to results

    通过这种方式,您将在.jtl结果文件中看到来自哪台机器请求。有关JMeter Functions概念的更多信息,请参阅Apache JMeter Functions - An Introduction文章。

  3. 你只需要> Thread Group
  4. 中定义的1个线程或循环

答案 1 :(得分:0)

我的测试站点为https 我在jmeter中清空了。因此默认情况下将其视为http。 对于此设置,我在日志文件中接收了多个条目。 在我为测试用例在jmeter中更改为https之后。 解决了日志文件中的多个条目问题。