2013-07-31 59 views
-1

我的問題實際上是一個設計問題。我使用python + selenium進行自動化。 PyUnit是使用的單元框架。我在Excel中有一個工作表,其中有2列 - TestCaseID和Run。 TestCaseID將在其中包含測試用例ID,並且Run將具有Y或N,表示該測試用例是否應該可運行。我想要做的是從這張表中讀取一個特定的測試用例Id,看看它有什麼作爲運行值,Y或N.如果它是Y,那麼這個測試用例將由單元框架執行,否則它會不會運行。如何通過Excel工作表控制測試用例?

這裏是一個測試用例的摘錄我寫:

`類Test_ID_94017(unittest.TestCase生成):

ex = Excel() 
def setUp(self): 
    self.ex.setUpASheetInExcel('Select_Test_Cases_To_Run') 
    if self.ex.getTestCaseRunStatusFromExcel("94017") == "Y": 
     self.driver = Browser().createBrowserDriver() 
     self.driver.maximize_window() 
     self.driver.implicitly_wait(15) 
     self.ex.setUpASheetInExcel('Login') 
    else: 
     return 

def test_CCPD_Regression001_PER_Custom_Check(self): 
    //do something 

爲getTestCaseRunStatusFromExcel(testCaseId)方法的定義是:

`DEF getTestCaseRunStatusFromExcel(個體,testCaseId):

i=1 
    while self.workSheet.cell_value(i,0).value != testCaseId: 
     i+=1 
    return self.workSheet.cell_value(i,1).value 

這裏是我所面臨的問題:

  1. 我應該如何給一個條件,我現有的代碼,以便只爲Y,我的測試用例執行?我應該在setUp方法中爲該測試用例類提供if條件,正如我在上面的代碼中提到的那樣?

  2. 是我試圖迭代一列(Excel表)中的行正確的方式,直到我找到我的測試用例ID並獲得其相應的運行值(Y或N)?

請幫忙!

回答

1

我爲selenium + testng套件實施了類似的設計。從excel中讀取執行標誌後,我動態創建testng.xml並運行相同的xml。 TestNG爲xml提供了動態創建和執行的功能。不知道你在PyUnit中是否有類似的東西。我希望這給你一些想法。

+0

對不起,但我不明白你的解決方案。動態生成的xml如何幫助您控制測試用例執行流程? –

+1

只有在excel中標記爲執行的腳本被添加到動態生成的xml中。 – Akbar