我是新手测试人员,希望能够:
1)测试登录功能
2)创建一个文件夹
3)将内容(一个页面)添加到文件夹中
我已经编写了每个测试案例并且它们都能够正常运行,但是显然我想要在此基础上继续完善,例如为了完成第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
就会被调用很多次!)。所以,我应该把之前的步骤转换为常规的非测试函数,并在最后一个(测试函数)中按顺序调用先前的函数吗?如果我这样做,那么我猜,如果任何一个步骤失败,最后一个也会失败,就会有一个大的测试函数。
你有关于如何编写这种类型测试的建议吗?另外,为什么测试会以相反的顺序运行呢?
谢谢!