zoukankan      html  css  js  c++  java
  • 第二个月课堂012讲解 _ Unittest框架(中)_高级讲师肖sir



    import unittest # 导入unittest框架
    # 单元测试框架=unittest
    class A:
    class C(object):
    class D(unittest.TestCase):
    #定义一个类来继承unittest框架中的TestCase类
    '''熟悉框架中的语法和格式要求'''
    def fun(self): #在类中定义了一个实例方法
    pass #占位符
    @classmethod
    def setUpClass(cls): #cls=class类的方法
    print('类的开始')
    @classmethod
    def tearDownClass(cls):
    print('类的结束')
    '''类的开始和类的结束在框架中不管有多少条用例都只执行一次'''
    def setUp(self): #self实例方法
    print('方法的开始')
    def tearDown(self):
    print('方法的结束')
    '''在框架中方法,有多少条用例就执行多少次'''
    def test03(self):
    print('这是第三条用例')
    '''
    在用例中:执行的规则要求 阿拉伯数字 0-9.。。从小到大执行
    纯英文小写:a-z
    纯英文大写:A-Z'''
    def test01(self):
    print('这是第一条用例')
    '''
    在框架中用例的命名规则必须要:test开头的,如不是test开头
    则不会被运行切记'''
    def test02(self):
    print('这是第二条用例')
    if __name__ == '__main__':
    '''在类中如要调用类中的方法:创建一个对象,用对象调用方法'''
    unittest.main()
    '''main函数它是一个执行函数(执行框架中的用例的)'''
    ============================================================================
    #
    # import unittest # 导入单元测试框架--开发同事经常使用的框架
    # from selenium import webdriver
    # import time
    # class D(unittest.TestCase): #定义一个类引用框架中的TestCase类
    # @classmethod
    # def setUpClass(cls): #cls=class 类
    # print('方法的开始')
    # @classmethod
    # def tearDownClass(cls):
    # print('方法的结束')
    # def setUp(self): #self实例方法 开始
    # self.driver=webdriver.Chrome()
    # self.driver.get('http://www.baidu.com')
    # self.driver.maximize_window()
    # self.driver.implicitly_wait(10)#隐式等待
    # def test01(self): #test用例1
    # self.driver.find_element_by_id('kw').send_keys('多测师')
    # time.sleep(2)
    # self.driver.find_element_by_id('su').click() #点击百度一下
    # def test02(self):#用例2
    # self.driver.find_element_by_id('kw').send_keys('你好呀')
    # time.sleep(2)
    # self.driver.find_element_by_id('su').click()
    # def tearDown(self): #方法的结束
    # time.sleep(4) #等待4秒中
    # self.driver.close() #关闭窗口释放资源
    # '''自动帮你关闭当前窗口'''
    # if __name__ == '__main__':
    # unittest.main()
    # # '''main函数在框架中的作用是执行所有的用例(限制当前的类中)'''


    # import unittest #导入单元测试框架
    # from selenium import webdriver
    # from time import sleep
    # class A(unittest.TestCase):#通过类来继承单元测试框架中的TestCase类
    # '''此框架测试人员主要用来做自动化封装'''
    # def setUp(self): #测试环境的地址
    # self.driver=webdriver.Chrome() #窗口一个浏览器对象
    # self.driver.get('http://www.baidu.com')
    # self.driver.maximize_window()#窗口最大化
    # self.driver.implicitly_wait(10)#隐式等待
    # def test01(self): #用例1
    # self.driver.find_element_by_id('kw').send_keys('多测师')
    # sleep(2)
    # self.driver.find_element_by_id('su').click()#点击百度一下
    # def test02(self): #用例2
    # self.driver.find_element_by_id('kw').send_keys('你好呀')
    # sleep(2)
    # self.driver.find_element_by_id('su').click()#点击百度一下
    # def test03(self):#用例3
    # self.driver.find_element_by_link_text('hao123').click()#点击链接
    # def tearDown(self):
    # sleep(3)
    # self.driver.close()#关闭当前窗口释放资源
    # # 选择性执行test 用例:通过创建一个容器,把所有的用例放到容器中然后在选择
    # # 可以单选也可以多选
    # def run(): #定义一个普通函数里面封装的就是容器用来存放我们的测试用例的
    # suit=unittest.TestSuite() #创建一个容器对象(unittest来调用的),
    # # 后面一定要加一个小括号
    # # suit.addTest(A('test01')) #单项选择用例
    # suit.addTests([A('test02'),A('test03')]) #多项选择用例
    # return suit
    # if __name__ == '__main__':
    # # unittest.main() #执行函数且执行当前框架中的所有用例test
    # ru_n=unittest.TextTestRunner()#运行
    # ru_n.run(run())


    # import unittest #导入单元测试框架
    # class A(unittest.TestCase): #定义一个类继承框架中的TestCase类
    # @classmethod
    # def setUpClass(cls):#cls类
    # print('类的开始')
    # @classmethod
    # def tearDownClass(cls):
    # print('类的结束')
    # '''类的开始和结束在语法中不是固定语法,可要可不要'''
    # def setUp(self):
    # print('方法的开始')
    # def tearDown(self):
    # print('方法的结束')
    # '''方法的开始和结束也不是固定语法,需要则写否者可不写'''
    # def test01(self):
    # print('这是一条用例')
    # '''在框架中用例的定义是:test 一定要符合test语法否者不会执行
    # 运行规则:数字0-9.。从小到大执行
    # 英文a-z A-Z 从小到大执行
    # '''
    # if __name__ == '__main__':
    # unittest.main()
    # '''main函数是框架中的执行函数,执行所有的用例一次性'''

    import unittest # 导入单元测试框架
    # from selenium import webdriver
    # import time
    # #from less.HTMLTestRunner3 import HTMLTestRunner # 生成测试报告
    #
    #
    # class A(unittest.TestCase): # 定义一个类继承框架中的TestCase类
    # def setUp(self):
    # self.drvier = webdriver.Chrome()
    # self.drvier.get('http://www.baidu.com')
    # self.drvier.maximize_window()
    # self.drvier.implicitly_wait(10)
    #
    # def test01(self):
    # self.drvier.find_element_by_id('kw').send_keys('多测师')
    # self.drvier.find_element_by_id('su').click()

    # def test02(self):
    # self.drvier.find_element_by_id('kw').send_keys('你好呀')
    # self.drvier.find_element_by_id('su').click()
    # def test03(self):
    # self.drvier.find_element_by_id('kw').send_keys('多测师52班')
    # self.drvier.find_element_by_id('su').click()
    # def tearDown(self):
    # time.sleep(4) # 线程等待
    # self.drvier.close() # 关闭当前窗口释放资源
    #
    #
    # def fun():
    # suit = unittest.TestSuite() # 创建一个容器
    # # suit.addTests([A('test01'),A('test02'),A('test03')])
    # suit.addTest(A('test01')) # 单个
    # return suit
    #
    #
    # if __name__ == '__main__':
    # run = unittest.TextTestRunner()
    # run.run(fun())

    # 定义一个路径:文件放置那个地方名称叫什么
    # path='E:pycharmduoceshi_52less/'
    # tim_e=time.strftime('%Y-%m-%d-%H-%M-%S')
    # repot_path=path+tim_e+'-rpot.html'
    # # E:pycharmduoceshi_52less /2020-09-15-15-07-59 - rpot.html
    # f =open(repot_path,'wb')#将内容已二进制格式写入到空文件中
    # runner=HTMLTestRunner(stream=f,title='百度测试用例',description='用例执行情况如下')
    # runner.run(fun())
    '''
    把今天讲的内容进行调试:
    调试完成后知道和熟悉它们执行的原理,
    完成一个作用:
    根据论坛:写5条用例且生成测试报告完成后截图发群里'''
    #
    # from less.HTMLTestRunner3 import HTMLTestRunner # 生成报告的文件
    # import unittest # 自动收搜需要引用单元框架中的方法
    # import time # 拼接时间用例保证执行的时候报告文件它可以不一样
    # import os # 路径模块
    #
    # # 在此文件中通过自动收搜的方式来收搜
    # # less4文件中封装好的用例来执行且生成报告
    # cm_path = os.path.abspath(os.path.realpath(os.getcwd()))
    # # print(cm_path) #E:pycharmduoceshi_52less
    #
    # pa = 'E:pycharmduoceshi_52' # 项目路径
    #
    # '''生成当前文件包的一个绝对路径或者目录
    # 因为要在此路径来找文件里面的代码执行'''
    # '''生成一个时间作用就是让报告的文件名称不重复'''
    # tim_e = time.strftime('%Y-%m-%d-%H-%M-%S')
    # # print(tim_e) #2020-09-15-15-33-01
    # '''当前路径是存放报告包的绝对路径'''
    # repot_a = r'E:pycharmduoceshi_52 epot_a/'
    # '''拼接一个html报告的路径和当前报告文件的名称'''
    # reopt_path = repot_a + tim_e + '-repot.html'
    #
    #
    # # print(reopt_path)
    # # E:pycharmduoceshi_52 epot_a/2020-09-15-16-41-22-repot.html
    # def fun1(): # 定义一个函数
    # dis_cover = unittest.defaultTestLoader.discover(start_dir=pa, pattern='less4*.py')
    # # 通过:discover方法在cm_path路径下模糊匹配less开头且.py结尾的文件中的代码
    # f = open(reopt_path, 'wb')
    # runner = HTMLTestRunner(stream=f, title='百度用例', description='用例详细如下')
    # runner.run(dis_cover) # 通过run来执行当前dis_cover匹配里面的文件中的代码
    #
    #
    # if __name__ == '__main__':
    # fun1()
    '''
    500条用例我只想执行其中的200条,剩余的300条我不执行怎么办?
    可以通过dicover 方法来进行选择
    返回的是一个列表
    通过for循环去遍历你的用例,在通过 if 判断实现选择执行'''


  • 相关阅读:
    log4j学习
    数据库索引
    php 通过exec 创建git分支失败
    Nginx 常用全局变量 及Rewrite规则详解
    Jetbrains phpstorm pycharm 免费授权注册码
    Nginx return 关键字配置小技巧
    PHP 加密 和 解密 方法
    Nginx 禁用IP IP段
    Yii2 捕获错误日志
    transform 实现响应式绝对居中
  • 原文地址:https://www.cnblogs.com/xiaolehua/p/14091840.html
Copyright © 2011-2022 走看看