接口测试基础

embedded/2024/10/21 7:31:12/

一、认识接口测试

9d9b3fd2f1544c0499b49d9e537d8e28.png


接口测试

接口:系统之间数据交互的通道。

  • 硬件接口

  • 软件接口


fae44ac390dc45beb611673d3f61d5b5.png


接口测试:基于不同的输入参数,校验接口响应数据与预期数据是否一致。


为什么要学接口测试?

  • 提前介入测试、尽早发现问题

  • 中级测试工程师必备技能

18783831634c41d7aebde6677981a2fb.png


接口测试学什么?

  • 接口测试用例设计

  • 工具实现接口测试

  • 代码实现接口测试

2e1dc4f6762a4a80a0cded669d4f12a6.png


二、项目介绍

项目介绍

  • 项目名称:客达天下

  • 项目类型:销售管理系统 (CRM)

  • 项目特点:

    • 前后端分离

    • 功能通用性强

a167a8aceb9940f193511c496b07af78.png


熟悉项目

  • 项目角色:销售人员、销售经理、财务人员等

  • 项目业务:线索管理、合同管理等

  • 项目技术:

99bbf24f42a74edc93a99c86ec3102a4.png


待测接口

 需求:完成管理业务及相关单位模块接口测试。
合同管理业务登录添加课程上传合同新增合同
课程管理模块添加课程修改课程查询课程删除课程

64691b5ce06b4f219690cea5d8939436.png


接口测试流程

920cb6735ed9403fb156d64110df72f1.png


三、HTTP协议

3296f7f3ad62407e8bd4e5a9e0380b77.png


URL

URL:是互联网上标准资源的地址,一般称为统一资源定位符。

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

示例:

8befb7f37ec9410c920d8d518ec2edd7.png


HTTP协议

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

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

组成:

  • HTTP请求:定义请求数据格式

    • 请求行、请求头、请求体

  • HTTP响应:定义响应数据格式

    • 状态行、响应头、响应体


HTTP —请求行

位置:请求数据第一行

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

356de25b276a42cbb778ff5cfd73db15.png


常用请求方法:

  • GET:从服务器获取资源

  • POST:在服务器新建一个资源

  • PUT:在服务器更新资源

  • DELETE:从服务器删除资源


HTTP请求—请求头

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

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

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

baad76fdf1fc44e8afd8083c798539d4.png


Content-Type:请求体数据类型

  • text/html:HTML格式

  • image/jpeg:jpg图片格式

  • application/json:JSON数据格式

  • application/x-www-form-urlencoded:表单默认的提交数据格式

  • multipart/form-data:在表单中进行文件上传时使用


HTTP请求—请求体

位置:空白行之间的内容

作用:传输数据实体

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

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

140da9c1b9824df98642deadb0677e27.png


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


HTTP响应—状态行

位置:响应数据第一行

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

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

84ab820e7f58454e978dc5e05c461273.png


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

 1XX:提示信息2XX:成功3XX:重定向4XX:客户端错误5XX:服务端错误

HTTP响应—常见的响应状态码

54527f14ec3241e6a0a8c90b3189f393.png


HTTP响应—响应头

位置:第二行开始到空白行之间

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

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

182d5437eec046ef98692fc41f08d5c3.png


HTTP响应—响应体

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

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

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

332b1001fa3843eabe23577ff5fec61a.png


案例:

5ef773462df44478b8a046cc38284b30.png


四、接口规范

接口规范

作用:让前端开发与后台接口开发人员更好的配合,提高工作效率

常见接口规范:

传统接口风格

 RESTful接口风格

3f5362ac41be4d59a27084dae7c30cdb.png


传统接口风格

示例:对用户进行操作的相关接口,包括增删改查

872a0594bc914974909f953afe8a6544.png


RESTful

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

示例:

d354d3dcc72f48c390761b809571e2a9.png


特点:

  • 请求 API 的 URL 用来定位资源
  • 通过标准HTTP方法对资源进行增删改查操作
  • 利用HTTP状态码返回状态信息

区别

c15ca0099f3545d7b00a819f8647485d.png


Postman测试步骤

9cf2b35dd45e43c7900f52c650c740dd.png


一、合同新增业务

e1b0aa6180164ceea04dfc55d421add9.png


二、找业务路径

3bd0a330e8654b758c7c6485494ba45d.png


三、解析接口文档

7d076ef7ee9e4ec0871b5dfe430eea01.png


四、编写接口测试用例

65bed71bdeb4408dbb7eeec6ede20fa7.png


总结

1aa0a52f09234a559ef741ec9d731ffc.png


Postman使用

一、Postman介绍

介绍:Postman是一款接口调试工具

特点:支持 Mac、Windows 和 Linux

下载:

 https://www.getpostman.com

4e72dfa8a7574b1dba07aa7a7d20e597.png


二、登录接口调式

获取验证码

 需求:使用postman访问验证码接口,并查看响应结果​地址:
