测试框架

测试框架(Test Framework)

对于Linux测试环境,我们选择python为主要开发语言。Test Framework(测试框架)选取标准的python unit框架。

Python Unit框架

python unit,是标准的python单元测试框架,使用这个框架的有openstack中的tempest。它的官方wiki链接为:https://wiki.python.org/moin/PythonTestingToolsTaxonomy
此处对python unit做一个简单介绍:

  • 测试集合(test class),一组功能相似的用例的集合。一个或者多个用例包含于同一个python class下
  • 测试脚手架(test fixture),测试准备前要做的工作和测试执行完后要做的工作。
setUpClass()和tearDownClass(),整个class的所有case执行之前和之后,统一只做一次的步骤。
setUp()和tearDown(),每一个case运行之前和之后都会执行的步骤。视逻辑需要,可以与setUpClass共存。
  • 测试用例(test case),最小的测试单元。以def test_xxxxxx的形式定义在class下面的方法,即为一个case。
  • 测试修饰符(test filter),根据用例的属性设定的python修饰符。
属性修饰:在每条case上面加上 @tag(PRIORITY="P0"),表示此case是P0级别的case,可以使用runner对这个tag进行过滤执行
SKIP修饰:直接忽略@unittest.skip("demonstrating skipping"),或者带条件的忽略@unittest.skipIf(mylib.__version__ < 3, "not supported in this library version")
  • 测试运行器(test runner),运行测试用例的组件或者工具。采用nosetests
运行整个目录下的用例:nosetests -v test/performance/ 
单独运行一个用例:nosetests -v test/performance/test_vm_fio.p:VMFioTest.test_vm_fio_randread_4K  (<文件名>:<类名>.<方法名>)
输出内容定向至xml文件中:nosetests -v test/performance/ --with-xunit --xunit-file=<最终的xml文件名>.xml --xunit-testsuite-name=<每个xml文件中唯一的testsuite名字>
(注:nosetests导出的xml文件,可以直接被Jenkins工具解析)

posted on 2018-07-26 17:24  weijiangping  阅读(342)  评论(0编辑  收藏  举报

导航