接口测试系列文章4——10分钟带你利用测试框架优化接口测试

在实际工作中,我们利用单元测试框架就可以完全搞定接口测试。单元测试(unittesting),是指对软件中的最小可测试单元进行检查和验证,这里的最小可测试单元通常是指函数或者类。单元测试是即所谓的白盒测试,一般由开发人员负责测试,因为开发人员知道被测试的软件如何完成功能和完成什么样的功能。在python中unittest、pytest模块就是单元测试的一种具体表现形式。

单元测试的范围

• 接口功能测试

• 边界条件测试

• 所有独立执行通路测试

• 各条错误处理通路测试

• 静态代码分析

其中,前两项接口功能测试和边界条件测试就是我们熟知的接口测试!而对于后三项通常都是开发人员通过工具辅助自测完成的,常用的工具括:Sonar、PMD、FindBugs、Checkstyle、Jacoco等等(好多工具都集成到IDE中,开发人员使用非常方便)。

单元测试引入的原因

单元测试提供快速反馈,把bug消灭在开发阶段,减少问题流到集成测试、验收测试和用户,降低了软件质量控制的成本。
不同的开发语言都有对应的单元测试框架

Java Junit3\Junit4\Junit5\TestNG
Python unittest\pytest
C++ CppUnit
.net Nunit
JavaScript Qunit

接口测试在单元测试中的应用

我们以unittest为例讲解,unittest是Python单元测试框架,类似于JUnit框架。基本用法如下:

1)import unittest

2)定义一个继承自unittest.TestCase的测试用例类

3)定义setUp和tearDown,在每个测试用例前后做一些辅助工作。

4)定义测试用例,名字以test开头

5)一个测试用例应该只测试一个方面,测试目的和测试内容应很明确。主要是调用assertEqual、assertRaises等断言方法判断程序执行结果和预期值是否相符。

6)调用unittest.main()启动测试

下面举个实例,来看看unittest如何测试一个简单的函数

测一个简单的加法接口

def add(a, b):

       return a + b

import unittest

class TestAddFunc (unittest.TestCase):

       def test_add1(self):

              self.assertEqual (3, add (1, 2))

       def test_add2(self):

               self.assertEqual (4, add (1, 1))

if __name__ == '__main__':

    unittest.main ()

在pycharm中运行,结果如下:
在这里插入图片描述
把校验get请求的接口测试代码移植到unittest中

源码:

import requests

import json

req="http://rap2api.taobao.org/app/mock/85630/getinfo"

response=requests.get(req)

print(response.text)

code=json.loads(response.text).get('code')

print(code)

if code <=10:

      print ("reponse ok")

else:

      print("reponse fail")

移植后的代码

import requests

import json

import unittest

class TestGetFunc (unittest.TestCase):

     def test_1(self):

        req ="http://rap2api.taobao.org/app/mock/85630/getinfo"

        response = requests.get(req)

         print(response.text)

        code = json.loads(response.text).get('code')

        self.assertLessEqual(code, 10)

if __name__ == '__main__':

    unittest.main()

通过代码实现接口测试非常的简单,他帮我们定义了用例的规则(test开头的方法就是测试用例),给我们提供了断言assertLessEqual(用来判断用例的通过与否),代码执行后提供了测试执行的结果!

断言

在测试框架中都是通过断言来判定用例通过与否的(比if…else…方便很多),unittest中提供很多方法进行断言相关操作,具体如下:

基础断言
在这里插入图片描述
exceptions, warnings, 日志信息断言
在这里插入图片描述

特殊断言
在这里插入图片描述

集合断言
在这里插入图片描述
当然这只是最简单的demo实例,目的是教大家入门!unittest中还有很多强大的功能来支持我们做单元测试工作,由于本文是针对小白,所以这里就不再详细介绍了!如果你想了解更多关于python单元测试的知识可以阅读下面两篇文章:
上手unittest读这篇文章就够了

从0到1上手Pytest

原创不易,如果文章帮到了你,欢迎转发,让更多的朋友受益!

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

测试开发Kevin

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值