​​​​​​​ http://kdtx-test.itheima.net/api/captchaimage​实现步骤1.设置请求方式2.输入接口地址3.点击发送请求4.查看响应结果

a37546fa92d248249cc43d5ef1d8fcf2.png


登录

 需求:使用Postman访问验证码接口,并查看响应结果说明:地址:http://kdtx-test.itheima.net/api/login方法:post请求数据:请求头:Content-Type:application/json请求体:["username": "admin","password": "admin 123","code":"2","uuid":"验证码接口返回结果中的数据值"]实现步骤:1.设置请求方式2.输入接口地址3.点击发送请求4.查看响应结果

156268fc6ece41779f96f1ba04821430.png


总结

d43638f592e3439ca9d6f56d73af3527.png


三、自动关联数据

问题:每次登录之前都需要手动复制验证码数据

思路:

6d2159a872a04f2687adbd6cbaf9f96f.png


自动关联数据

环境创建与选择

e313e7e586fb4dd8b8fbaa7169dc5b65.png


案例:使用自动关联技术,实现登录成功

需求:

 1.验证码接口:/api/captchaimage2.登录接口:/api/login登录接口请求体uuid字段 -> 验证码接口返回 uuid字段

分析:

 1.验证码接口响应体中提取uuidvar jsonData = pm.response.json();2.设置环境变量保存uuidpm.environment.set("var_name",value);3.登录接口引用uuid请求参数中引用: {{var_name}}

c3d04bd5a05d45539285a4c413f831da.png


总结

a02f7776a80d4652a9b5cda77048b06a.png


接口调式

一、添加课程接口调试

1b5f9b1b4af347869906186e54abe31b.png


二、上传合同接口调试

bd59ec39708b4330b827ee8fbaee850d.png


Postman调试合同上传接口

6ae6443169f34c8fbcab909fd1686aab.png


6c181f797d8f4f6abc3848555cb1272f.png


三、新增合同接口调试

添加合同接口调试

1a4f7e49ebf34950a1fe50c492c8f332.png

注意:

测试数据中的合同编号 contracNo 必须唯一。


查询合同列表接口调试

6af519951c844b1aa6604269e3150443.png


总结

6adc026629c04bac8a54929e64d548a3.png


Postman进阶

一、批量执行

735f7adb6c2e45388c47421b4e4d9634.png


Postman批量执行

作用:通过运行测试集的方式批量运行测试用例

步骤:

  1. 点击测试集中的 "Run" 按钮,批量运行测试用例

  2. 弹出 Collection Runner窗口,点击运行按钮

  3. 查看测试结果

638741ef8f524ed7bce683fdad430019.png


1d18dc21453f4f41bb077b8c3145e8ba.png


aa87e3335c0c4e88958c3bd99a6373bb.png


1f2e4449ce69418aadfb2cab9e797ac2.png


二、登录接口测试

d33b854278764f998d819a7e6964f400.png


案例:完成 KDTX项目登录接口用例设计

需求:已注册正确的用户名和密码,登录成功用户名或密码错误,登录失败,提示 "用户名或密码错误"需求:按照接口测试思路进行测试点分析从测试点转化为测试用例使用Postman进行接口测试

提取测试点

2d43ddda31064601b6e5dadb76397005.png


设计测试用例

227f2b07012040118b3426a1d5757c9f.png


步骤:

  • 点击测试集中的 "Add folder" 添加文件夹管理测试用例

  • 点击文件夹上的 "Add Request" 添加请求实现测试用例

27840e5900d748b99ccd9c308f53d33a.png


总结

1f0688c00cb146daa8eafec3c55869bc.png


三、Postman断言

Postman断言介绍

作用:让Postman工具代替人工自动判定预期结果和实际结果是否一致。

用法:

f45953d0f43c46c59faef46f06023796.png


Postman断言—响应状态码断言

模块名称:Status code:Code is 200

模块内容:

// 判断响应状态码是否等于 200
pm.test("status code is 200", function() {pm.response.to.have.status(200);
});
pm.test() 
参数1:字符串-测试断言名称
参数2:回调函数-具体断言语句
pm.response.to.have.status(code:Number);  // 判断是否包含指定的状态码

Postman断言—包含指定字符串断言

模块名称:Response body: Contains string

模块内容:

2c0520e836cf48c99c386ccc34133f94.png


Postman断言—JSON断言

模块名称:Response body: JSON value check

模块内容:

9fc5e4975b7f4a36acf8c66e1c75154a.png


6ddcbfd30c9d4db0887e015f110ff824.png


总结

4d9cb15bd17f47a7826d096ac4acb667.png


四、参数化

Postman参数化介绍

场景:测试脚本中仅测试数据不一样,使用参数化比提高脚本复用。

步骤:

  • 测试数据保存在数据文件单独维护

  • 引用数据文件实现脚本循环调用

c1667ebc3fac4846ad8d8038200b1e69.png


Postman参数化实现

准备数据文件

