Skip to content

接口自动化测试实战

主讲:老钱

ceshiren.com


自我介绍

  • 江湖代号:老钱 。
  • 互联网行业工作时间10年:2年开发,8年测试;涉及后端开发,测试工具开发,运维,自动化测试,测试管理等工作,目前在一家互联网金融公司担任测试开发工程师。
  • 职业信条:测试不是二等公民,不懂开发误谈测试。

课程安排

  1. 典型电商接口应用环境准备
  2. 接口自动化测试程序项目结构
  3. 实战1:登录接口自动化测试
  4. 实战2:使用正确Token进行接口测试
  5. 实战3:测试无需Token接口
  6. 实战4:负向接口自动化测试 - 错误Token
  7. 实战5:负向接口自动化测试 - 错误商品ID

1. 典型电商接口应用环境准备


接口测试演练环境介绍

  • 电商项目工程:前后端分离的典型互联网应用 - 后端工程技术栈:spring-boot - 前端工程技术栈:vue.js
  • 业务场景:购物商城
  • 项目源码: - https://gitee.com/11547299/newbee-mall-api - https://gitee.com/11547299/newbee-mall-vue3-app

接口测试演练环境介绍

  • Demo:测试环境使用演示

接口测试实战应用配置与启动

  • 后端应用运行环境 - MySQL - Java - Maven
  • MySQL数据库搭建方法: docker搭建
  • # docker 启动参考命令 docker run -d --name <your mysql container> -v <your local path>:/var/lib/mysql -e MYSQL_ROOT_PASSWORD=<your mysql password> -p <your mysql port>:3306 mysql:latest

接口测试实战应用配置与启动

  • 配置内容 - 位置 newbee_mail_api/src/resources - 通过sql语句 newbee_mall_init.sql, 导入mysql基础数据 - 数据库参数配置,请在环境变量中配置如下参数: - mysql_host: mysql 数据库hostname 或者 IP - mysql_port: mysql 数据库端口号 - mysql_user: mysql 数据库用户名 - mysql_port: mysql 数据库密码 - server_port: 服务运行端口 - app_name: 服务名称

接口测试实战应用配置与启动

  • 后端应用开发工具(建议): Intellij Idea
  • 数据库客户端工具(建议):MySQL Workbench
  • 后端应用编译命令: mvn clean install
  • 后端应用启动命令: mvn spring-boot:run
  • 后端操作 Demo

接口测试实战应用配置与启动

  • 前端应用运行环境 - node (版本要求 16.*) - npm - yarn
  • 运行配置 - 保证前后端应用在相同机器上,并且是本机访问,则无需任何额外更改 - 如果前端与后端应用运行在不同机器上,则需要将前端应用的Restful API接口访问指向后端应用的实际host地址

接口测试实战应用配置与启动

  • 前端应用开发工具(建议): Visual Studio Code
  • 前端应用安装命令:yarn install
  • 前端应用编译命令: yarn build
  • 前端应用启动命令: yarn serve
  • 前端操作 Demo

接口测试实战应用配置与启动

  • 通过UI操作了解Restful API 接口的实际业务交互关系
  • 有效使用浏览器的开发者工具
  • 设计接口测试所需覆盖的实际业务场景
  • 本次课程中所涉及到的业务场景: - 登录,浏览首页,浏览商品

接口测试实战应用配置与启动

  • Demo1: 通过UI操作获取Restful API 接口实际交互细节
  • Demo2: 有效使用浏览器开发者工具
  • Demo3: 完整业务流程交互演练
  • 演示用户: - Username – 13511234567 - Password - 12345678


本章小结

  • 接口测试实战项目简介
  • 接口测试实战应用搭建方式
  • 典型业务流程
  • 接口测试所需 Restful API 接口交互详情获取

课程安排

  1. 典型电商接口应用环境准备

  2. 接口自动化测试程序项目结构
  3. 实战1:登录接口自动化测试
  4. 实战2:使用正确Token进行接口测试
  5. 实战3:测试无需Token接口
  6. 实战4:负向接口自动化测试 - 错误Token
  7. 实战5:负向接口自动化测试 - 错误商品ID

2. 接口自动化测试程序项目结构


接口自动化测试程序简介

  • 项目构成 - Java - Maven - JUnit 5 - API交互 ~ okhttp3
  • 工程位置: https://gitee.com/11547299/newbeemall-automation

接口自动化测试程序简介

  • 参数配置文件:config.json
  • 测试程序运行配置
  • Demo: 代码结构讲解

