写在后面:在日常开发过程中,有人做前端开发,有人负责后端开发。接口的次要作用就是连贯前后台。然而,因为前端和后端开发的速度可能不一样,尤其是后端开发好了,但前端还未开发。这种时候咱们须要做接口测试吗?
在日常工作中,咱们次要测试的都是性能板块,如果你想真正理解接口测试,那么这篇文章或者能给你肯定帮忙。
1、为什么咱们要做接口测试?
首先,咱们先来看看测试金字塔(接口测试是在两头局部,底层是单元测试,最顶端是界面测试)。
从三者的面积大小来看,单元测试和接口测试,才是重点,而界面测试真的是太少。这个面积,你能够了解为代码笼罩,也能够了解为测试的工作量。
在国内公司越来越器重接口测试了。之前的几年,很多测试资源都放在了界面的测试,看趋势接下来应该会逐渐放在接口测试性能、性能、自动化和稳定性测试下面。
2、什么是接口测试?
这个有太多文章,就不细说了,百度或者论坛里找就好了。
3、接口的分类
在开始做接口测试之前,有必要理解一下接口的分类。这里的分类,次要是 HTTP 申请办法分类。上面是咱们最常见的 GET/POST/PUT/DELETE 四种办法。工作中接口用到最多是 GET 和 POST 办法。
4、设计接口测试用例
接下来,咱们就一起来聊聊进行接口测试的筹备工作。有些同学很好奇,接口测试要流程干嘛?不就是拿着接口文档利用接口测试工具测试。
如果只是三五个接口,你能够这么做一个长期的接口测试。然而如果是上百个接口,或者新我的项目第一次做接口测试,那么还是很有必要恪守测试的流程的。
1)接口测试的流程
接口测试和功能测试一样,流程也大抵恪守 V 模型,请看下图。
一般来说,接口测试右边的每个阶段,每个公司可能都侧重点不同,例如有些公司就没有需要探讨和需要评审这个阶段。
然而不论如何,用例设计这个是少不了的,而且是重点,是要花工夫的阶段。只有笼罩全面的接口测试用例,能力有比拟好的测试接口覆盖率,才会找出更多的接口的 Bug。
2)为什么要写接口测试用例
性能测试用例,大家都写过。接口测试用例,很多人没有写过。在写之前,咱们来探讨下,为什么要写接口用例。
①理清思路,防止漏测
②进步测试效率
③跟进测试进度
④通知领导做过
⑤跟进重复性工作
下面五点,联合本人测试理论教训,应该来说是很好了解的。有用例就有思路,防止漏掉测试点。跟着测试用例走,一方面能够防止随机测试那种没有目的性的测试,进步测试效率;另一方面,这对领导查看你的工作、共事询问你的进度时有很多便当,也可能进步对接效率。
3)接口用例设计
咱们在设计接口用例时,次要能够从这四个方面来思考:性能,逻辑业务,异样,平安。
①性能:
性能是否失常;性能是否依照接口文档实现;
②逻辑业务:
是否依赖业务;
③异样:
参数异样和数据异样;
参数异样:关键字参数,参数为空,多,少参数,谬误参数;
数据异样:关键字数据,数据为空,长度不统一,谬误数据;
④平安测试用例设计:
cookie:有 cookie 能力获取数据,如果不带 cookie 还有信息返回,阐明有问题
header:失常接口带 header 信息,删除 header 看是否可能返回数据。
惟一识别码:app 手机识别码,个别是惟一的。
注:平安测试次要从下面三点查看。第三个是惟一识别码,次要是指 app 上手机的识别码,个别很少用到,除非很严格的接口测试,例如银行 app 登录,须要指纹,而指纹起源手机,个别有一个手机识别码判断过程。
5、接口测试的工具
目前,市场上有很多反对接口测试的工具。利用工具进行接口测试,可能提供测试效率。例如,退出让你一天实现 100 个接口测试工作,你感觉你加班是否实现。如果有工具,然而不是所有工具都可能反对你实现这个工作。上面咱们就来筛选几个工具,简略介绍一下。
1)fiddler
首先,这是一个 HTTP 协定调试代理工具,说白了就是一个抓 http 包的工具。web 测试和手机测试都能用到这个工具。既然是 http 协定,这个工具也能反对接口测试。稍后文章,咱们会专门介绍 fiddler 这个工具。
2)postman
这是一款 google 工程师开发的一个插件,能够装置到 chrome 浏览器上。反对不同接口测试申请,可能治理测试套件和自动化运行,弱点在于,自动化断言性能不弱小。不能和 jenkins 和代码治理库进行继续集成测试。然而,相对是一个很好的半手工,半自动化测试工具。
3)wireshak
这个是一款计算机上抓包工具,反对抓各种包,TCP,UDP,HTTP 都反对。如果做底层网络数据测试,个别都须要用到它。作为接口测试,这个软件有点不敌对。因为刷新数据太快,不好定位每个操作对应的接口。所以,咱们不会进行过多介绍这个工具。
4)soupUI
这个是一个开源收费、企业版免费的软件。在国外的接口测试,应用十分多。这个工具可能反对接口自动化测试和接口性能测试,也能反对和 jenkins 做继续集成测试。理解一下就能够,本人能够下载一个社区免费版,做一个 demo 试试。
5)java 代码做接口测试
代码是万能,笔记工具也是代码开发进去的。为什么要用代码做接口自动化测试呢。因为,有些工具性能是有限度,很多公司,须要一些特定的性能,工具不反对,只好用代码进行开发。
个别用 Java 做自动化测试,次要是利用 httpclient.jar 这个包,而后利用 junit 或者 testng 这样的单元测试工具,进行测试用例的开发,而后在 jenkins 上创立一个 job,进行继续集成测试。
6)Python 代码做接口测试
和 Java 一样,Python 中利用一个很好,功能强大的第三方库 requests,可能不便都创立接口自动化用例。python 下单元测试框架,个别采纳 unittest。生成测试报告,个别抉择 HTMLTestRunner.py。同样,能够和 jenkins 做继续集成测试。
7)LoadRunner
不要认为 LR 只能做性能测试,loadrunner 同样能够做接口自动化和接口压力测试。只是咱们很多人,不会利用 LR 的函数,进行开发接口测试用例。
8)JMeter
JMeter 同 loadrunner 一样,都是以性能测试闻名,个别用 JMeter 也是做接口性能测试。例如 java+Jmeter+ant+jenkins 做接口性能监听测试。JMeter 如何做接口测试,大家能够网上查下。
写在最初:下面说了这么多工具,根本笼罩了接口功能测试,接口自动化测试,接口性能测试。这里提一下,国内有个综合性的 Saas 测试工具,不必部署,界面也比拟简洁,叫 Eolinker,应用地址我贴在上面,本人试试就晓得了。
应用地址:www.eolinker.com