一、說明:
setup是在每個test方法執行前執行,有多少個test方法,就執行多少次,setupclass方法是在所有test方法執行前執行,只執行一次。
二、問題描述:前幾天在網上查了,看到selenium中別人給解決方案是引用前乙個.py檔案中的driver。我這裡沒有這樣做,試了兩種方案,詳見後文。
三、解決方案:
方法一:將driver初始化寫在全域性變數中,所有的測試.py檔案都引用這個全域性變數。
如下, driverutil.py中
)# 初始化driver
在測試的.py中,匯入driver這個全域性變數
from common.driverutil import driver
class
settest
(unittest.testcase)
:'''設定'''
@classmethod
defsetupclass
(cls)
: logging.info(
'*****===setupclass*****=='
) cls.driver = driver # 全域性變數
cls.set_view = setview(cls.driver)
方法二:單例模式如下,在driverutil.py中:
class
driverutil
(object):
'''driver工具類'''
__instance =
none
# 定義乙個類屬性
__instance_lock = threading.lock(
)# 加鎖
@classmethod
defget_driver
(cls)
:'''獲取driver'''
with driverutil.__instance_lock:
ifnot driverutil.__instance:
)return driverutil.__instance
class
settest
(unittest.testcase)
:'''設定'''
@classmethod
defsetupclass
(cls)
: logging.info(
'*****===setupclass*****=='
) cls.driver = driverutil(
).get_driver(
)# 單例
cls.set_view = setview(cls.driver)
關於Appium執行用例過程中問題處理辦法
1.執行環境 1.1 windows10 64位系統 1.2 華為榮耀v10 android 9 2.2.1手機開發者模式中usb除錯,關閉adb安裝 2.2修改檔案1 注釋中這一行 2.3修改檔案2 注釋中那一行 3.1呼叫aapt.exe 程式路徑 d androidsdk build tool...
Quartz中Job只執行一次
quartz中job只執行一次 參考 url 目的是讓前台使用者不等待執行完,悄悄地在後台執行 下面是1秒鐘後立即執行,並且只執行一次。trigger trigger triggerbuilder.newtrigger withidentity trigger3 group1 startat new...
單例模式 只執行一次初始化
new 方法是構建物件的方法,init 方法是初始化物件的方法。概念 確保某乙個類只有乙個例項,而且自行例項化並向整個系統提供這個例項,這個類稱為單例類,單例模式是一種物件建立型模式。目的 單個程序中只存在乙個類的例項,從而實現資料共享,節省系統開銷,防止io阻塞 方法1 使用模組建立單例 檔案ca...