课程安排

  1. 典型电商接口应用环境准备

  2. 接口自动化测试程序项目结构

  3. 实战1:登录接口自动化测试
  4. 实战2:使用正确Token进行接口测试
  5. 实战3:测试无需Token接口
  6. 实战4:负向接口自动化测试 - 错误Token
  7. 实战5:负向接口自动化测试 - 错误商品ID

实战1:登录接口自动化测试


登录接口交互

  • 请求方法: Post
  • 请求 Path /api/v1/user/login
  • 请求体: JSON
  • 请求头: header
  • 接口响应: JSON

登录接口交互

  • 登录接口交互过程
  • 结果校验
  • Demo: 测试代码讲解

课程安排

  1. 典型电商接口应用环境准备

  2. 接口自动化测试程序项目结构

  3. 实战1:登录接口自动化测试

  4. 实战2:使用正确Token进行接口测试
  5. 实战3:测试无需Token接口
  6. 实战4:负向接口自动化测试 - 错误Token
  7. 实战5:负向接口自动化测试 - 错误商品ID

实战2:使用正确Token进行接口测试


使用正确Token的接口请求

  • 接口名称 goods detail
  • 接口请求 Path /api/v1/goods/detail/:goodId
  • 接口方法: Get
  • 获取正确Token的方法: 登录操作

使用正确Token的接口请求测试

  • 交互过程
  • 结果校验
  • Demo: 测试代码讲解

课程安排

  1. 典型电商接口应用环境准备

  2. 接口自动化测试程序项目结构

  3. 实战1:登录接口自动化测试

  4. 实战2:使用正确Token进行接口测试

  5. 实战3:测试无需Token接口
  6. 实战4:负向接口自动化测试 - 错误Token
  7. 实战5:负向接口自动化测试 - 错误商品ID

实战3:测试无需Token接口


无需Token的接口请求

  • 接口名称 Dashboard
  • 接口请求 Path /api/v1/index-infos
  • 接口方法: Get
  • 实现过程: 直接请求,不用预先登录

无需Token的接口请求测试

  • 交互过程
  • 结果校验
  • Demo: 测试代码讲解

课程安排

  1. 典型电商接口应用环境准备

  2. 接口自动化测试程序项目结构

  3. 实战1:登录接口自动化测试

  4. 实战2:使用正确Token进行接口测试

  5. 实战3:测试无需Token接口

  6. 实战4:负向接口自动化测试 - 错误Token
  7. 实战5:负向接口自动化测试 - 错误商品ID

实战4:负向接口自动化测试 - 错误Token


错误Token的接口请求

  • 接口名称 goods detail
  • 接口请求 Path /api/v1/goods/detail/:goodId
  • 接口方法: Get
  • 实现过程: 设定错误Token,之后请求接口

错误Token的接口请求测试

  • 交互过程
  • 报错信息结果校验
  • Demo: 测试代码讲解

课程安排

  1. 典型电商接口应用环境准备

  2. 接口自动化测试程序项目结构

  3. 实战1:登录接口自动化测试

  4. 实战2:使用正确Token进行接口测试

  5. 实战3:测试无需Token接口

  6. 实战4:负向接口自动化测试 - 错误Token

  7. 实战5:负向接口自动化测试 - 错误商品ID

实战5:负向接口自动化测试 - 错误商品ID


错误商品ID接口请求

  • 接口名称 goods detail
  • 接口请求 Path /api/v1/goods/detail/:goodId
  • 接口方法: Get
  • 实现过程: 设定错误商品Id,之后请求接口

错误商品ID接口请求测试

  • 交互过程
  • 报错信息结果校验
  • Demo: 测试代码讲解

课程安排

  1. 典型电商接口应用环境准备

  2. 接口自动化测试程序项目结构

  3. 实战1:登录接口自动化测试

  4. 实战2:使用正确Token进行接口测试

  5. 实战3:测试无需Token接口

  6. 实战4:负向接口自动化测试 - 错误Token

  7. 实战5:负向接口自动化测试 - 错误商品ID


课程总结

  • 接口测试演练环境搭建
  • Java后端应用
  • vuejs 前端应用
  • 接口测试项目架构
  • 接口请求方法
  • 接口请求发送参数设定
  • 接口响应数据读取和校验

课后作业

  1. 搭建接口测试演练电商应用
  2. 正向测试 - 使用正确用户名、密码测试登录接口
  3. 正向测试 - 商品详情接口测试
  4. 正向测试 - Dashboard接口测试
  5. 负向测试 - 使用错误用户名或密码测试登录接口
  6. 负向测试 - 使用错误的Token测试商品详情接口
  7. 负向测试 - 使用错误的商品ID测试商品详情接口
  8. 为接口自动化测试添加Allure Report

谢谢