记录 HttpRunner 踩坑之 base_url 默认读取方式
在写测试用例的时候,经常会写 base_url 在 config 关键字下,但是在执行之后 HttpRunner 报错:
8:35PM ERR assert failed assertMethod=eq checkExpr=status_code checkValue=404 checkValueType=int64 expectValue=200 expectValueType=int64
8:35PM ERR run step end step="test status code 200" success=false type=request
8:35PM ERR [Run] run testcase failed error="abort running due to failfast setting: step validation failed"
这里报错的问题在于,请求的时候接口了 404 状态码。
排查过程
- 接口请求如果返回的是 404 ,那么就需要检查请求的 url 是不是填写正确。
- 如果 url 填写正确,那么检查接口后面的参数填写是否正确。
针对以上两个疑问,第一时间排查 url 的问题。
检查发现,config 下有一个 base_url
关键字和项目目录的.env
是同名的。
删除 .env
文件下的 base_url
是否能够正常执行。
8:38PM INF validate status_code assertMethod=eq checkExpr=status_code checkValue=200 checkValueType=int64 expectValue=200 expectValueType=int64 result=true
8:38PM INF run step end exportVars=null step="test status code 200" success=true type=request
删除之后,执行测试用例成功了,那么可以定位出是同名的问题。
结论
HttpRunner 默认会去读项目目录下的 .env
文件的 base_url
,而不是读 config 关键字下的 base_url
报错类型是 404,原因是我们请求的 url 是错误的,检查了之后,发现 .env
下也有一个 base_url,那么框架默认就去读项目下的 .env
文件,导致了这次报错。只要把 .env
文件下的 base_url 删掉即可。