Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/performance/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Performance JMeter测试重放期间的不同结果_Performance_Jmeter - Fatal编程技术网

Performance JMeter测试重放期间的不同结果

Performance JMeter测试重放期间的不同结果,performance,jmeter,Performance,Jmeter,我对JMeter有一个奇怪的问题。 我录制了一些web应用程序,没有任何问题。回放测试时出现问题。 由于某些原因,我在播放期间收到的结果与录制期间不同 当我比较录制和播放过程中发出的Http请求时,我看不到任何区别(除了我从以前的请求中提取并作为参数传递的一些安全令牌)。 更确切地说,在录制过程中,我接收到一个大主体(>5kB)的响应,而在回放过程中,响应主体是空的。响应代码为200(正常)。 这个主体包含来自数据库的关键数据,所以我担心这个JMeter脚本所做的度量不会反映应用程序的实际行为,

我对JMeter有一个奇怪的问题。
我录制了一些web应用程序,没有任何问题。回放测试时出现问题。 由于某些原因,我在播放期间收到的结果与录制期间不同

当我比较录制和播放过程中发出的Http请求时,我看不到任何区别(除了我从以前的请求中提取并作为参数传递的一些安全令牌)。 更确切地说,在录制过程中,我接收到一个大主体(>5kB)的响应,而在回放过程中,响应主体是空的。响应代码为200(正常)。 这个主体包含来自数据库的关键数据,所以我担心这个JMeter脚本所做的度量不会反映应用程序的实际行为,只是我不会度量我真正需要的

现在我的问题是:

  • 是否有某种工具或JMeter插件可以更有效地查看HTTP请求及其响应的内容?如果我能比较一下录音和回放期间的请求,那就太好了。到目前为止,我使用了两个侦听器:“查看结果树”。我把它们夹在中间,比较录音和回放的请求
  • JMeter中是否有一些已知的bug可以解释这种差异?例如,与录制过程相关的内容
  • 以下是请求的示例:

    POST http://10.133.27.81:8080/c/portal/render_portlet
    
    POST data:
    p_l_id=69210&p_p_id=blank_WAR_Blank_INSTANCE_iNM3&p_p_action=0&p_p_state=normal&p_p_mode=view&p_p_col_id=column-2&p_p_col_pos=1&p_p_col_count=2
    
    [no cookies]
    
    Request Headers:
    Connection: keep-alive
    Content-Type: application/x-www-form-urlencoded
    Accept-Language: pl
    Accept: */*
    User-Agent: Mozilla/5.0 (compatible; MSIE 9.0; Windows NT 6.1; WOW64; Trident/5.0)
    csrf_token: 1GXK-0QD7-GFPJ-JLDG-JP2G-J390-BFLG-7LL7
    Pragma: no-cache
    Method: POST /c/portal/render_portlet HTTP/1.1
    X-Requested-With: OWASP CSRFGuard Project
    Referer: http://10.133.27.81:8080/group/bou
    Accept-Encoding: gzip, deflate
    Content-Length: 143
    Host: 10.133.27.81:8080
    

    更新:为了确保哪些标题或参数是恒定的,我在不同的会话中对相同的测试用例进行了4次录制,并对它们进行了比较,因此我非常确定只有
    csrf\u令牌
    必须与从其他请求获取的值一起输入字段。我添加了调试采样器来验证是否正确获取了该值


    更新2:发现问题。
    这里有两个问题:

  • 当您执行搜索(Ctrl-F)时,JMeter中有一个bug,它搜索整个项目,除了
    HTTP Header Menager
    s和我的请求包含
    csrf_令牌
    (我在发布此问题之前检测到)。使用文本编辑器在xml中进行搜索是一个很好的解决方法
  • 当我试图找到问题的根源时,在我找到第一个问题之前,我通过删除一个
    httpcookiemanager
    (我把这归咎于我自己和IE)添加了一个新问题
  • 通常情况下,将Internet Explorer更改为FireFox,并使用HttpFox附加组件帮助发现问题

    谢谢大家的支持


    Marek

    您的问题肯定是由于缺少一个您没有计算的动态请求参数

    例如,在csrf_令牌头中,您是否将其设置为变量?或者,您是否传输其初始记录值,但也可以在包含某些哈希数据或数值数据的任何参数处传输,这些数据引用了页面或请求中不存在的某些内容

    例如col pos我看到p_p_col_id和相关参数,您确定它们引用了重播中的某些内容吗


    在这种情况下,出现JMeter错误的可能性非常小。

    响应代码200并不一定意味着在应用程序级别一切都很顺利

    要了解更多详细信息,您可以使用和。

    示例。

    是的,我已将其作为可验证的,我已进行了相关更新以使其更清晰。我使用了
    调试采样器
    ,我将尝试
    调试后处理器
    ,我希望它将有助于检测问题源。搜索中的错误功能已在夜间构建中修复,请参阅,获取夜间构建: