python自动化测试-D9-学习笔记之一(unittest模块)

'''
unittest 单元测试的一个框架
框架:一堆工具的集合
在说unittest之前,先说几个概念:

TestCase 也就是测试用例

TestSuite 多个测试用例集合在一起,就是TestSuite

TestLoader是用来加载TestCase到TestSuite中的

TestRunner是来执行测试用例的,测试的结果会保存到TestResult实例中,包括运行了多少测试用例,成功了多少,失败了多少等信息
'''

import unittest
import HTMLTestRunner
from BeautifulReport import BeautifulReport

def calc(x,y):
return x/y

class TestCalc(unittest.TestCase):
def test_pass_case(self): # 函数不是test开头的, unittest.main() 不认为这是一个用例,则不会执行
'''这是一条通过的测试用例'''
print('这是通过用例')
res=calc(1,2)
self.assertEqual(0.5,res)
def setUp(self):
print('我是setUp') # 每条用例执行之前 都会执行setUp,可以作为前置条件
def tearDown(self):
print('我是tearDown') # 每条用例执行之后,都会执行tearDown

@classmethod
def setUpClass(cls):
print('我是setUpClass') # 所有用例执行之前,执行一次
@classmethod
def tearDownClass(cls):
print('我是tearDownClass') # 所有用例执行之后,执行一次
def test_case_a(self):
'''这就是一条瞎写的测试用例'''
print('test case is low')

def test_case_b(self):
'''这是一条普通的用例'''
res=(1,5)
self.assertEqual(0.2,res)
def test_fail_case(self):
'''这是一条失败的测试用例'''
print('这是失败用例')
res=calc(9,0)
self.assertEqual(ZeroDivisionError,res)


if __name__ == '__main__':
unittest.main() # 运行当前的python文件里所有的测试用例,执行用例顺序按照函数名字的顺序执行,光标放在哪里,执行哪条用例
# suite = unittest.TestSuite() # 测试用例集合
# suite.addTest(TestCalc('test_pass_case')) # 一个个添加用例
# suite.addTest(TestCalc('test_case_a'))
# suite.addTest(TestCalc('test_fail_case'))
# suite.addTests(unittest.makeSuite(TestCalc))# 添加所有用例
# f = open('report.html','wb') # 测试报告
# runner = HTMLTestRunner.HTMLTestRunner(stream=f,title='测试用例结果',description='这是一条通过的案例') # 测试报告
# runner.run(suite)
# result = BeautifulReport(suite)
# result.report(filename='我的测试报告',description='这是我的测试报告',log_path='')

 

 

 

 

 

 

Python中有一个自带的单元测试框架是unittest模块,用它来做单元测试,它里面封装好了一些校验返回的结果方法和一些用例执行前的初始化操作。

在说unittest之前,先说几个概念:

TestCase 也就是测试用例

TestSuite 多个测试用例集合在一起,就是TestSuite

TestLoader是用来加载TestCase到TestSuite中的

TestRunner是来执行测试用例的,测试的结果会保存到TestResult实例中,包括运行了多少测试用例,成功了多少,失败了多少等信息

下面写一个简单的单元测试用例

下面是一些常用的断言,也就是校验结果

那如何生成一个测试报告呢,需要加入另外一个模块了,HTMLTestRunner,这个模块需要自己安装,使用执行测试用例就会生成一个html的测试报告,里面会有每个测试用例的执行结果,代码如下:

如果我们有很多个模块,每个模块下面都写了很多python文件,每个python文件里面都有测试用例,那怎么把这个目录下的用例都执行了呢,就要先找到这个目录下的所有python文件,然后找到里面的测试用例,逐个执行,代码如下:

我们在后续进行持续集成的时候,要让代码自动运行,就会用到Jenkins了,但是上面产生的测试报告都是html格式的,Jenkins不认识,就在Jenkins里面显示不出来。那咱们就要产生一些Jenkins认识的测试报告,Jenkins认识xml格式的报告,那咱们就产生xml格式的呗,就需要用一个新的模块,xmlrunner,安装直接 pip install xmlrunner即可,代码如下:

然后咱们运行,可以看到在report目录下已经产生了xml格式的报告了,而且还自动把日期加上了

 

转载于:https://www.cnblogs.com/blackbird0423/p/8543286.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
Python自动化测试模块是一组用于编写和执行自动化测试的工具和库。它们提供了丰富的功能和方法,使得测试过程更加简单和高效。以下是一些常用的Python自动化测试模块: 1. unittest模块unittestPython内置的单元测试框架,它提供了一种标准的方式来编写和运行测试用例。它支持测试套件、断言、测试装置等功能,可以方便地进行单元测试。 2. pytest模块:pytest是一个功能强大且易于使用的Python测试框架。它支持自动发现测试用例、参数化测试、夹具(fixture)、插件等特性,可以灵活地组织和运行测试。 3. Selenium模块:Selenium是一个用于Web应用程序测试的工具。它提供了一组API,可以模拟用户在浏览器中的操作,如点击、输入、提交表单等。通过Selenium,可以编写自动化测试脚本来验证Web应用程序的功能和交互。 4. requests模块:requests是一个简洁而优雅的HTTP库,用于发送HTTP请求和处理响应。在自动化测试中,可以使用requests模块发送HTTP请求,模拟用户与后端API进行交互,并对返回的数据进行断言和验证。 5. mock模块:mock是一个用于模拟和替代Python对象的库。在自动化测试中,有时需要模拟一些外部依赖或者隔离一些不可控因素,这时可以使用mock模块来创建虚拟对象,以便进行测试。 6. coverage模块:coverage是一个用于代码覆盖率分析的工具。它可以统计代码中哪些部分被执行过,哪些部分没有被执行到,从而帮助开发者评估测试的完整性和质量。 以上是一些常用的Python自动化测试模块,它们可以帮助开发者编写可靠的自动化测试脚本,并提高软件质量和开发效率。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值