【笔记】软件测试07——web自动化测试(unittest)

五)unittest框架

unittest框架是什么?为什么要使用unittest框架

  • 在unittest框架中创建测试
  • 在脚本中添加断言
  • 通过unittest框架对脚本进行管理
  • 自定义测试报告
  • unittest框架中的参数化操作

python unittest:

Selenium python unittest framework

01通过unittest框架创建测试

  1. 必须继承于unittest.TestCase类
  2. 可定义setUp和tearDown方法进行初始化,也可使用setUpClass和tearDownClass来进行初始化
  3. 所有测试方法必须以test开头。测试方法会在运行时自动被调用。(凡是以test开头的叫测试方法,否则为普通方法,但可以在测试方法中调用普通方法)
  4. 可在pycharm自带的unittest框架运行,也可以以普通的方式运行。

02Unittest测试类的运行方式:

  1. pycharm中,以python自带的unittets框架来运行测试类。

右键->Run 'Unittests for ... '

凡是显示Run 'Unittests for...'这种菜单,九表示以pycharm内置的unittest模块开运行文件,这样运行不需要任何调用方法。

eg:

setUp方法:每个测试方法执行前执行一次。

tearDown方法:每个测试方法结束后执行一次。

setUpClass方法:整改测试执行前执行一次。

TearDownClass方法:整改测试执行后执行一次。

2.作为一个普通的py文件执行,需要修改配置

如下:

 

运行:

eg:

import unittest
class demo(unittest.TestCase):
    def testFunc1(self):
        print('这是testLogin方法')


    def testFunc2(self):
        print('这是一个测试方法')


if __name__ == '__main__':
    print('测试已经开始,准备调用')
    unittest.main()  # 开始调用定义好的测试类

运行结果:测试已经开始,准备调用会被打印出来

03测试顺序

  1. 测试顺序是不固定的

eg:

2.若是要固定测试顺序 ,可以字母或数字来区分

import unittest
class demo(unittest.TestCase):
  def testFunc1(self):
    print('这是testLogin方法')


  def testFunc2(self):
    print('这是一个测试方法')

1)unittest的基本使用

  • 介绍
    • unittest是python自带的一个模块,可以用它进行单元测试
  • 作用
    • 以上所需selenium操作,仅仅完成了自动化测试的操作部分
    • 关于是否和预期一致的对比,可以借助unittest来完成
  • 为什么使用unittest
    • 能够阻止多个用例去执行
    • 提供丰富的断言方法
    • 提供丰富的日志与测试结果
  • 核心概念
    • TestCase

测试用例:用类的方法,组织对一个功能的多项测试

    • Fixture

夹具,用来固定测试环境

    • TestSuite

测试套件:组织多个TestCase

    • TestRunner

测试执行,用来执行TestSuite,并可以导出测试结果

    • 其他
      • TestResult :测试报告(某种格式的测试结果)
      • TestLoader :根据某一规则找到TestSuite

2)入门案例

三个步骤:

1、创建测试类

需要继承于unittest.TestCase

2、书写测试方法

需要以test开头的示例方法,且不能有参数

3、执行测试(在Pycharm可忽略)

eg:

import unittest
#1
class FirstTest(unittest.TestCase):
  #2
  def test_1(self):
    print("test_1")


  def test_2(self):
    print("test_2")  


#3
if __name__ == '__main__':
  unittest.main()

3)断言

断言是自动化测试中比较预期结果和实际结果的一种方式。

自动化测试若是没有断言,只能叫做自动化操作。

1、Python的断言

  • 用法:
    1. assert逻辑表达式
    2. assert逻辑表达式,字符串
  • 说明

如果逻辑表达式为真,则继续执行

如果逻辑表达式为假,则抛出AssertionError,并包含字符串信息

2、unittest的断言

python自带的断言不够强大,只知道不成立,或者不一致,但不知道哪里不一致。

TestCase有assert开头的方法,非常强大。

断言一旦失败,是不会执行断言下面的语句,会自动停止这个方法。

方法列表:

方法

作用

好处

判断in

assert(a,b)

assertNotIn(a,b)

判断真假

assertTrue

assertFalses

判断是否相等

assertEqual

assertNotEqual

判断类型

assertIsInstancce(a,b)

assertNotIsInstance(a,b)

判断容器内容是否一致

assertListEqual(a,b)

列表是否一致

显示不同之处

assertTupleEqual(a,b)

元组是否一致

显示不同之处

assertSetEqual(a,b)

集合是否一致

显示不同之处

assertDictEqual(a,b)

字典是否一致

显示不同之处

判断小数是否相等

assertAlmostEqual(a,b)

忽略因二进制原因导致的微小误差

assertNotAlmostEqual(a,b)

忽略因二进制原因导致的微小误差

判断大小关系

assertGreater(a,b)

assertGreaterEqual(a,b)

assertLess(a,b)

assertLessEqual(a,b)

判断是否符合正则

assertRegex(s,r)

正则

assertNotRegex(s,r)

判断执行是否有异常

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值