vlambda博客
学习文章列表

5分钟带你利用测试框架优化接口测试(干货)

单元测试概念


在实际工作中,我们利用单元测试框架就可以完全搞定接口测试。

单元测试(unittest),是指对软件中的最小可测试单元进行检查和验证,这里的最小可测试单元通常是指函数或者类。单元测试是即所谓的白盒测试,一般由开发人员负责测试,因为开发人员知道被测试的软件如何完成功能和完成什么样的功能。在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 unittestclass 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 requestsimport jsonreq="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 requestsimport jsonimport unittestclass 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中提供很多方法进行断言相关操作,具体如下:

基础断言


5分钟带你利用测试框架优化接口测试(干货)

exceptions, warnings, 日志信息断言


5分钟带你利用测试框架优化接口测试(干货)


特殊断言


5分钟带你利用测试框架优化接口测试(干货)

集合断言


5分钟带你利用测试框架优化接口测试(干货)


当然这只是最简单的demo实例,目的是教大家入门!unittest中还有很多强大的功能来支持我们做单元测试工作,由于本文是针对小白,所以这里就不再详细介绍了!如果你想了解更多通过代码进行接口测试的知识,来参加我主讲的接口测试训练营

劲爆福利

如果你有以下几点困惑的小伙伴们,注意了!


1、测试多年,只会看代码,不会写代码,甚至只会点点点

2、想求职高薪岗位,但是技能没有优势,拿不出手,不敢面试

3、不想花费高昂的学费学习,想学习性价比高又实用的课程

4、看了很多的资料,花费大量的时间,但是学习没有头绪

5、对测试行业越来越迷茫,不知道方向在哪里?

如果这几点你统统中招,那么鲁德自动化接口实战训练营是你的福音,手把手教你上手代码,限时报名只需9.9元,让你摆脱不会写代码的魔咒,让你的技能跃上新台阶!轻松面试拿到高薪!

转发1名好友报名,直接免单学习哦!