目录
前言:
自动化测试框架是一种用于自动执行测试用例的软件工具。它可以帮助开发人员更快地执行测试用例,并减少手动测试的工作量和时间。在 Python 中,可以使用多种自动化测试框架来实现自动化测试,包括 Selenium、Appium、Pytest 等。
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() 实现在用例执行前布置环境,以及在用例执行后清理环境
作为一位过来人也是希望大家少走一些弯路
在这里我给大家分享一些自动化测试前进之路的必须品,希望能对你带来帮助。
(软件测试相关资料,自动化测试相关资料,技术问题答疑等等)
相信能使你更好的进步!
点击下方小卡片