今天开始批量执行用例~,场景是这样的:
工作中我们可能有多个模块文件(.py)这些文件根据不同的业务类型或功能,测试案例分布在不同的模块文件下。前面的小示例中,我们的测试用例都是在一个文件中,直接运行的测试套件~,开发阶段或者调试阶段这样做是没毛病的,但是如果是测试运行阶段,我们不可能这个模块文件下的用例执行完毕后,切换另一个模块中的用例继续执行。所以我们需要用的批量执行多个模块文件的测试用例。
首先第一个用例模块的案例是这样的~
1 import unittest #导入unittest库 2 from selenium import webdriver #导入自动化测试selenium中的webdriver 3 4 class baidu_test_1(unittest.TestCase): #写一个baidu_test_1 类,继承unittest中的TestCase类 5 6 @classmethod #方便我们直接调用,不需要实例化类的对象直接调用 7 def setUp(cls): #所有案例执行前,都先执行该方法,初始化 8 cls.driver = webdriver.Chrome() #实例化一个webdriver对象 9 cls.driver.maximize_window() #最大化浏览器窗口 10 cls.driver.implicitly_wait(15) #页面加载慢的情况,我们设置等待时长15秒 11 cls.driver.get(r'') #打开百度的首页 12 13 @classmethod 14 def tearDown(cls): #所有案例执行后,执行该方法 15 cls.driver.quit() #关闭浏览器 16 17 '''测试用例''' 18 def test_baidu_lianjie(self): #百度链接测试的用例 19 '''百度首页:测试新闻链接,跳转后的链接地址是否正确''' 20 self.driver.find_element_by_link_text('新闻').click() #点击新闻链接后,获取新闻链接:self.driver.current_url 21 self.assertEqual(self.driver.current_url,'') #用获取到的链接,和实际链接做对比,看是不是相等 22 23 '''if __name__ == '__main__'的意思是:当.py文件被直接运行时,if __name__ == '__main__'之下的代码块将被运行; 24 当.py文件以模块形式被导入时,if __name__ == '__main__'之下的代码块不被运行。''' 25 if __name__ == '__main__': 26 unittest.main(verbosity=2)