JMeter测试Rest API遇404错误:路径格式异常如何解决?
解决JMeter中REST API路径参数配置问题
嗨,你遇到的问题是把REST风格的路径参数当成查询参数来配置了,这才导致请求路径变成带?的格式。我给你两种靠谱的解决办法,都能帮你生成/api/get_user_by_id/userid这种预期的请求路径:
方法一:直接在Path中拼接变量(简单直接)
- 如果你的用户ID是固定值,直接把Path改成
/api/get_user_by_id/你的用户ID就行,比如/api/get_user_by_id/1001 - 如果是动态变量(比如从其他地方获取的userid),先确保你已经通过「用户定义的变量」「CSV数据文件设置」等元件定义了
${userid}变量,然后把Path写成/api/get_user_by_id/${userid}
方法二:使用JMeter内置的路径参数功能(推荐,更规范)
JMeter的HTTP请求元件专门提供了路径参数的配置项,步骤很简单:
- 打开你的HTTP请求元件,在Path输入框里填
/api/get_user_by_id/{user} - 往下翻找到**路径参数(Path Parameters)**区域,点击「添加」按钮
- 新增一行参数:名称填
user,值填${userid}(或者你的实际用户ID值) - 运行测试,JMeter会自动把Path里的
{user}替换成对应的值,生成/api/get_user_by_id/userid的正确路径
为啥之前的配置不对?
你之前是在参数(Parameters)区域添加的参数,这个区域是用来配置查询参数的(就是URL里?后面的键值对),所以才会生成/api/get_user_by_id/?user=userid这种格式,这和你需要的REST路径参数完全是两回事哦。
另外还要注意:有些API接口对路径末尾的斜杠有要求,比如不允许末尾带/,那你就要把Path里的末尾斜杠去掉,改成/api/get_user_by_id/{user},避免因为格式不匹配返回404错误。
内容的提问来源于stack exchange,提问作者Ashu123
相关产品推荐
相关产品推荐

