我使用Python請求和機器人框架,以使我的自動化測試用例,我有使用要求LIB創造了很多測試方法,如登錄,註銷等一類,這些方法作爲測試用例的關鍵字,現在我很困惑在哪裏初始化的requests.Session()
,因爲測試的情況下運行的這兩個解決方案如下決議:何時創建蟒蛇請求會話對象
解決方案1:初始化在類的init方法requests.Session()
:
import requests
class MyHttpBase():
def __init__(self):
self.s = requests.Session()
def login(self, login_user, password):
data = {'username': login_user, 'password': password}
return self.s.post('http://example.com/login', data=data)
def logout(self):
resp = self.s.get('http://example.com/logout')
return resp
解決方案2:初始化在類的登錄方法的requests.Session()
:
import requests
class MyHttpBase():
def __init__(self):
self.s = None
def login(self, login_user, password):
self.s = requests.Session()
data = {'username': login_user, 'password': password}
return self.s.post('http://example.com/login', data=data)
def logout(self):
resp = self.s.get('http://example.com/logout')
self.s.close()
return resp
我只是想確保登錄用戶具有測試執行過程中只有一個會話,但在我的一些測試用例,測試步驟包括多個用戶登錄的步驟,例如:
測試用例例如:
- 步驟1:用戶A登錄和做某事然後註銷
- 步驟2:用戶B登錄和做某事然後註銷
- ...
如果我把requests.session到類的init方法,用戶A和用戶B具有相同的會話對象。 如果我將requests.session放入登錄方法中,那麼requests.session在類的init方法中設置爲None,這並不好。
難道還有其他的解決方案或建議?
能否請仔細閱讀StackOverflow的指導創建[最小的,完整的和可覈查的示例](http://stackoverflow.com /幫助/ mcve)並增強您的問題?在目前的狀態下,它太模糊,不會向您提供您正在尋找的答案。 –
對不起,我已經編輯了問題,希望有少數的登錄帳戶,如果requests.session是在類__init__方法這是不夠 – yyzhang14922