python自动化测试报告框架_自动化测试框架——python 篇

本文介绍了Python的unittest模块作为自动化测试框架的使用,包括测试装置、测试用例、测试套件和测试执行器的概念及流程。unittest支持setUp和tearDown方法以设置和清理测试环境,提供了模块化的测试结构,便于测试管理和结果报告。通过示例代码展示了如何编写和执行测试用例。
摘要由CSDN通过智能技术生成

python可以作为自动化编程语言,其中,pyunit提供了一套自动化测试框架

1、自动化测试(unittest)要达到的目标

支持自动化测试

让所有的测试脚本共享 开启 (setup) 和 关闭 (shutdown) 的代码

可以通过集合(collections)的方式来组织测试用例脚本

将所有的测试脚本从测试报告框架中独立出来

2、unittest 所做的支持

(1)重要概念

测试装置(test fixture)

为一个或者多个测试用例做一些准备工作,例如:连接一个数据库,创建一个目录,或者开启一个进程

测试用例(test case)

测试用例是测试行为的最小单元,通过对一些输入输出值的对比来进行测试检查

测试套件(test suite)

将测试用例 或者 测试用例集合 聚合组织起来的集合。可以批量执行一个测试套件内所有的测试用例

测试执行器(test runner)

组织安排测试脚本执行活动的组件。测试执行器通过一些图形界面,文本界面或者返回一些特殊的值来展示测试脚本的测试结果。主要用于生成测试报告

(2)具体流程

第一步,testloader 根据传入的参数获得相应的测试用例,即对应具体的测试方法

第二步,makesuite 把所有的测试用例组装成 testsuite(测试用例集合)

第三步,把 testsiute 传给 testrunner(执行器)进行执行

第四步,加载,开始你的测试

备注:加载方式有 2 种,如下

①一种是通过 unittest.main() 来启动单元测试的测试模块:加载自身模块main,提取自身模块测试类中的测试用例,生成 testsuite,再传递给 testrunner 执行测试

②一种是添加到 testsuite 集合中再加载所有的被测试对象:根据传输的参数获取测试用例,生成 testsuite,再传递给 testrunner 执行测试

(3)特点

测试类继承于 unittest.TestCase

一个测试类可以管理多个测试脚本函数

测试脚本函数名称需要以 test_开头

一个测试类里面的所有的测试函数共享 setUp 和 tearDown 函数

(4)实例 # coding:utf-8

#基本的自动化测试脚本demo.py

import unittest

class TestMethods(unittest.TestCase):

def setUp(self):

print 'init by setUp...'

def tearDown(self):

print 'end by tearDown...'

#注意:以下方法名所带的数字可以排序,决定执行的先后

def test_1upper(self):

self.assertEqual('foo'.upper(), 'FOO')

def test_2isupper(self):

self.assertTrue('FOO'.isupper())

self.assertFalse('Foo'.isupper())

self.assertTrue('Foo'.isupper())

def test_3split(self):

s = 'hello world'

self.assertEqual(s.split(), ['hello', 'world'])

#加载方式1

if __name__ == '__main__':

unittest.main()

#加载方式2

if __name__ == '__main__':

# 装载测试用例

test_cases = unittest.TestLoader().loadTestsFromTestCase(TestMethods)

# 使用测试套件并打包测试用例

test_suit = unittest.TestSuite()

test_suit.addTests(test_cases)

# 运行测试套件,并返回测试结果

test_result = unittest.TextTestRunner(verbosity=2).run(test_suit)

#生成测试报告

print("testsRun:%s" % test_result.testsRun)

print("failures:%s" % len(test_result.failures))

print("errors:%s" % len(test_result.errors))

print("skipped:%s" % len(test_result.skipped)

3、自动化测试框架优点

①模块化,将一些基础的、共有的步骤代码独立为单独的模块,实现代码复用

②用例的组织架构划分清晰。这样利于查找、维护

③用例执行后能导出结果,进行统计,并显示错误

④用 setUp() 和 tearDown() 实现在用例执行前布置环境,以及在用例执行后清理环境

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值