在命令模式下运行JMeter不会为.jmx文件中while循环下的任何内容创建任何日志

在命令模式下运行JMeter不会为.jmx文件中while循环下的任何内容创建任何日志,jmeter,Jmeter,我有一个带有两个线程组的.jmx文件。第一个线程组用于数据比较DB Vs API,有一个JDBC请求,我在其中插入SQL脚本并将其保存到一个以制表符分隔的文件中。然后我有一个while循环,在该循环下我有一个HTTP请求 用于负面方案验证的第二个线程组 下面是.jmx文件的结构 -- Thread Group Name - FX-Rates -- JDBC Request Name - FX-SQL -- While loop -- HTTP Request -

我有一个带有两个线程组的.jmx文件。第一个线程组用于数据比较DB Vs API,有一个JDBC请求,我在其中插入SQL脚本并将其保存到一个以制表符分隔的文件中。然后我有一个while循环,在该循环下我有一个HTTP请求

用于负面方案验证的第二个线程组

下面是.jmx文件的结构

-- Thread Group Name - FX-Rates
    -- JDBC Request Name - FX-SQL
    -- While loop
        -- HTTP Request - FX Rates - API
-- Thread Group Name - Negative Testing
    -- Error Codes 
我使用下面的命令在非GUI模式下运行JMeter

jmeter -n -t "F:\MY DOCUMENTS\PSM\PSM_Automation\bin\Non_GUI_FX_Rates_Validation.jmx" -l "F:\MY DOCUMENTS\PSM\PSM_Automation\log\Non_GUI_FX_Rates_Validation.jtl"
我看到它正在为每个采样器创建日志,即:;SQL和负面场景,但不适用于while循环下的任何内容。下面是它创建的日志

日志文件:

时间戳、已用时间、标签、响应代码、响应消息、线程名称、数据类型、成功、失败消息、字节、sentBytes、grpThreads、所有线程、延迟、空闲时间、连接 149218593961512140,外汇-SQL,200,OK,外汇汇率1-1,文本,真,18549,0,1,112017,01566 1492185951933,0,错误400:无效的日期格式,非HTTP响应代码:java.net.urisyntaxeption,非HTTP响应消息:索引80处查询中的非法字符:${D_EXCH_RT_EFF},否定测试-错误代码2-1,文本,false,,1105,0,1,1,0,0,0 1492185951935190,错误404:无账户,404,未找到,阴性测试-错误代码2-1,文本,真,354232,1,1189,0170 1492185952127,20,错误404:URL不正确,404,未找到,阴性测试-错误代码2-1,文本,错误,354241,1,1,19,0,12 1492185952147,19,错误204:无数据,404,未找到,阴性测试-错误代码2-1,文本,真,354260,1,1,19,0,12

显然,采样器的结果是:

错误400:无效的日期格式,非HTTP响应代码:java.net.URISyntaxException,非HTTP响应消息:非法 索引80处的查询中的字符: ${D_EXCH_RT_EFF}

显然,这是因为您的URL中没有设置/解析D_EXCH_RT_EFF

这就是你要调试的问题。 很明显

如果您已经在进行调试,并且在调试过程中遇到问题,请描述它


并展示两件事:如何设置和初始化变量;您如何使用它,从字面上来说,意味着显示您的HTTP采样器是的,至少是屏幕截图。

不进入While循环的原因可能是:

当条件返回false时 而条件是错误的 如果您的While条件依赖于来自JDBC请求名称-FX-SQL sampler的变量,请使用和侦听器组合仔细检查此变量值。
一般的良好实践是在GUI模式下使用1-2个虚拟用户运行测试,并在查看结果树侦听器中检查请求和响应的详细信息。还要注意jmeter.log文件中的任何可疑条目。在完全确定JMeter正在执行它应该执行的操作之前,不要满负荷运行JMeter测试。有关JMeter测试故障排除技术的更多信息,请参阅本文

添加调试采样器并检查是否看到${D_EXCH_RT_EFF}的有效响应。另外,请确保您使用的是HTTP采样器GET、POST、PATCH等中设置的正确方法。如果仍然失败,请将实现更改为Java并重试。它正在执行While循环,但由于错误400而失败。请检查我的第一条评论。@Naveen:Error 400是一个负面场景,不在while循环下。此外,HTTP请求中的方法是GET。问题不在于失败。当在GUI模式下运行同一个.jmx文件时,它可以工作,但当我在命令模式下执行它时,它不会为while循环下的HHTP请求创建日志。请清楚地添加测试计划快照。