JMeter脚本停止工作,导致内存泄漏,OutOfSpace Java

时间:2018-07-15 11:27:21

标签: java jmeter

上个星期四之后(可以链接到Windows OS(10 v 1803,OS Build 17134.165)更新),我所有的JMeter脚本都停止了工作。我首先注意到在非GUI模式下运行的所有脚本均因以下原因而失败     Uncaught Exception java.lang.OutOfMemoryError: Java heap space. See log file for details。 我开始使用GUI模式进行测试,日志显示以下内容:

WARN c.h.c.r.e.LoggingCSSParseErrorHandler: Browser compliant mode skipped CSS from [1:24125] starting at token 'data' until [1:24143] to token ';' (based on com.helger.css.parser.ParseException: Encountered unexpected token: ":" ":"
    at line 1, column 24129.

   Was expecting one of:
    ")"    "+"     "-"     "/"     "="     "["     "and"    "expression("   "from"     "inherit"     "not"     "only"     "or"     "to"     <ANGLE_DEG>    <ANGLE_GRAD>    <ANGLE_RAD>    <ANGLE_TURN>     <CH>    <COMMA>    <DPCM>    <DPI>     <DPPX>     <EM>    <EX>    <FR>    <FREQ_HZ>    <FREQ_KHZ>    <FUNCTION>    <FUNCTION_CALC>    <HASH>    <IDENT>    <LENGTH_CM>    <LENGTH_IN>
    <LENGTH_MM>    <LENGTH_PC>    <LENGTH_PT>    <LENGTH_Q>    <NUMBER>
    <PERCENTAGE>
    <PX>    <REM>    <S>    <STRING1>    <STRING2>    <TIME_MS>    <TIME_S>    <URANGE>    <URL>    <VH>    <VMAX>    <VMIN>    <VW>)

我在三台机器上看到它:我的本地桌面,外围的自动化VM和AWS。 我有:

set HEAP=-Xms1g -Xmx1g -XX:MaxMetaspaceSize=256m

我还设置:

css.parser.ignore_all_css_errors=true

我还测试了JMter 4.0和3.3的情况。 Java 1.8.0_152

2 个答案:

答案 0 :(得分:0)

第一次检查:

但是如果问题仍然存在,请添加到命令行:

  

-XX:+ HeapDumpOnOutOfMemoryError -XX:HeapDumpPath =

然后使用某种共享解决方案共享生成的hprof,并在可能的情况下共享您的测试计划。

答案 1 :(得分:0)

我发现了问题。看起来好像有几个。在我的jmx计划中,我正在加载html页面。 (我们有一个单一的Web应用程序体系结构)。现在,在开发人员更改index.html之后,我需要禁用html页面,否则它会崩溃。

开发人员更改index.html后,我的测试计划(jmx)开始失败。从UI角度和Selenium脚本正确运行。更改看起来很小。他们将 base 标签从外部移到了 script 标签内部。

之前:

<base href="/ui/">
<script>
    //var HOST = 'http://localhost/';
    //var HOST = 'https://ooo.credifi.com/core/';
    var HOST = 'https://oo2.credifi.com/core/';
    var BASE = '/ui';
</script>

之后:

  <script>
    var isLocalhost = document.location.hostname == 'localhost';
    var BASE = isLocalhost ? '' : '/ui';
    var HREF = isLocalhost ? '' : 'ui/';
    document.write('<base href="/' + HREF + '" />');
  </script>