test suite python - webdriver
我是python的新手,我正在尝试创建自己的测试套件。
主要的目的是在不同的浏览器上执行相同的测试,这就是为什么我使用变量浏览器,在测试中使用它来调用webdriver。
我有这个:
def test_01(self,browser):
def test_02(self,browser):
我的套房:
1 2 3 4 | def suite(): test_suite = unittest.TestSuite() suite.addTest(unittest.makeSuite(Test01)) return test_suite |
主要:
1 2 3 4 5 6 | if __name__ =="__main__": suite1 = unittest.TestSuite() self = Test01() suite1.addTest(Test01.test_01(self, 'firefox')) suite1.addTest(Test01.test_02(self, 'firefox')) unittest.TextTestRunner(verbosity=2).run(suite()) |
当我尝试执行该脚本时,第一个测试是执行,第二个测试没有,我得到以下错误:
Traceback (most recent call last):
File"SuiteWebMail.py", line 138, in
suite1.addTest(Test01.test_01(self, 'firefox'))
File"c:\Python34\lib\unittest\suite.py", line 50, in addTest
raise TypeError("{} is not callable".format(repr(test)))
TypeError: None is not callable
先感谢您
C
也许不是Pythonic的方式,但我找到了一个解决方案:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 | class Test01(unittest.TestCase): def test_login(self): self.page ="https://myWebPageAddress" self.username ="userName" self.password ="Password" self.browser_label = ['firefox', 'chrome', 'ie'] for index in range(len(self.browser_label)): self.browser_name = self.browser_label[index] if self.browser_name == 'firefox': logger.debug("Opening [" + self.browser_name +"] ...") self.driver = webdriver.Firefox() if self.browser_name == 'chrome': logger.debug("Opening [" + self.browser_name +"] ...") self.driver = webdriver.Chrome() if self.browser_name == 'ie': logger.debug("Opening [" + self.browser_name +"] ...") self.driver = webdriver.Ie() try: logger.info("Test_01::Case_01::Login OK") Test01.case_01(self) except BaseException as e: logger.fatal(e.value) logger.info("End") self.driver.close() def case_01(self): .... .... |
我希望这对某人有所帮助。