让你分分钟了解Web接口测试【快来了解】
因为前后端架构分离技术的兴起,接口测试也越来越重要,最近一直想总结下,作为一个近三年的测试人员,接口这个词是耳濡目染的,而开发张口闭口也都是这个接口或那个接口怎么怎么样,自己遇到的bug也很多是接口问题,本着不懂装懂的原则,自己网上扒了些资料,有不准确的地方,欢迎指出。
1、什么是接口
接口泛指实体把自己提供给外界的一种抽象化物(可以为另一实体),用以由内部操作分离出外部沟通方法,使其能被内部修改而不影响外界其他实体与其交互的方式
上面这句有点抽象,反正我是看不懂,网上的资料也是一大把(黑纠结),来自某个大佬的通俗解释:
1、设计概念的接口,就是一系列约定,这种约定既可以是行为的约定,也可以是外观的约定(比如国标插头和美标插头具有相同的行为约定和不同的外观约定)。
2、而编程语言层面的接口,是为了实现设计要求而产生的,接口可以是方法,属性,事件,索引器的任意组合。
从程序方面来说,接口习惯别叫做API(application programming interface),可大致分为程序接口和协议接口两类。
程序接口(也可以看作是程序模块接口,具体到程序中一般就是提供了输入输出的类、方法或函数,一般需要使用与开发程序接口相同的语言)
协议接口(一般是指系统通过不同的协议提供的接口,这种类型的接口对底层代码做了封装,通过协议的方式对外提供调用,不受语言的限制)
发展至今包括:
①操作系统接口
②web接口
③应用程序接口
④数据库接口
它们可能本质差别不大,姑且这么分个类,我们这里着重讲Web接口。
2、什么是接口测试
接口测试是测试系统组件间接口的一种测试;接口测试主要用于检测外部系统与系统之间以及内部各个子系统之间的交互点;测试的重点是要检查数据的交换,传递和控制管理过程,以及系统间的相互逻辑依赖关系等。
接口测试也是一种完整的测试体系,也分为接口功能测试、接口性能测试、接口稳定性测试、接口安全性测试。类比功能测试,有个通俗的解释:接口测试就是通过测试不同情况下的入参与之相应的出参信息来判断接口是否符合或满足相应的功能性、安全性要求。
借鉴上面的文章,常见的web接口:
1、webService接口:是用soap协议包装后用http运输,请求报文和返回报文都是xml格式的,我们在测试的时候都用通过工具才能进行调用,测试。可以使用的工具有SoapUI、jmeter、loadrunner等。
2、http api接口:直接用http协议运输,通过路径来区分调用的方法,请求报文都是key-value形式的,返回报文一般都是json串,有get和post等方法,这也是最常用的两种请求方式。可以使用的工具有postman、RESTClient、jmeter、loadrunner等。
web应用中,客服端需要与服务端通信,也就是前端和后端通信,都是通过接口交互;根据是否是外部接口,web接口测试可分两类:服务端接口测试和外部接口测试。
3、接口测试的重要性
在软件开发生命周期中发現缺陷越早,那么修正缺陷的代价就越小,所以应更早的介入测试,而接口测试就是一种及早介入的方式。
为什么做了功能测试还要做接口测试,上面两篇文章说得很清楚:
①不依赖前端页面,可以发现很多在页面上操作发现不了的bug
②检查系统的异常处理能力
③检查系统的安全性、稳定性
④前端随便变,接口测好了,后端不用变
⑤一般能集成自动化,能提高测试效率,用于冒烟测试和回归测试
当然由于接口测试的特殊性,需要依赖一些测试工具或代码模拟http请求的发送和接收,对测试人员的要求更高。
4、如何做接口测试
接口测试也属于功能测试,每个公司的流程或侧重点可能不同。
第一种轻量级测试方案:
1、分析出测试需求,并拿到开发提供的接口说明文档;
2、从接口说明文档中整理出接口测试案例,里面要包括详细的入参和出参数据以及明确的格式和检查点;
3, 和开发一起对接口测试案例进行评审;
4,结合开发库,准备接口测试案例中的入参和出参数据,整理成测试用例;
5, 执行测试用例,反馈接口测试结果。
第二种类似功能测试流程(接口文档 —> 接口测试计划 —> 接口测试用例 —> 接口测试执行 —> 接口测试报告):
1、接口文档
类似于需求文档,由项目组长制定相关接口规范,开发人员一起更改维护,其中应该包括接口说明、方法、uri(请求地址,url是uri的子集)、请求参数、返回参数。
2、接口测试计划
类似于测试计划,5w原则,包括测试目的,测试方案,测试范围,测试资源安排,进度安排,风险控制等。
3、接口测试用例
测试用例设计,根据接口文档,主要对请求参数进行分析,包括通过性测试用例,多业务场景测试用例等。
4、接口测试执行
执行接口测试用例,就是对接口进行请求,验证返回参数,可能还需要准备测试数据。
5、接口测试报告
及时反馈测试结果,如阻塞的测试,未通过的测试等。
6、接口自动化测试
做接口测试后可以顺便集成接口自动化,那么项目适合开展自动化吗?
①、需求稳定,不会频繁变更
②、多平台运行,组合遍历型、大量的重复任务
③、软件维护周期长,有生命力
④、被测系统开发较为规范,可测试性强(如果接口文档都没有,你知道的。。。)
⑤、人力资源足够
接口自动化测试适用场景:
(1)开发自测,冒烟测试:一个新的自动化接口测试案例开发完成后,直接发给接口对应的开发,安排在开发本地环境执行,一旦开发确认完成接口开发,就开始执行接口测试案例,基本上可以实时拿到测试结果,方便开发快速做出判断。
(2)回归测试:开发本地测试通过后,或整个需求手工测试通过后,把自动化的接口测试案例做分类整理,挑选出需要纳入到回归测试中的案例,提高测试效率。
上面是我收集的一些视频资源,在这个过程中帮到了我很多。如果你不想再体验一次自学时找不到资料,没人解答问题,坚持几天便放弃的感受的话,可以加入我们扣扣群【313782132 】,里面有各种软件测试资源和技术讨论。
当然还有面试,面试一般分为技术面和hr面,形式的话很少有群面,少部分企业可能会有一个交叉面,不过总的来说,技术面基本就是考察你的专业技术水平的,hr面的话主要是看这个人的综合素质以及家庭情况符不符合公司要求,一般来讲,技术的话只要通过了技术面hr面基本上是没有问题(也有少数企业hr面会刷很多人)
我们主要来说技术面,技术面的话主要是考察专业技术知识和水平,上面也是我整理好的精选面试题。
你们测试团队如何提升自己的测试技能?
更多是靠技术讨论和学习交流,除了我们公司内部群之外,我们还会有相关的技术交流群,可以和跟很多同行一起学习,完善自己的技能树。IT行业技术更新迭代本来就很快,所以更需要保持学习的心态。感兴趣可以关注我。有不定期的发放免费的资料链接,还有同行一起技术交流。
加油吧,测试人!如果你需要提升规划,那就行动吧,在路上总比在起点观望的要好。事必有法,然后有成。
资源不错就给个推荐吧~
更多好文:
相关文章
- java web接口controller测试控制台输出乱码
- 接口测试
- 测试命令运行时间:timeit和profile
- 关于 SAP Spartacus defaultCmsContentProvider 和默认 layoutConfig 的一些测试
- Atitit 前端测试最简化内嵌web服务器 php 与node.js 目录 1.1. php内置Web Server1 1.2. Node的2 Node的比较麻烦些。。Php更加简单
- SAP UI5 应用开发教程之八十五 - 如何用 OPA5 编写测试用例来测试用户输入文本的功能试读版
- 【Android 电量优化】电量优化特性 ( Doze 低电耗模式 | Standby 应用待机模式 | 白名单设置 | 白名单添加系统设置界面 | 指定应用的白名单添加界面 | 测试应用 )
- pytest接口自动化测试框架 | fixture之params参数化
- pytest接口自动化测试框架 | 项目实战(pytest+allure+数据驱动)
- pytest接口自动化测试框架 | 基于Pytest的Web UI自动化测试框架介绍
- 记一次接口压力测试与性能调优
- Web测试中,各类web控件测试点总结
- 自动化测试-细聊单元测试框架基础
- gRPC接口测试详解
- 软件测试面试题含答案:WEB+网络|接口测试|性能测试|自动化测试
- 基于TestNG+Rest Assured+Allure的接口自动化测试框架
- 接口发送 xml 格式的数据如何测试?
- Airtest自动化测试篇——Airtest简介
- Mock在接口测试中的实际应用
- 【性能重点】一次完整的性能测试,测试人员需要做什么?
- 【进阶自动化测试第一步】1分钟带你了解自动化测试
- 3分钟,快速上手Postman接口测试
- Postman如何使用(四):接口测试