热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

每个接口_【笔记】接口测试理论知识

什么是接口测试?接口测试是测试系统组件间接口的一种测试,主要用于检测系统内部各个子系统之间,系统内部与外部系统之间的交互、相互逻辑依赖等。

什么是接口测试?

接口测试是测试系统组件间接口的一种测试,主要用于检测系统内部各个子系统之间,系统内部与外部系统之间的交互、相互逻辑依赖等。

通俗讲就是接口的提供方、接口的调用方之间的交互、逻辑处理。

583c0163a961b50a1581f140990c2b9f.png

相较于UI测试,接口测试提前了一步,在客户端和服务器交互的中间做接口测试,可以不用等待前端开发好,提前开始测试。

目前我们做的是软件接口的测试,本质是基于某种协议(http),发送一个Request请求给服务器,然后服务器返回一个Response响应数据,然后对响应数据进行分析,判断是否与我们预期的返回一致,从而验证功能是否正确,这就是接口测试。(属于黑盒测试)

如何获取接口信息?

1、开发提供详细接口文档(实际测试常用)

2、通过工具抓包(charles、fiddler、web端F12)

(tips:浏览器按F12可以快捷打开调试页面进入开发者模式,或者右键进入开发者工具)

URL:http[s]://host[:port]/[abs_path]?[parameter]

host:域名/ip

port:端口

abs_path:进入目标软件后想要找的地址

parameter:参数

