aomaker
aomaker copied to clipboard
在项目的login.py中,因为login还不算用例就没有去执行set_session_vars(),没有set headers的缓存,导致使用none的update时报错
1.用例执行前先去调用了login的方法,这个方法里包含login接口请求;
2.然而请求时会调用cache.get("headers"),但此时还没有去执行用例导致获取到的为空
3.然而在登录接口中我传递了headers,导致会走到venv/Lib/site-packages/aomaker/base/base_api.py里的183-186行:
if new_headers:
headers = self._headers
headers.update(new_headers)
payload["headers"] = new_headers
4.由于self._headers为None,就会报错:AttributeError: 'NoneType' object has no attribute 'update'
5.所以,我建议在base_api.py的163行获取headers时,给一个默认值:{} 如:self._headers = self.cache.get('headers') if self.cache.get('headers') is not None else {} 从而规避这个问题。
@986379041 登录接口也是走的baseapi,然后调self.send_http去请求的吗?如果是的话,确实有这个问题,可以这么优化下。我这边实际用的过程中,由于登录接口比较简单,并没有用baseapi封装,直接调request请求的,所以没这个问题。