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 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中还有很多强大的功能来支持我们做单元测试工作,由于本文是针对小白,所以这里就不再详细介绍了!如果你想了解更多通过代码进行接口测试的知识,来参加我主讲的接口测试训练营吧
劲爆福利
如果你有以下几点困惑的小伙伴们,注意了!
1、测试多年,只会看代码,不会写代码,甚至只会点点点
2、想求职高薪岗位,但是技能没有优势,拿不出手,不敢面试
3、不想花费高昂的学费学习,想学习性价比高又实用的课程
4、看了很多的资料,花费大量的时间,但是学习没有头绪
5、对测试行业越来越迷茫,不知道方向在哪里?
如果这几点你统统中招,那么鲁德自动化接口实战训练营是你的福音,手把手教你上手代码,限时报名只需9.9元,让你摆脱不会写代码的魔咒,让你的技能跃上新台阶!轻松面试拿到高薪!
转发1名好友报名,直接免单学习哦!