aomaker icon indicating copy to clipboard operation
aomaker copied to clipboard

在项目的login.py中,因为login还不算用例就没有去执行set_session_vars(),没有set headers的缓存,导致使用none的update时报错

Open 986379041 opened this issue 2 years ago • 1 comments

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 avatar Jan 16 '24 08:01 986379041

@986379041 登录接口也是走的baseapi,然后调self.send_http去请求的吗?如果是的话,确实有这个问题,可以这么优化下。我这边实际用的过程中,由于登录接口比较简单,并没有用baseapi封装,直接调request请求的,所以没这个问题。

ae86sen avatar Jan 16 '24 08:01 ae86sen