热门标签 | 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.断言响应时间



推荐阅读
  • Nginx使用(server参数配置)
    本文介绍了Nginx的使用,重点讲解了server参数配置,包括端口号、主机名、根目录等内容。同时,还介绍了Nginx的反向代理功能。 ... [详细]
  • SpringMVC接收请求参数的方式总结
    本文总结了在SpringMVC开发中处理控制器参数的各种方式,包括处理使用@RequestParam注解的参数、MultipartFile类型参数和Simple类型参数的RequestParamMethodArgumentResolver,处理@RequestBody注解的参数的RequestResponseBodyMethodProcessor,以及PathVariableMapMethodArgumentResol等子类。 ... [详细]
  • VScode格式化文档换行或不换行的设置方法
    本文介绍了在VScode中设置格式化文档换行或不换行的方法,包括使用插件和修改settings.json文件的内容。详细步骤为:找到settings.json文件,将其中的代码替换为指定的代码。 ... [详细]
  • 本文介绍了在开发Android新闻App时,搭建本地服务器的步骤。通过使用XAMPP软件,可以一键式搭建起开发环境,包括Apache、MySQL、PHP、PERL。在本地服务器上新建数据库和表,并设置相应的属性。最后,给出了创建new表的SQL语句。这个教程适合初学者参考。 ... [详细]
  • 基于layUI的图片上传前预览功能的2种实现方式
    本文介绍了基于layUI的图片上传前预览功能的两种实现方式:一种是使用blob+FileReader,另一种是使用layUI自带的参数。通过选择文件后点击文件名,在页面中间弹窗内预览图片。其中,layUI自带的参数实现了图片预览功能。该功能依赖于layUI的上传模块,并使用了blob和FileReader来读取本地文件并获取图像的base64编码。点击文件名时会执行See()函数。摘要长度为169字。 ... [详细]
  • 本文介绍了高校天文共享平台的开发过程中的思考和规划。该平台旨在为高校学生提供天象预报、科普知识、观测活动、图片分享等功能。文章分析了项目的技术栈选择、网站前端布局、业务流程、数据库结构等方面,并总结了项目存在的问题,如前后端未分离、代码混乱等。作者表示希望通过记录和规划,能够理清思路,进一步完善该平台。 ... [详细]
  • 猜字母游戏
    猜字母游戏猜字母游戏——设计数据结构猜字母游戏——设计程序结构猜字母游戏——实现字母生成方法猜字母游戏——实现字母检测方法猜字母游戏——实现主方法1猜字母游戏——设计数据结构1.1 ... [详细]
  • ASP.NET2.0数据教程之十四:使用FormView的模板
    本文介绍了在ASP.NET 2.0中使用FormView控件来实现自定义的显示外观,与GridView和DetailsView不同,FormView使用模板来呈现,可以实现不规则的外观呈现。同时还介绍了TemplateField的用法和FormView与DetailsView的区别。 ... [详细]
  • 使用正则表达式爬取36Kr网站首页新闻的操作步骤和代码示例
    本文介绍了使用正则表达式来爬取36Kr网站首页所有新闻的操作步骤和代码示例。通过访问网站、查找关键词、编写代码等步骤,可以获取到网站首页的新闻数据。代码示例使用Python编写,并使用正则表达式来提取所需的数据。详细的操作步骤和代码示例可以参考本文内容。 ... [详细]
  • MVC设计模式的介绍和演化过程
    本文介绍了MVC设计模式的基本概念和原理,以及在实际项目中的演化过程。通过分离视图、模型和控制器,实现了代码的解耦和重用,提高了项目的可维护性和可扩展性。详细讲解了分离视图、分离模型和分离控制器的具体步骤和规则,以及它们在项目中的应用。同时,还介绍了基础模型的封装和控制器的命名规则。该文章适合对MVC设计模式感兴趣的读者阅读和学习。 ... [详细]
  • 本文介绍了响应式页面的概念和实现方式,包括针对不同终端制作特定页面和制作一个页面适应不同终端的显示。分析了两种实现方式的优缺点,提出了选择方案的建议。同时,对于响应式页面的需求和背景进行了讨论,解释了为什么需要响应式页面。 ... [详细]
  • 本文介绍了一种在PHP中对二维数组根据某个字段进行排序的方法,以年龄字段为例,按照倒序的方式进行排序,并给出了具体的代码实现。 ... [详细]
  • Apache Shiro 身份验证绕过漏洞 (CVE202011989) 详细解析及防范措施
    本文详细解析了Apache Shiro 身份验证绕过漏洞 (CVE202011989) 的原理和影响,并提供了相应的防范措施。Apache Shiro 是一个强大且易用的Java安全框架,常用于执行身份验证、授权、密码和会话管理。在Apache Shiro 1.5.3之前的版本中,与Spring控制器一起使用时,存在特制请求可能导致身份验证绕过的漏洞。本文还介绍了该漏洞的具体细节,并给出了防范该漏洞的建议措施。 ... [详细]
  • Android JSON基础,音视频开发进阶指南目录
    Array里面的对象数据是有序的,json字符串最外层是方括号的,方括号:[]解析jsonArray代码try{json字符串最外层是 ... [详细]
  • 本文讨论了编写可保护的代码的重要性,包括提高代码的可读性、可调试性和直观性。同时介绍了优化代码的方法,如代码格式化、解释函数和提炼函数等。还提到了一些常见的坏代码味道,如不规范的命名、重复代码、过长的函数和参数列表等。最后,介绍了如何处理数据泥团和进行函数重构,以提高代码质量和可维护性。 ... [详细]
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社区 版权所有