unittest 单元测试框架的组成以及一个基于unittest框架的测试案例

unittest 单元测试框架的四大组成部分

test case
一个 TestCase 的实例就是一个测试用例。什么是测试用例呢?就是一个完整的测试流程,包括测试前准备环境的搭建(setUp),实现测试过程的代码(run),以及测试后环境的还原(tearDown)。元测试(unittest)的本质也就在这里,一个测试用例是一个完整的测试单元,通过运行这个测试单元,可以对某一个功能进行验证。
test suite
对一个功能的验证往往是需要多测试用例的,可以把多的测试用例集合在一起执行,这就产生了测试套件 TestSuite 的概念,它用来组装单个测试用例,而且 TestSuite 也可以嵌套 TestSuite。
test runner
TextTestRunner 是来执行测试用例的,其中的 run(test)用来执行TestSuite/TestCase。测试的结果会保存到 TextTestResult 实例中,包括运行了多少测试用例,成功了多少,失败了多少等信息。
test fixture
对一个测试用例环境的搭建和销毁,是一个 fixture,通过覆盖 TestCase 的 setUp()和 tearDown()方法来实现。这个有什么用呢?比如说在这个测试用例中需要访问数据库,那么可以在 setUp()中建立数据库连接以及进行一些初始化,在 tearDown()中清除在数据库中产生的数据,然后关闭连接。注意 tearDown的过程很重要,要为以后的 TestCase 留下一个干净的环境

unittest 测试框架的简单应用

#coding=utf-8
from selenium import webdriver
import unittest
import HTMLTestRunner 
class Baidu(unittest.TestCase):
  def setUp(self):
    self.driver = webdriver.Chrome()
    self.driver.implicitly_wait(10)
    self.base_url = "http://www.baidu.com/"
    self.verificationErrors = []
  
#百度搜索用例
  def test_baidu_search(self):
    driver = self.driver
    driver.get(self.base_url)
    driver.find_element_by_id("kw").send_keys("QQ")
    driver.find_element_by_id("su").click()

  def tearDown(self):
    self.driver.quit()
    self.assertEqual([], self.verificationErrors)
  
if __name__ == "__main__":
#测试套件
  testunit=unittest.TestSuite()
#添加测试用例到测试套件中
  testunit.addTest(Baidu("test_baidu_search"))
#定义个报告存放路径
  filename = 'D:\\report\\result.html'
  fp =open(filename,'wb')
#定义测试报告
  runner =HTMLTestRunner.HTMLTestRunner(stream=fp,title=u'百度搜索测试报告',description=u'用例执行情况:')
#运行测试用例
  runner.run(testunit)
#关闭报告文件
  fp.close()

猜你喜欢

转载自blog.csdn.net/striver_dl/article/details/105694693