2013-07-31 22 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