接口测试基础

· 浏览次数 : 0

小编点评

**接口测试用例设计** * 创建测试用例,包含各种请求方式和参数的接口测试用例。 * 每个测试用例应该测试一个特定的资源和操作。 * 每个测试用例应该包含不同的请求方法,例如 GET、POST、PUT 和 DELETE。 * 每个测试用例应该包含不同的参数,例如 id、pageType、id 和 pageType。 * 每个测试用例应该包含不同的请求头,例如 Content-Type 和 Content-Length。 * 每个测试用例应该包含请求体,例如 JSON 或表单数据。 **工具实现接口测试** * 使用 Postman 或其他 API测试工具来实现接口测试。 * 在测试用例中创建 HTTP 请求,并设置请求参数、请求头和请求体。 * 在测试中检查响应数据与预期数据是否一致。 * 使用断言来确保响应满足预期条件。 **代码实现接口测试** * 使用 Python 或其他编程语言编写接口测试代码。 * 使用 requests 或 other 编程库实现 HTTP 请求。 * 使用 Beautiful Soup 或 other 库解析响应数据。 * 使用 unittest 或 pytest 等测试框架执行测试。

正文

定义

基于不同的输入参数,校验接口响应数据与预期数据是否一致。后端开发完成后可以先进行接口测试,提前介入测试,尽早发现问题。

接口测试学习内容

1.接口测试用例设计

2.工具实现接口测试,主要就是利用postman或者其他工具测试

3.代码实现接口测试,也就是接口自动化测试

URL

1.URL:是互联网上标准资源的地址,一般称为统一资源定位符,在浏览器的地址栏就可以看到每个网页的唯一url

2.组成:协议://hostname[:port]/path/[?查询参数1&查询参数2]

示例:

http://kdtx-test.itheima.net:8080/contract/details?id=449280106&pageType=info

http--->协议:数据传输的格式。如http,https

kdtx-test.itheima.net--->服务器地址:域名或IP

8080--->端口:一个应用程序对外访问的唯一标识,常用;80(http),.443(https),协议默认端口可以省略

contract/details--->路径:主机资源的具体地址,包括目录和文件名等,用“/”隔开

id=449280106&pageType=i----->客户端向服务器传递的数据,参数与路径之间用“?”隔开,多个参数用“&”符合隔开

3.总的来说,url由协议,服务器地址,端口号,资源路径,参数这几部分构成

HTTP协议

HTTP:超文本传输协议,基于请求与响应的应用层协议

作用:规定了客户端与服务器之间信息传递规范,是二者共同遵守的协议。

组成:

  • HTTP请求:定义请求数据格式
    • 请求行、请求头、请求体
  • HTTP响应:定义响应数据格式
    • 状态行、响应头、响应体

请求行

位置:请求数据第一行

作用:说明请求方法、访问的资源、协议版本

如下图抓包工具抓取的请求数据,第一行即为请求行

image-20240526225900860

常用请求方法:

  • GET:从服务器获取资源
  • POST:在服务器新建一个资源
  • PUT:在服务器更新资源
  • DELETE:从服务器删除资源

请求头

位置:请求数据第二行到空白行之间

作用:通知服务器客户端请求信息

特点:请求头部由键值对组成,每行一对

如下图,红色方框中即为请求头

image-20240526231354040

content-type:请求数据类型

  • text/html:HTML格式
  • image/jpeg:jpg图片格式
  • application/json:JSON格式
  • application/x-wwww-form-urlencoded:表单默认的提交数据格式
  • multipart/form-data:在表单中进行文件上传时使用

请求体

位置:空白行之后的内容

作用:传输数据实体

注意:请求体常用在POST、PUT方法中使用

常配合的请求头:Content-Type和Content-Length

image-20240526232324706

请求报文中可以没有请求体数据

状态行

位置:响应数据第一行

作用:描述服务器处理结果

内容:状态行由协议版本号,状态码,状态消息组成

image-20240526232637698

状态码:三位数字组成,第一个数字定义响应类别

1XX:指示信息

2XX:成功

3XX:重定向

4XX:客户端错误

5XX:服务端错误

常见响应状态码如下图:

image-20240526232931981

响应头

1.位置:第二行开始到空白行

2.作用:描述客户端要使用的一些附件信息

3.特点:响应头由键值对组成,每行一对

如下图:

image-20240527233805416

响应体

1.位置:响应数据空白行之后

2.作用:服务器返回的数据实体

3.特点:有图片、json、xml、html等多种类型

如下图:

image-20240527234033687

接口规范

1.说明:接口规范主要有两种,一种是传统接口风格,另一种是restful接口风格,传统接口风格现在很少见,一般在比较老的项目中才能见到,现在的项目大多遵循Restful这种接口规范。

