繁体   English   中英

如何在Selenium Python中编写功能/集成测试

[英]How to write functional/integration tests in Selenium Python

我是新手测试,我想

1)测试登录

2)创建一个文件夹

3)将内容(页面)添加到文件夹中

我已经编写了每个测试并且它们工作但显然我想建立彼此的ontop,例如,为了做3我需要做1然后2.为了做2我需要做1.这是我的基本测试结构:

class TestSelenium(unittest.TestCase):
    def setUp(self):
        # Create a new instance of the Firefox driver
        self.driver = webdriver.Firefox()

    def testLogin(self):
        print '1'
        ...

    def testFolderCreation(self):
        print '2'
        ...

    def testContentCreation(self):
        print '3'
        ...

    def tearDown(self):
        self.driver.quit()

if __name__ == '__main__':
    unittest.main()

起初,我认为测试会按顺序运行,第二个功能会在第一个功能停止的地方继续,但我发现情况并非如此,似乎每次测试都会重新开始。 我也意识到它们以相反的顺序执行。 我在终端输出了3,2,1。 我应该如何实现我想要的? 如果我在运行我想要的那个之前调用前面的函数,我觉得它反复测试同样的东西,因为每个函数都是一个测试(例如,在testContentCreation ,我会调用'testLogin'然后调用testFolderCreation并在testFolderCreation调用testLogin 。如果我要做更多的事情, testLogin会被多次调用!)。 我是否应该将前面的步骤转换为常规的非测试函数,并在最后的最后一个(测试函数)中按顺序调用前面的步骤? 如果我这样做那么我猜如果任何步骤失败,最后一个失败,将有一个大的测试功能。

关于如何编写此类测试的任何建议? 另外,为什么测试以相反的顺序运行?

谢谢!

你看到你所看到的,我想,因为你所做的关于假设的一些不正确的假设unittest做。 假设每个测试用例都是一个独立的实体,因此不会强制执行运行顺序。 此外, SetUp()TearDown()在每个案例之前和之后运行。 如果要进行全局设置/拆卸,则需要创建名为SetUpClass()TearDownClass() 您可能还想查看TestSuite类。 更多信息: http//docs.python.org/library/unittest.html

请记住,当unittest库进行测试发现(反映您的测试用例类以查找要运行的测试用例)时,它基本上仅限于查看对象的.__dict__dir()值,这些值本质上是无序的。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM