最近寫了一套自動化測試有問題想請教
AuditRecord = (By.XPATH ,'') #稽核紀錄
OddNumber = (By.XPATH, "") #單號
CreateTask = (By.XPATH, "") #建立任務
def Confirm_audit_record(self):
EX1 = self.browser.find_element(*self.AuditRecord)
self.browser.execute_script("arguments[0].click();", EX1)
time.sleep(2)
ODD = '123'
assert self.browser.find_element(*self.OddNumber).text == ODD
assert self.browser.find_element(*self.CreateTask).text == '建立任務'
AuditRecord = (By.XPATH ,'') #稽核紀錄
OddNumber = (By.XPATH, "") #單號
CancelTask = (By.XPATH, "") #取消任務
def Confirm_cancel_record(self):
EX1 = self.browser.find_element(*self.AuditRecord)
self.browser.execute_script("arguments[0].click();", EX1)
time.sleep(2)
ODD = '123'
assert self.browser.find_element(*self.OddNumber).text == ODD
assert self.browser.find_element(*self.CancelTask).text == '已取消'
AuditRecord = (By.XPATH ,'') #稽核紀錄
OddNumber = (By.XPATH, "") #單號
CompletedTask = (By.XPATH, "") # 完成任務
def Confirm_completed_record(self,):
EX1 = self.browser.find_element(*self.AuditRecord)
self.browser.execute_script("arguments[0].click();", EX1)
time.sleep(2)
ODD = '123'
assert self.browser.find_element(*self.OddNumber).text == ODD
assert self.browser.find_element(*self.CompletedTask).text == '已完成'
我想拉一個變數來統一修改ODD裡面的值,這樣我就不用一個一個去改,請問各位大神我該用pytest.fixture做嗎?還是有更好的辦法?
您可以使用pytest.fixture來定義一個ODD變數,然後在測試函數中使用它。這樣您就可以在一個地方修改ODD的值,而不需要在每個測試函數中進行更改。
以下是一個範例程式碼:
import pytest
class TestAuditRecord:
AuditRecord = (By.XPATH ,'') #稽核紀錄
OddNumber = (By.XPATH, "") #單號
CreateTask = (By.XPATH, "") #建立任務
CancelTask = (By.XPATH, "") #取消任務
CompletedTask = (By.XPATH, "") #完成任務
@pytest.fixture(params=['123', '456']) # 定義ODD變數並使用pytest.fixture
def odd_number(self, request):
return request.param
def test_confirm_audit_record(self, odd_number):
EX1 = self.browser.find_element(*self.AuditRecord)
self.browser.execute_script("arguments[0].click();", EX1)
time.sleep(2)
assert self.browser.find_element(*self.OddNumber).text == odd_number
assert self.browser.find_element(*self.CreateTask).text == '建立任務'
def test_confirm_cancel_record(self, odd_number):
EX1 = self.browser.find_element(*self.AuditRecord)
self.browser.execute_script("arguments[0].click();", EX1)
time.sleep(2)
assert self.browser.find_element(*self.OddNumber).text == odd_number
assert self.browser.find_element(*self.CancelTask).text == '已取消'
def test_confirm_completed_record(self, odd_number):
EX1 = self.browser.find_element(*self.AuditRecord)
self.browser.execute_script("arguments[0].click();", EX1)
time.sleep(2)
assert self.browser.find_element(*self.OddNumber).text == odd_number
assert self.browser.find_element(*self.CompletedTask).text == '已完成'
在上面的程式碼中,我們在TestAuditRecord類中定義了一個odd_number pytest.fixture,並設置了兩個參數值('123'和'456')。然後,在每個測試函數中,我們使用odd_number作為單號ODD的值,使用assert語句檢查測試結果。如果您需要更改ODD的值,只需在odd_number的params中添加/刪除參數即可。