python的unittest模块提供了一个测试框架,只要我们写一个继承unittest.TestCase的类,类中用setUp做初始化,用tearDown做清理。
主要用到的函数有:
failedinfo表示不成立打印信息failedinfo,为可选参数
self.fail([msg])会无条件的导致测试失败,不推荐使用。
self.assertEqual(value1, value2, failedinfo) # 断言value1 == value2
self.assertTrue(表达式, failedinfo) # 断言value为真
self.assertFalse(表达式, failedinfo) # 断言value为假
# 断言肯定发生异常,如果没发生异常,则为测试失败。
# 参数1为异常,参数二为抛出异常的调用对象,剩余参数为传递给可调用对象的参数。
self.assertRaises(ValueError, self.widget.resize, -1, -1)
调用时机的加self,如self.assertEqual(self.seq, range(10)),self.assertTrue(value > 100)
更详细的教程见:http://pyunit.sourceforge.net/pyunit_cn.html
#coding=utf-8
import random
import unittest
class TestSequenceFunctions(unittest.TestCase):
def setUp(self):
self.seq = range(10)
def test_shuffle(self):
# make sure the shuffled sequence does not lose any elements
random.shuffle(self.seq)
self.seq.sort()
self.assertEqual(self.seq, range(10))
# should raise an exception for an immutable sequence
self.assertRaises(TypeError, random.shuffle, (1,2,3))
def test_choice(self):
element = random.choice(self.seq)
self.assertTrue(element in self.seq)
def test_sample(self):
with self.assertRaises(ValueError):
random.sample(self.seq, 20)
for element in random.sample(self.seq, 5):
self.assertTrue(element in self.seq)
results_fields = [
("username", unicode),
("showid", unicode),
("total_pv", int),
("pubdate", unicode),
("tags", list),
("showname", unicode),
("pg", int),
("ext", str),
]
results_fields_map = dict(results_fields)
class TestDictValueFormatFunctions(unittest.TestCase):
def setUp(self):
self.results = [{
"username": u"疯狂豆花",
"showid": u"130e28f0fe0811e0a046",
"total_pv": 14503214,
"pubdate": u"2012-07-07 01:22:47",
"tags": [
"轩辕剑",
"天之痕"
],
"showname" : u"轩辕剑之天之痕",
"pg" : 1,
"ext" : "mp4"
}
]
def test_format(self):
self.assertTrue(isinstance(self.results, list), "self.results's type must be dict but got {0}".format(type(self.results)))
for r in self.results:
for f in results_fields_map:
value = r.get(f, None)
self.assertTrue(isinstance(value, results_fields_map[f]), u"{0}'s type must be {1} but got {2}".format(value, results_fields_map[f], type(value)))
#self.assertTrue(isinstance(value, results_fields_map[f]))
def test_value(self):
for r in self.results:
self.assertEqual(r["pg"], 1)
self.assertEqual(r["ext"], u"mp4")
if __name__ == '__main__':
# unittest.main() # 用这个是最简单的,下面的用法可以同时测试多个类
# unittest.TextTestRunner(verbosity=2).run(suite1) # 这个等价于上述但可设置verbosity=2,省去了运行时加-v
suite1 = unittest.TestLoader().loadTestsFromTestCase(TestSequenceFunctions)
suite2 = unittest.TestLoader().loadTestsFromTestCase(TestDictValueFormatFunctions)
suite = unittest.TestSuite([suite1, suite2])
unittest.TextTestRunner(verbosity=2).run(suite)
分享到:
相关推荐
unittest与requests结合,可以在测试用例中构造请求,发送到目标接口,然后使用unittest的断言方法验证响应。 在描述中提到的“发送简单的测试报告”,这可能是指使用unittest提供的TestResult类,它可以记录测试的...
### Python Unittest 基本介绍 Python 是一种广泛使用的高级...总之,通过上述内容,我们可以了解到 `unittest` 的基本使用方法以及如何编写有效的测试用例。这将有助于开发者更好地维护代码质量和提高软件的可靠性。
2. **unittest用法**: - **定义测试用例**:继承unittest.TestCase,自定义测试方法,以`test_`开头。 - **断言方法**:如`assertEqual()`, `assertTrue()`, `assertFalse()`等,用于判断预期结果是否与实际结果...
Python+Selenium+Unittest环境搭建详解 Python+Selenium+Unittest环境搭建是自动化测试中的一种重要组件,本文将详细介绍如何搭建Python+Selenium+Unittest环境,并解决在搭建过程中可能遇到的问题。 一、安装...
对于Python 2.5,可能需要使用`easy_install`,命令行输入`easy_install unittest_xml_reporting-1.5.0-py2.5.egg`。 2. **导入库**:在你的测试脚本中,你需要导入`unittest_xml_reporting`库,这样就可以使用它的...
unittest是Python内置的一个测试框架,它提供了丰富的工具和类来编写和运行单元测试。 unittest框架的主要组件包括: 1. `TestCase`: 这是所有测试用例的基础类,你可以创建子类并定义方法来测试你的代码。每个...
总的来说,使用Python3、unittest、requests和ddt进行接口测试,可以帮助我们构建出结构清晰、可维护性高的测试代码,确保接口的稳定性和正确性。通过数据驱动,我们可以方便地管理大量测试数据,提高测试覆盖率,...
Python的unittest框架是Python内置的测试框架,它提供了一套...通过阅读"使用Python的unittest框架来编写测试用例.pdf"、"注意.pdf"、"注意下.pdf"和"说明.pdf"这些文档,你可以深入理解unittest的使用方法和最佳实践。
### Python unittest 工作原理与使用过程解析 ...熟练掌握 `unittest` 的使用方法对于提高代码质量和维护性非常重要。希望本文能帮助读者更好地理解和应用 `unittest`,并在实际项目中发挥其应有的作用。
具体使用方法可能包括导入这个模块,配置测试运行器,然后调用相应的方法运行测试。 总的来说,这些增强功能提高了unittest测试的可读性和效率,使得测试过程更加自动化和智能化。通过这样的方式,开发者可以更快地...
本文将详细介绍如何使用 `unittest` 模块中的 `discover` 方法来批量执行测试用例。 #### 二、unittest discover方法介绍 `unittest` 模块中的 `discover` 方法允许开发者自动查找指定目录下的所有测试用例并运行...
Python作为一种广泛使用的编程语言,提供了多种单元测试框架,其中`unittest`是最为常用的一个。然而,在进行大量重复性的测试用例编写时,如需对同一函数的不同输入进行验证,单纯使用`unittest`可能会显得繁琐且...
Python+Selenium+Unittest自动化测试框架是一个强大的组合,用于高效地进行Web应用的自动化测试。在本示例中,我们看到一个基于这三个组件构建的自动化测试项目,它提供了丰富的功能,如测试用例管理、批量执行、...
4. 断言验证:比较请求响应与预期结果,使用unittest的断言方法判断测试是否通过。 5. 执行测试:使用unittest的命令行工具或IDE运行测试,生成测试报告。 综上所述,这个接口自动化测试框架充分利用了Python的灵活...
本文实例讲述了Python unittest模块用法。分享给大家供大家参考,具体如下: python的unittest模块提供了一个测试框架,只要我们写一个继承unittest.TestCase的类,类中用setUp做初始化,用tearDown做清理。 主要...
1. 使用unittest定义测试类和测试方法。 2. 通过requests库调用接口并处理响应。 3. 从Excel文件中读取测试数据,用于接口请求。 4. 使用HTMLTestRunner生成测试报告。 5. 邮件发送测试报告,使用smtplib和email库...
Python-BeautifulReport是一款专为unittest自动化测试设计的可视化报告生成工具。它旨在提供一种美观、易读的方式来展示测试结果,使测试人员和开发者能够快速理解测试执行的状态,从而提高测试效率和代码质量。 在...
在自动化测试领域,Python结合Selenium与unittest框架的使用非常常见。这个场景中,我们讨论的是如何在多个测试用例间有效地管理和复用浏览器实例,避免每次测试开始时都重新启动浏览器,从而提高效率和资源利用率。...