问答 大佬们求助,使用 httprunnnerV4.3.5 的时候,是不是会给所有 POST 请求的 URL 添加结尾强制斜杠,导致地址错误了,咋解决呀

OCEAN111 · 2026年03月06日 · 最后由 OCEAN111 回复于 2026年03月11日 · 6568 次阅读

为啥 httprunnner 运行 YML 文件的时候,request 请求会自动往最后面加一个/,导致变成了/basic-api/s1/user/login/,导致我请求不同

我的测试 YML 文件:
config:
name: "登录测试"
variables:
loginurl: http://123.139.118.95:7001/basic-api/s1/user/login
verify: False

teststeps:

  • name: 测试登录用例 request: method: POST url: $loginurl json: userNo: "123" userPassword: "456"

打印:
-------------------- request --------------------
POST /basic-api/s1/user/login/ HTTP/1.1
Host: 123.139.118.95:7001
Content-Type: application/json; charset=utf-8

{"userNo":"123","userPassword":"456"}

{"msg":"token 为空","code":401}

共收到 5 条回复 时间 点赞

你看看你的配置文件

之前遇到过同样的问题,通过修改 nginx 反向代理的配置解决了

rewrite ^(.+)/$ $1 break;

问了下 AI,还可以通过以下方式解决(没有验证过不保真)

# 1、配置文件添加 force_trailing_slash: false
config:
    name: "登录测试"
    variables:
        loginurl: http://123.139.118.95:7001/basic-api/s1/user/login
    verify: False
    force_trailing_slash: false  # 添加这一行


# 2、运行 httprunner 时添加 --skip-trailing-slash
hrun your_test.yml --skip-trailing-slash # 替换为hrp也试下

# 3、修改.env 配置文件
HRUN_SKIP_TRAILING_SLASH=true

个人推介直接用 pytest 吧。我当初就是用了 httprunner 发现灵活度不够,退到了 pytest

dawei 回复

感谢提供的思路,最后用辅助函数间接解决了;顺带说一下 force_trailing_slash: false 这个解决办法不行

fxy 回复

我刚开始接触 httprunnner,使用过程中也发现调试很不方便,用例格式要求极为严格,打印调试也是有点难用

需要 登录 后方可回复, 如果你还没有账号请点击这里 注册