zoukankan      html  css  js  c++  java
  • unittest(执行用例)

    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'))  #添加类中的测试用例
         run=unittest.TextTestRunner()
         run.run(suite)  #调用对象中的run的方法执行测试套件:suite
    
    #或者如下
    
     if __name__=='__main__':
         suite=unittest.TestSuite()
         suite.addTests([Test_baidu('test_case2'),Test_baidu('test_case1')])
         run=unittest.TextTestRunner()
         run.run(suite)
    
    #还或者如下
    
     if __name__=='__main__':
         suite=unittest.TestSuite()
         testcates=[Test_baidu('test_case2'),Test_baidu('test_case1')]
         suite.addTests(testcases)
         run=unittest.TextTestRunner()
         run.run(suite)
    • unittest.TestSuite() 执行用例问题如下:
      • 步入正轨解决方案出炉,在右键点击 run 时,发现 run 后面为 unittest.in filename,以前执行文件时都是 Run fliename,也就是说整个文件都是按照 unittest 模式来执行的  

    • 看到了 两个执行的不一致,两个办法如下:
      • 点击控制台Run来运行  

      • 点击 控制台的右上角见图  

      • 此时右键执行就会发现不在 unittest 模式下了哦  
  • 相关阅读:
    for of 与 for in的区别2
    jQuery的deferred对象详解
    poj 3128 Leonardo's Notebook(置换的幂)
    解决shell脚本中 echo 怎么写入换行到文件
    【解答】关于内核中没开MMU之前的虚拟地址物理地址转换问题
    iOS中怎样加入自己定义的字体
    Android学习笔记(十四)——在执行时加入碎片(附源代码)
    Threads and Anonymous Classes in JAVA
    与一线Linux嵌入式开发project师的对话
    公司实习经验分享
  • 原文地址:https://www.cnblogs.com/ZhengYing0813/p/11696807.html
Copyright © 2011-2022 走看看