You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Locust Web界面访问报错AttributeError: 'Request'对象无'is_xhr'属性

Locust启动后访问localhost:8089报错问题修复方案

问题表现

本地启动Locust服务后,访问Web管理界面地址localhost:8089时页面无法正常加载,服务端抛出属性不存在异常,无正常业务日志输出。

错误根因

该报错由依赖包版本不兼容导致:Werkzeug 1.0.0及以上版本正式移除了早已废弃的is_xhr请求属性,但低版本Locust依赖的Flask框架仍在接口返回的JSON格式化逻辑中调用该属性,触发属性不存在异常。

完整报错栈

Traceback (most recent call last):
  File "/Users/kuldeep.yadav/Documents/locustTutorial/venv/lib/python3.9/site-packages/gevent/pywsgi.py", line 999, in handle_one_response
    self.run_application()
  File "/Users/kuldeep.yadav/Documents/locustTutorial/venv/lib/python3.9/site-packages/gevent/pywsgi.py", line 945, in run_application
    self.result = self.application(self.environ, self.start_response)
  File "/Users/kuldeep.yadav/Documents/locustTutorial/venv/lib/python3.9/site-packages/flask/app.py", line 1997, in __call__
    return self.wsgi_app(environ, start_response)
  File "/Users/kuldeep.yadav/Documents/locustTutorial/venv/lib/python3.9/site-packages/flask/app.py", line 1985, in wsgi_app
    response = self.handle_exception(e)
  File "/Users/kuldeep.yadav/Documents/locustTutorial/venv/lib/python3.9/site-packages/flask/app.py", line 1540, in handle_exception
    reraise(exc_type, exc_value, tb)
  File "/Users/kuldeep.yadav/Documents/locustTutorial/venv/lib/python3.9/site-packages/flask/_compat.py", line 33, in reraise
    raise value
  File "/Users/kuldeep.yadav/Documents/locustTutorial/venv/lib/python3.9/site-packages/flask/app.py", line 1982, in wsgi_app
    response = self.full_dispatch_request()
  File "/Users/kuldeep.yadav/Documents/locustTutorial/venv/lib/python3.9/site-packages/flask/app.py", line 1614, in full_dispatch_request
    rv = self.handle_user_exception(e)
  File "/Users/kuldeep.yadav/Documents/locustTutorial/venv/lib/python3.9/site-packages/flask/app.py", line 1517, in handle_user_exception
    reraise(exc_type, exc_value, tb)
  File "/Users/kuldeep.yadav/Documents/locustTutorial/venv/lib/python3.9/site-packages/flask/_compat.py", line 33, in reraise
    raise value
  File "/Users/kuldeep.yadav/Documents/locustTutorial/venv/lib/python3.9/site-packages/flask/app.py", line 1612, in full_dispatch_request
    rv = self.dispatch_request()
  File "/Users/kuldeep.yadav/Documents/locustTutorial/venv/lib/python3.9/site-packages/flask/app.py", line 1598, in dispatch_request
    return self.view_functions[rule.endpoint](**req.view_args)
  File "/Users/kuldeep.yadav/Documents/locustTutorial/venv/lib/python3.9/site-packages/locust/web.py", line 366, in wrapper
    return view_func(*args, **kwargs)
  File "/Users/kuldeep.yadav/Documents/locustTutorial/venv/lib/python3.9/site-packages/locust/util/cache.py", line 22, in wrapper
    cache["result"] = func(*args, **kwargs)
  File "/Users/kuldeep.yadav/Documents/locustTutorial/venv/lib/python3.9/site-packages/locust/web.py", line 301, in request_stats
    return jsonify(report)
  File "/Users/kuldeep.yadav/Documents/locustTutorial/venv/lib/python3.9/site-packages/flask/json.py", line 251, in jsonify
    if current_app.config['JSONIFY_PRETTYPRINT_REGULAR'] and not request.is_xhr:
  File "/Users/kuldeep.yadav/Documents/locustTutorial/venv/lib/python3.9/site-packages/werkzeug/local.py", line 347, in __getattr__
    return getattr(self._get_current_object(), name)
AttributeError: 'Request' object has no attribute 'is_xhr'
2021-10-22T15:58:55Z {'REMOTE_ADDR': '::ffff:127.0.0.1', 'REMOTE_PORT': '50803', 'HTTP_HOST': 'localhost:8089', (hidden keys: 28)} failed with AttributeError

解决方案

  • 方案一(推荐):升级Locust到2.0及以上正式版本,新版已官方修复该兼容性问题,执行命令pip install -U locust即可完成升级
  • 方案二:如果需要保留当前Locust版本,可降级Werkzeug到兼容版本,执行命令pip install werkzeug==0.16.1,该版本仍保留is_xhr属性,可正常适配旧版Locust
  • 方案三(临时修改):找到依赖包目录下的flask/json.py文件,将251行的判断逻辑if current_app.config['JSONIFY_PRETTYPRINT_REGULAR'] and not request.is_xhr:修改为if current_app.config['JSONIFY_PRETTYPRINT_REGULAR'] and not request.headers.get('X-Requested-With') == 'XMLHttpRequest':,替换is_xhr的原有实现逻辑即可解决问题

内容的提问来源于stack exchange,提问作者Kuldeep Yadav

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.29 10:57:03