unittest管理测试用例

非 Y 不嫁゛ 提交于 2019-12-03 05:14:21
#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()
"""

 

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!