Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/excel/25.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 如何通过excel工作表控制测试用例的运行?_Python_Excel_Selenium_Frameworks_Webdriver - Fatal编程技术网

Python 如何通过excel工作表控制测试用例的运行?

Python 如何通过excel工作表控制测试用例的运行?,python,excel,selenium,frameworks,webdriver,Python,Excel,Selenium,Frameworks,Webdriver,我的问题实际上是一个设计问题。我正在使用python+selenium实现自动化。PyUnit是使用的单元框架。我在excel中有一个工作表,其中有两列—TestCaseID和Run。TestCaseID将包含TestCaseID,Run将包含Y或N,表示该测试用例是否应可运行。我试图做的是从这个表中读取一个特定的测试用例Id,看看它的运行值是Y还是N。如果是Y,那么这个测试用例将由单元框架执行,否则它将不会运行 下面是我编写的一个测试用例的摘录: `类测试\u ID\u 94017(unitt

我的问题实际上是一个设计问题。我正在使用python+selenium实现自动化。PyUnit是使用的单元框架。我在excel中有一个工作表,其中有两列—TestCaseID和Run。TestCaseID将包含TestCaseID,Run将包含Y或N,表示该测试用例是否应可运行。我试图做的是从这个表中读取一个特定的测试用例Id,看看它的运行值是Y还是N。如果是Y,那么这个测试用例将由单元框架执行,否则它将不会运行

下面是我编写的一个测试用例的摘录:

`类测试\u ID\u 94017(unittest.TestCase):

getTestCaseRunStatusFromExcel(testCaseId)方法的定义为:

`def getTestCaseRunStatusFromExcel(self,testCaseId):

以下是我面临的问题:

  • 我应该如何在现有代码中给出一个条件,以便只对Y执行测试用例?我是否应该像我在上面的代码中提到的那样,在测试用例类的setUp方法中给出if条件

  • 在找到我的测试用例ID并获得其相应的运行值(Y或N)之前,我尝试迭代(excel工作表的)列中的行的方式是否正确


  • 请帮忙

    我为selenium+testng套件实现了类似的设计。从excel读取执行标志后,我动态创建testng.xml并运行相同的xml。TestNG提供了动态创建和执行xml的特性。不确定PyUnit中是否有类似的内容。我希望这能给你一些想法。

    对不起,我不明白你的解决方案。动态生成的xml如何帮助您控制测试用例执行流?只有标记为在excel中执行的脚本才会添加到动态生成的xml中。
    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
    
        i=1
        while self.workSheet.cell_value(i,0).value != testCaseId:
            i+=1
        return self.workSheet.cell_value(i,1).value