2.Restful是一种网络应用程序的设计风格和开发方式,提供了一组设计原则和约束条件。

例如:

image-20240529001602711

特点:

  • 请求API的URL用来定位资源,如上图这些地址都是要操作users这个资源,查询/修改/删除某个用户就在资源后面加上参数。
  • 通过HTTP方法对资源进行增删改查操作
  • 利用HTTP状态码返回状态信息

与接口测试基础相似的内容:

接口测试基础

定义 基于不同的输入参数,校验接口响应数据与预期数据是否一致。后端开发完成后可以先进行接口测试,提前介入测试,尽早发现问题。 接口测试学习内容 1.接口测试用例设计 2.工具实现接口测试,主要就是利用postman或者其他工具测试 3.代码实现接口测试,也就是接口自动化测试 URL 1.URL:是互

[转帖]Jmeter接口测试:${__UUID()}函数

UUID函数返回一个伪随机类型的通用唯一标识符ID。 UUID 是 通用唯一识别码(Universally Unique Identifier)的缩写。UUID是基于当前时间戳、随机数和硬件标识(例如网卡的MAC地址)等数据计算生成的。在同一时间范围之内是唯一的。UUID共有5个版本,jmeter自

[转帖]自动化回归测试工具 —— AREX 上手实践

https://my.oschina.net/arextest/blog/8589156 AREX 是一款开源的自动化测试工具平台,基于 Java Agent 技术与比对技术,通过流量录制回放能力实现快速有效的回归测试。同时提供了接口测试、接口比对测试等丰富的自动化测试功能,无需编程能力也可快速上手

基于.NetCore开发博客项目 StarBlog - (26) 集成Swagger接口文档

## 前言 这是StarBlog系列在2023年的第一篇更新😃~ 在之前的文章里,我们已经完成了部分接口的开发,接下来需要使用 curl、Postman 这类工具对这些接口进行测试,但接口一多,每次测试都要一个个填入地址和对应参数会比较麻烦… 我们需要一种直观的方式来汇总项目里的所有接口,并且如果

基于百度智能云的OCR接口进行图文识别

由于一些客户的内部系统需要提取一些记录信息,如果手工录入会变得比较麻烦,因此考虑使用百度云的OCR进行图片文字的提取处理,综合比较了一下开源免费的Tesseract 类库进行处理,不过识别效果不太理想,因此转为了百度的OCR云接口处理方式,测试的效果比较理想,基本上较少出现错别字。本篇随笔介绍如何利用百度OCR进行图片文字的提取处理,以便从别的系统中批量化获得响应的系统数据,然后进行相应的格式化处

在基于vue-next-admin的Vue3+TypeScript前端项目中,为了使用方便全局挂载对象接口

在基于vue-next-admin 的 Vue3+TypeScript 前端项目中,可以整合自己的 .NET 后端,前端操作一些功能的时候,为了使用方便全局挂载的对象接口,以便能够快速处理一些特殊的操作,如消息提示、辅助函数、正则测试等等。本篇随笔介绍在Vue3+TypeScript 前端项目中全局挂载对象$u,获得相关 $u_interface 的统一入口的接口信息。这样在组件或者页面中就可以方

[转帖]Bash脚本编程学习笔记04:测试命令test、状态返回值、位置参数和特殊变量

https://www.cnblogs.com/alongdidi/p/test_exitStatus_positionalAndSpecialParameter.html 我自己接触Linux主要是大学学习的Turbolinux --> 根据《鸟哥的Linux私房菜:基础篇》(第三版) --> 马

[转帖]自动化测试分层

https://www.jianshu.com/p/3bea28840a74 2012年5月1日,Martin Fowler在他的博客(https://martinfowler.com/bliki/TestPyramid.html)上发表了著名的自动化测试金字塔。 Martin认为,基于用户接口(如

[转帖]Bash脚本编程学习笔记04:测试命令test、状态返回值、位置参数和特殊变量

Bash脚本编程学习笔记04:测试命令test、状态返回值、位置参数和特殊变量 我自己接触Linux主要是大学学习的Turbolinux --> 根据《鸟哥的Linux私房菜:基础篇》(第三版) --> 马哥的就业班课程。给我的感觉是这些课程对于bash的讲解,理论上是不够的,但是限于时间、篇幅和精

CGLIB动态代理对象GC问题排查

## 一、问题是怎么发现的 最近有个新系统开发完成后要上线,由于系统调用量很大,所以先对核心接口进行了一次压力测试,由于核心接口中基本上只有纯内存运算,所以预估核心接口的压测QPS能够达到上千。 压测容器配置:4C8G 先从10个并发开始进行发压,结果cpu一下就飙升到了100%,但是核心接口的qp