超细整理,接口测试基础+流程,真实环境下怎么测...
目录:导读
- 前言
- 一、Python编程入门到精通
- 二、接口自动化项目实战
- 三、Web自动化项目实战
- 四、App自动化项目实战
- 五、一线大厂简历
- 六、测试开发DevOps体系
- 七、常用自动化测试工具
- 八、JMeter性能测试
- 九、总结(尾部小惊喜)
前言
1、什么是接口测试
接口测试其实就是验证接口内部处理逻辑是否正确,既要保证单接口的正确性,也要保证接口的业务逻辑正确性,主要体现在两方面:
①输入正常的测试数据,验证接口正常处理后返回的结果是否正确(数据结构&数据内容)。
②输入异常的测试数据,验证接口能否正确处理异常数据并返回特定提示,是否合理,是否健壮。
接口测试的整个实现过程基于通信协议(HTTP),通过该协议发送请求(Request)给服务器,服务器处理并返回相应结果(Response),然后对响应的数据进行分析,判定数据结果是否与预期一致
在质量保障过程中,测试工程师会不断增加接口测试的测试深度和测试广度,往下逐渐覆盖一些公共接口的单元测试内容,往上则逐渐覆盖应该由 UI 层保障的业务逻辑测试。
2、接口类型
1)按结构划分:
系统内部之间的接口(系统与子系统之间)、模块与模块之间的接口、系统与第三方接口(如支付接口、身份校验接口)
2)按协议划分:
HTTP类型接口:采用 HTTP 协议(应用层)进行通信,在发送请求时仅会响应一次,响应的数据格式通常是键值对格式,即 JSON 格式数据。
Web Service类型接口:采用 SOAP(应用层)进行通信,SOAP协议实际就是基于 HTTP 协议进行封装,其发送请求和响应请求的数据格式都是 XML 格式。
Windows Sockets类型接口:该接口类型是基于传输层进行封装所得到的 Socket 抽象层,客户端与服务器建立连接后,就可以发送请求和响应,大部分应用为 C/S 架构的软件。
3、接口测试常用工具
Jmeter:一款免费、开源的性能测试工具
Postman:工具简单、界面简介
SoapUI:一款免费、开源的测试工具,主要实现 Web Service 类型的接口测试,可以完成 Web Service 的功能、负载、性能等测试。
4、接口测试用例编写要点
思路:
正例:输入正常参数,接口能够成功返回数据
反例:
鉴权反例:鉴权码为空,鉴权码错误,鉴权码过期
参数反例:参数为空,参数类型错误,参数长度异常,参数取值范围是否合法
错误码覆盖:根据业务而定
其他错误场景:接口黑名单,接口调用次数限制,分页场景
用例设计一般考虑参数的组合、极值、是否必填、参数类型
5、接口测试流程
1)获取需求文档和接口文档
2)通过需求文档分析接口的业务逻辑要求以及业务边界
3)通过接口文档分析出接口的技术指标(接口地址、请求方式、入参、出参)
4)接口测试用例设计(着重于接口测试数据准备)
5)使用接口测试工具进行接口测试
6)接口缺陷管理和跟踪
7)接口自动化持续集成
6、编写接口测试用例
- 单接口场景的测试
正向数据:也就是能正常发送请求,正常获取响应的数据,一般我们从三个方面去组织:
所有必填参数
全部参数(必填参数+选填参数)
参数组合(必填参数+某些选填参数)
反向测试:用不属于规定范围的数据区发送请求检查服务器能否正常处理
异常数据:数据为空,长度过多或者过少(边界值外),类型不符(需要数字类型传递str类型),错误的数据
异常的参数:不传参数,少传参数,多传参数,传递错误的参数
异常的业务数据:结合业务功能考虑输出的各种异常返回情况
- 多接口场景的测试
业务场景功能测试(站在用户角度考虑常用的使用场景)
多业务场景功能测试主要是测试接口之间数据依赖
7、接口测试总结
1)接口测试的执行方式、设计思维都和业务测试不完全一致,它们既有差异又有交集
交集部分:它们都会涉及到业务逻辑测试,但是接口测试更加关注于数据驱动的业务流程,而不再着眼于代码异常、代码边界等,这些边界问题在接口测试过程中已经由单接口测试完成了。
接口测试在单接口测试的设计思维上也更加贴近于代码的单元测试,但它还是站在 Client 端的角度来完成测试;
而接口测试的业务逻辑测试更加靠近手工业务测试,但却更加聚焦于业务逻辑本身,不再将一些非法业务异常放到该部分进行测试。
2)在测试手段上,接口测试算是技术驱动和业务驱动双管齐下的工作(界面测试是业务驱动为主的工作)
因此,你需要借助一定的工具来完成接口测试,既可能是成熟的工具,也可能是代码。
8、cookie、token与session
1)什么是 cookie
cookie:永久存储在浏览器中的一种数据类型,在服务器上生成,然后发送给客户端浏览器进行保存。cookie以键值对的形式保存在浏览器指定的某个目录中,下一次对同一个网站发送请求时会携带该 cookie 发送给服务器。
cookie类别:会话cookie 和 持久cookie 两种。
会话cookie:就是 session cookie,是一种临时 cookie,当用户执行退出浏览器操作时,这个 cookie 就会被删除从而失去效果;
持久cookie:存储在用户的硬盘上,浏览器退出或计算机重启时它们仍然存在。持久cookie表示其生命周期不单单局限于当前会话中,也会存储在本地磁盘上,生命周期由开发人员控制。
2)什么是session
session:服务器为了知道当前发送请求给自己的是谁,会给每个客户端完成身份标识操作,然后客户端后续每次发送请求给服务器时都需要携带这个身份标识,这样服务器就清楚是哪个客户端发送的请求了。
session 在用户操作完对应的网站后会被销毁,此时 session 会将用户访问的相关信息临时存储在服务器上。
3)什么是token:
token:为了不让别人伪造,对数据做一个签名,例如使用算法加密钥对数据做一个签名,把这个签名和数据一起作为 token。
token验证过程:
用户通过用户名和密码发送请求;
程序验证,并返回一个签名的 token 给客户端;
客户端存储 token,并且用于每次发送请求;
服务器验证 token 并返回数据。
4)什么是认证
认证:验证当前用户的身份。认证场景:用户名密码登录,手机号接收验证码,只要用户名能收到验证码就默认你是账号的主人。
5)什么是授权
授权:给第三方授权某些权限。授权场景:手机安装应用提示 “是否允许授予权限”,实现授权的方式:cookie、session、token等。
6)什么是凭证
凭证:用于标记访问者的身份,完成认证或者授权等操作之前必须先拥有凭证。
7)cookie与session的区别
安全性:cookie是客户端存储机制,session是服务器存储机制,所以 session 比 cookie 安全性更高;
存储值类型不同:cookie只能存储字符串数据,session可以存储任意数据类型;
有效期不同:cookie可以设置长时间保持,session 一般在客户端关闭或者 session 超时等情况下就失效了;
存储大小不同:cookie 保存的数据容量最大不能超过 4K,session 的存储数据容量要大于 cookie;
8)token与session的区别
session是有状态化的,会就并存储会话信息;而 token 是无状态化的,不会存储会话信息。
session是依赖链路层来来提高通信安全的,而 token 是通过身份认证方式。
接口测试项目实战
下面是我整理的2025年最全的软件测试工程师学习知识架构体系图 |
一、Python编程入门到精通
二、接口自动化项目实战
三、Web自动化项目实战
四、App自动化项目实战
五、一线大厂简历
六、测试开发DevOps体系
七、常用自动化测试工具
八、JMeter性能测试
九、总结(尾部小惊喜)
人生最珍贵的不是最终抵达的终点,而是沿途突破自我的每个瞬间。当你觉得撑不住时,请记住:蝴蝶破茧时的挣扎,正是它获得飞翔力量的关键。你的坚持,正在为生命谱写最动人的乐章!
别被暂时的风雨模糊了视线!那些看似坎坷的路途,都在引领你走向更美的风景。当别人选择放弃时,你的坚持就是最有力的宣言。向前奔跑吧,整个世界都在期待你的光芒绽放!