#coding=utf-8 from selenium import webdriver from time import sleep import unittest #导入unittest库 import HTMLTestRunner #创建一个类,并且该类继承unittest.case类 class Test_baidu(unittest.TestCase): #初始环境,每一个用例执行时都会先执行这里的代码 def setUp(self): self.dr=webdriver.Chrome() #调用指定的浏览器并赋值给dr self.dr.maximize_window() self.dr.implicitly_wait(10) #智能等待作用和sleep一样 self.dr.get('https://www.baidu.com') sleep(2) #测试用例---执行搜索新方硕--测试用例的脚本 def test_case2(self): self.dr.find_element_by_id('kw').send_keys(u'新方硕') sleep(3) #测试用例--执行搜索新东方 def test_case1(self): self.dr.find_element_by_id('kw').send_keys(u'新东方') sleep(3) #还原环境(结束)---用例执行后关闭浏览器(扫尾工作) def tearDown(self): self.dr.close() #方案一 if __name__=="__main__": unittest.main() unittest.main() #他可以将一个单元测试的模块变为可以执行的脚本,所谓main()的方法使用了 # unittest中testloader类来搜索以test开头的测试用例,并自动执行 # main()执行顺序是以ascii用来执行顺序0-9,A-Z,a-z """ """ #方案二:用例的执行顺序,根据你添加的顺序进行执行 if __name__=='__main__': suite=unittest.TestSuite() #构造一个容器用来存放我们的测试用例 suite.addTest(Test_baidu('test_case2')) #添加类中的测试用例 suite.addTest(Test_baidu('test_case1')) #添加类中的测试用例 suite.addTests([Test_baidu('test_case2'),Test_baidu('test_case1')]) run=unittest.TextTestRunner() run.run(suite) #调用对象中的run的方法执行测试套件:suite """ """ #方案三执行顺序与方案一一样 if __name__=='__main__': #批量执行用例 case_dir=r'D:\work_doc\pycharm\python_selenium' discover=unittest.defaultTestLoader.discover(case_dir,pattern='teach_unittest_frame.py' ,top_level_dir=None) run=unittest.TextTestRunner() run.run(discover) """ """ #生成测试报告 suit = unittest.TestSuite() suit.addTest(unittest.makeSuite(Test_baidu)) file1 = open('d:\\test3.html','wb') runner = HTMLTestRunner.HTMLTestRunner(file1,title=u'用例报告',description=u'用例描述') runner.run(suit) file1.close() """