自動化測試中 裝飾器的引用例項

2021-10-24 11:28:44 字數 1716 閱讀 2659

1、你是否經常需要統計乙個函式的執行時間,姿勢可以這樣

import time

# 統計程式執行時間裝飾器

def timer(func):

start_time = time.time()

# 這是函式真正執行的地方

func(*args, **kw)

end_time = time.time()

t = end_time - start_time

return t

2、你是否經常需要查詢資料庫中某個表的的字段是否狀態等於某個值,然後才能走後續流程,比如還款訂單狀態,一般需要訂單狀態校驗通過,然後才可以進行後續的還款,因此我們需要去查詢資料庫,但是運氣不一定那麼好,正好查一次就是符合預期結果,因此需要多次重試,這樣的問題也可以借助裝飾器來解決

import pymysql,random

from retrying import retry

@retry(stop_max_attempt_number=3,wait_fixed = 10000) #引用了裝飾器,最大嘗試次數為3次,每次間隔時間為10s

def query_repayment_order():

# 開啟資料庫連線,不需要指定資料庫,因為需要建立資料庫

conn = pymysql.connect('localhost', user="root", passwd="123456",db = "dtest_post_loan")

# 獲取游標

cursor = conn.cursor()

# 建立pythonbd資料庫

result=cursor.execute("select * from repayment_order where order_uuid='9e958b6315944a5f841d754b2d4a1e41' and order_check_status=1")

if result!=1: #order_check_status=1 是訂單狀態校驗通過的意思order_check_status=0 是待校驗的意思

raise exception('your current repayment_order\'s order_check_status !=1 ')

cursor.close() # 先關閉游標

conn.close() # 再關閉資料庫連線

#a=query_repayment_order()

#print(a)

3、你的介面是否經常遇見依賴訪問第三方介面,比如銀行查詢賬戶流水,但是第三方介面未必是穩定的,

@retry(stop_max_attempt_number=3,wait_fixed = 10000) #引用了裝飾器,最大嘗試次數為3次,每次間隔時間為10s

def query_account_balance(productcode,accountno):

url= ""

headers=

data =

p=os.popen("ping guangda.net")

x = p.read()

print(x.count)

p.close()

if x.count('timeout'):

print("ping不通")

else:

rp=requests.post(url,data=json.dumps(data),headers=headers)

print(rp.text)

測試自動化 自動化測試的定義

相關術語 automated testing test tool,automated testing test suite,automated testing test script等.具體參見 http en.wikipedia.org wiki test automation 推薦書籍 1 軟體...

軟體自動化測試例項分析

軟體測試是對創造力和智力非常有挑戰性的任務。測試乙個大型軟體需要的智慧型要超過設計這個程式的智慧型。軟體在它發行之前應當通過徹底的測試,以保證它的可靠性和功能性,不幸的是,測試工程師要覆蓋乙個大型程式的所有情況會感到太麻煩和太費時。確實,軟體的每個部分如能被分別測試到,同時一些指定的路徑也能被測試,...

python裝飾器在介面自動化測試中的應用

在講解裝飾器在介面自動化測試專案的應用之前,我們先來介紹一下python裝飾器到底是個什麼 說裝飾器就不得不提一下函式這個一等公民了,在python中函式有幾個特性先來了解一下 函式的一些特性 在python中函式也是物件,可以把函式賦值給變數,比如下面這樣 def func message pri...