http知识点(下面只做简述,详细参考https://zhuanlan.zhihu.com/p/101158095)

Header:头信息,包含报文的描述信息,一些限制要求;

Method:请求方法

Request Parameter:请求参数

Response Status:响应状态码

Response Status常见几种

2开头:正确,eg:200

3开头:需要重定向,eg:302

4开头:请求有问题(你错了),eg:404

5开头:服务器错了(开发错了),eg:500

为什么做接口测试?

UI测试模拟用户真实操作,更贴合实际应用,但缺点是强依赖于UI页面,前端页面一改,自动化脚本就要修改。

接口测试并不依赖UI,更加稳定,一般的接口写好后就不会随意更改,当一个系统提供了大量的后台服务,有较少甚至没有页面操作,就比较适合开展接口测试。

测试难度:UI>接口>单元测试(开发在做)

工作中接口测试流程:

1.准备阶段(25%)

拿到开发的接口文档,理解每个接口的参数和含义;

了解被测系统的业务流程;

编写接口测试用例;

2.执行阶段(70%)

测试用例/测试场景执行(照着用例去Postman中配置)

测试数据/系统数据收集

3.分析阶段(5%)

数据汇总/日志分析

测试报告

接口测试规范文档:

为了提高测试效率,前期需要推动开发规范接口说明文档(TDD模式,测试驱动开发)

web端如何获取接口?

Charles、fiddler、F12

通过接口也可以判断bug原因,若接口返回正常则为前端bug,返回错误则为后端bug。

接口测试用例内容:

用例ID、项目名称、模块、接口名称、请求方法(get/post)、URL、请求参数、前置条件、操作步骤、预期结果、实际结果、测试人员、备注(post的话需要到数据库查看)

接口用例编写要点(重点还是参数的取值):

1.测试每个参数类型不合法(注意null)

2.测试每个参数取值范围不合法(边界值)

3.参数为空(不同于null,空值为传参,但是该参数为空)

4.参数前后台定义一致性

5.参数的上下限处容易出致命bug

6.参数取值不合理的情况(比如取的值在该阶段不应该出现)

7.如果两个请求有严格的先后顺序,应考虑调换顺序

注意:用例设计一般考虑参数的组合、极值、是否必填,类型一般不测,因为在数据库中会现在类型,前台用户没办法发起错误类型的请求。

接口测试流程(团队中):

与测试流程类似

1.与开发、产品梳理需求,确定实现哪些接口和功能

2.编写测试计划(开发预估开发时间,风险评估及解决时间,测试人员用例准备,数据准备,环境准备,与开发和产品协调测试时间)

3.测试计划review,请各部门再沟通,确定最终计划

4.编写测试用例和自动化脚本

5.用例review(该用例为最终版本)

6.执行测试,bug提交,回归

7.测试总结(包括测试、开发中遇到的问题,如何解决,对自己的启发等)

fiddler原理:

fiddler作为浏览器的代理,在信息请求和响应中间进行了拦截,所有的浏览器都可以抓取。

COOKIE:浏览器生成的一串标志身份的信息,相当于身份证,有失效时间,在测试时用变量填充。

Postman中的传递参数:

Params:请求参数,url中?后面的,一般为get请求中的参数,用来筛选所需要查询的信息。

Header:请求头,一般是content-type(传递参数的类型,post时需要加)+COOKIE(身份信息)

Body:需求上传的数据写在Body中,一般Post中才需要。

接口断言

CC是谁:【笔记】Postman中接口断言方式​zhuanlan.zhihu.com

1.响应状态码

2.响应中包含某字符串(html格式)

3.json中某个key值(json格式)

4.断言响应时间



推荐阅读
  • 在JavaWeb开发中,文件上传是一个常见的需求。无论是通过表单还是其他方式上传文件,都必须使用POST请求。前端部分通常采用HTML表单来实现文件选择和提交功能。后端则利用Apache Commons FileUpload库来处理上传的文件,该库提供了强大的文件解析和存储能力,能够高效地处理各种文件类型。此外,为了提高系统的安全性和稳定性,还需要对上传文件的大小、格式等进行严格的校验和限制。 ... [详细]
  • 网站访问全流程解析
    本文详细介绍了从用户在浏览器中输入一个域名(如www.yy.com)到页面完全展示的整个过程,包括DNS解析、TCP连接、请求响应等多个步骤。 ... [详细]
  • 本文介绍了如何使用 Node.js 和 Express(4.x 及以上版本)构建高效的文件上传功能。通过引入 `multer` 中间件,可以轻松实现文件上传。首先,需要通过 `npm install multer` 安装该中间件。接着,在 Express 应用中配置 `multer`,以处理多部分表单数据。本文详细讲解了 `multer` 的基本用法和高级配置,帮助开发者快速搭建稳定可靠的文件上传服务。 ... [详细]
  • 深入探索HTTP协议的学习与实践
    在初次访问某个网站时,由于本地没有缓存,服务器会返回一个200状态码的响应,并在响应头中设置Etag和Last-Modified等缓存控制字段。这些字段用于后续请求时验证资源是否已更新,从而提高页面加载速度和减少带宽消耗。本文将深入探讨HTTP缓存机制及其在实际应用中的优化策略,帮助读者更好地理解和运用HTTP协议。 ... [详细]
  • 利用爬虫技术抓取数据,结合Fiddler与Postman在Chrome中的应用优化提交流程
    本文探讨了如何利用爬虫技术抓取目标网站的数据,并结合Fiddler和Postman工具在Chrome浏览器中的应用,优化数据提交流程。通过详细的抓包分析和模拟提交,有效提升了数据抓取的效率和准确性。此外,文章还介绍了如何使用这些工具进行调试和优化,为开发者提供了实用的操作指南。 ... [详细]
  • 用阿里云的免费 SSL 证书让网站从 HTTP 换成 HTTPS
    HTTP协议是不加密传输数据的,也就是用户跟你的网站之间传递数据有可能在途中被截获,破解传递的真实内容,所以使用不加密的HTTP的网站是不 ... [详细]
  • Spring Boot 中配置全局文件上传路径并实现文件上传功能
    本文介绍如何在 Spring Boot 项目中配置全局文件上传路径,并通过读取配置项实现文件上传功能。通过这种方式,可以更好地管理和维护文件路径。 ... [详细]
  • Linux CentOS 7 安装PostgreSQL 9.5.17 (源码编译)
    近日需要将PostgreSQL数据库从Windows中迁移到Linux中,LinuxCentOS7安装PostgreSQL9.5.17安装过程特此记录。安装环境&#x ... [详细]
  • 本文介绍了如何利用HTTP隧道技术在受限网络环境中绕过IDS和防火墙等安全设备,实现RDP端口的暴力破解攻击。文章详细描述了部署过程、攻击实施及流量分析,旨在提升网络安全意识。 ... [详细]
  • 【实例简介】本文详细介绍了如何在PHP中实现微信支付的退款功能,并提供了订单创建类的完整代码及调用示例。在配置过程中,需确保正确设置相关参数,特别是证书路径应根据项目实际情况进行调整。为了保证系统的安全性,存放证书的目录需要设置为可读权限。值得注意的是,普通支付操作无需证书,但在执行退款操作时必须提供证书。此外,本文还对常见的错误处理和调试技巧进行了说明,帮助开发者快速定位和解决问题。 ... [详细]
  • 优化后的标题:深入探讨网关安全:将微服务升级为OAuth2资源服务器的最佳实践
    本文深入探讨了如何将微服务升级为OAuth2资源服务器,以订单服务为例,详细介绍了在POM文件中添加 `spring-cloud-starter-oauth2` 依赖,并配置Spring Security以实现对微服务的保护。通过这一过程,不仅增强了系统的安全性,还提高了资源访问的可控性和灵活性。文章还讨论了最佳实践,包括如何配置OAuth2客户端和资源服务器,以及如何处理常见的安全问题和错误。 ... [详细]
  • FastRequest1.1.4正式发布,优化了诸多操作的交互和用户体验,更新内容如下:curlsupport(支持curl拷贝)supportaddparamstoheaderfrom(支持了将参数从response添加到header)supportprettyandraw ... [详细]
  • 20款必备PS插件免费大放送,附详细安装指南
    对于众多关注小资源并学习PS的用户来说,每次分享设计素材都会收到大量反馈。为了更好地满足大家的需求,今天我们特别推出了20款必备的PS插件大合集,并附有详细的安装指南,确保每位用户都能轻松上手,提升设计效率。 ... [详细]
  • 在配置Nginx的SSL证书后,虽然HTTPS访问能够正常工作,但HTTP请求却会遇到400错误。本文详细解析了这一问题,并提供了Nginx配置的具体示例。此外,还深入探讨了DNS服务器证书、SSL证书的申请与安装流程,以及域名注册、查询方法和CDN加速技术的应用,帮助读者全面了解相关技术细节。 ... [详细]
  • 在PHP中实现腾讯云接口签名,以完成人脸核身功能的对接与签名配置时,需要注意将文档中的POST请求改为GET请求。具体步骤包括:使用你的`secretKey`生成签名字符串`$srcStr`,格式为`GET faceid.tencentcloudapi.com?`,确保参数正确拼接,避免因请求方法错误导致的签名问题。此外,还需关注API的其他参数要求,确保请求的完整性和安全性。 ... [详细]
author-avatar
鲁弗斯ll
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有