a34cd38b8e0e414297999a2492057189.png


引用数据文件数据

4b8a8246f4d34d81a01b3aa55a85607c.png


Postman参数化实现

选择数据文件:运行测试集时选择数据文件

99eaa54576124f728c272e90f0e4b157.png


5967f7bd6f014f9cb456e9c573aa579e.png


总结

490dd1ef95254a6fa6b67da2d54f8cba.png


课程项目实践

一、课程添加

课程添加接口文档

4c72e0153a9344cea8bc92cae9b8ffd0.png


9ed60101e90342b193315a44bd38f4b3.png


1.提取测试点

2343872678fb4131909c3fa8094cc30e.png


2.设计测试用例

1166e1678240409d82b857a1c3ab0ad1.png


3.使用Postman进行接口测试

步骤:

  • 点击测试集中的 "Add folder" 添加文件夹管理测试用例

  • 点击文件夹上的 "Add Request" 添加请求实现测试用例

ef6644dde608447f991d11dcb2416a58.png


总结

c686b6fbad4a407dab0e12015fc40e62.png


二、查询课程列表

查询课程列表接口文档

5f670219a3374ebbbd24aaeadb80ec96.png


5e7780fb4192447e9bbef1dd20679f78.png


提取测试点

b990c7e215c14ed089b6ec5763048baf.png


设计测试用例

8c6599f0b2b04215856de4a870b33256.png


三、课程修改

课程修改接口文档

0728926f09a6492f81a5e863fbfba3c6.png


50bd2efb5b9941c68de0b57694dd4f6f.png


提取测试点

572b9e1c6ed643bb9954eb5c70dab7a7.png


设计测试用例

eb0412698d734ebcb11aae8c4dbd8841.png


四、课程删除

课程删除接口文档

04739869d4c14774a4eceab4a5f67ad8.png


59dfd8a4c0064fb7a1aa6ec9e2e6d0bc.png


提取测试点

d789afb83b02421a9e92548f61742e6f.png


设计测试用例

f206f65daaee45d9b6ccedddb4c01ce7.png


 


http://www.ppmy.cn/embedded/86884.html

相关文章

【Linux】线程的理解

目录 页表详解 简单创建线程 线程可谓是大名鼎鼎了,它的重要性不亚于我们之前学的进程,之所以说进程重要,那是因为进程就代表着用户,用户所作的操作都是以进程为载体的,而今天要说的线程甚至比进程还要重要。那么什么…

PHP压缩打包,下载目录或者文件,解压zip文件

函数 /*** 压缩整个文件夹为zip文件* 本地需要绝对路径,服务器需要相对路径*/function makeZipFile($zip_path , $folder_path ) {$rootPath realpath($folder_path);$zip new ZipArchive(); // $zip->open($zip_path, ZipArchive::CREATE | ZipArchi…

org.springframework.context.annotation.DeferredImportSelector如何使用?

DeferredImportSelector 是 Spring 框架中一个比较高级的功能,主要用于在 Spring 应用上下文的配置阶段延迟导入某些组件或配置。这个功能特别有用,比如在处理依赖于其他自动配置的场景,或者当你想基于某些条件来决定是否导入特定的配置类时。…

从零开始构建你的第一个Python Web应用

在本文中,我们将带领你从零开始构建一个简单的Python Web应用。不需要任何先验知识,我们会一步步地指导你完成设置、框架选择、代码编写到部署的整个过程。无论你是Web开发新手还是希望扩展技能的老手,这篇文章都将为你提供一个实践操作的起点…

免费听书,看小说全搞定

今天分享几个免费听书,看小说的app。 首先是之前分享过的 笔趣阁,搜书名,作者,主角。 开始阅读。 设置样式。 漫画分类。 第2个是内置书源版的小书包,它是基于阅读二次开发的版本,继承了阅读中的实用功能&…

使用git工具管理泰山派内核源码目录及抽打补丁简易流程

目录 使用git工具管理泰山派内核源码目录及抽打补丁简易流程 一、使用git维护源码 二、git 常用的一些操作 三、抽补丁 四、打补丁 五、补充 使用git工具管理泰山派内核源码目录及抽打补丁简易流程 最近,在做linux开发的过程中入手了一块泰山派RK3566的开发板…

新能源汽车的充电网络安全威胁和防护措施

1. 物理攻击:例如恶意破坏、搬走充电设施等,这可能会对充电设施造成损害,妨碍正常的电力传输。 2. 网络攻击: 黑客可能利用系统漏洞攻击网络,破坏设备,并窃取用户的个人信息、支付信息等; 车辆…

OpenJudge | 波兰表达式

总时间限制: 1000ms 内存限制: 65536kB 描述 波兰表达式是一种把运算符前置的算术表达式,例如普通的表达式2 3的波兰表示法为 2 3。波兰表达式的优点是运算符之间不必有优先级关系,也不必用括号改变运算次序,例如(2 3) * 4的波兰表示法为…