接口自动化测试实战
主讲:老钱
ceshiren.com
自我介绍
- 江湖代号:老钱 。
- 互联网行业工作时间10年:2年开发,8年测试;涉及后端开发,测试工具开发,运维,自动化测试,测试管理等工作,目前在一家互联网金融公司担任测试开发工程师。
- 职业信条:测试不是二等公民,不懂开发误谈测试。
课程安排
- 典型电商接口应用环境准备
- 接口自动化测试程序项目结构
- 实战1:登录接口自动化测试
- 实战2:使用正确Token进行接口测试
- 实战3:测试无需Token接口
- 实战4:负向接口自动化测试 - 错误Token
- 实战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:使用正确Token进行接口测试
- 实战3:测试无需Token接口
- 实战4:负向接口自动化测试 - 错误Token
- 实战5:负向接口自动化测试 - 错误商品ID
2. 接口自动化测试程序项目结构
接口自动化测试程序简介
- 项目构成 - Java - Maven - JUnit 5 - API交互 ~ okhttp3
- 工程位置: https://gitee.com/11547299/newbeemall-automation
接口自动化测试程序简介
- 参数配置文件:config.json
- 测试程序运行配置
- Demo: 代码结构讲解
课程安排
-
典型电商接口应用环境准备
-
接口自动化测试程序项目结构
- 实战1:登录接口自动化测试
- 实战2:使用正确Token进行接口测试
- 实战3:测试无需Token接口
- 实战4:负向接口自动化测试 - 错误Token
- 实战5:负向接口自动化测试 - 错误商品ID
实战1:登录接口自动化测试
登录接口交互
- 请求方法: Post
- 请求 Path /api/v1/user/login
- 请求体: JSON
- 请求头: header
- 接口响应: JSON
登录接口交互
- 登录接口交互过程
- 结果校验
- Demo: 测试代码讲解
课程安排
-
典型电商接口应用环境准备
-
接口自动化测试程序项目结构
-
实战1:登录接口自动化测试
- 实战2:使用正确Token进行接口测试
- 实战3:测试无需Token接口
- 实战4:负向接口自动化测试 - 错误Token
- 实战5:负向接口自动化测试 - 错误商品ID
实战2:使用正确Token进行接口测试
使用正确Token的接口请求
- 接口名称 goods detail
- 接口请求 Path /api/v1/goods/detail/:goodId
- 接口方法: Get
- 获取正确Token的方法: 登录操作
使用正确Token的接口请求测试
- 交互过程
- 结果校验
- Demo: 测试代码讲解
课程安排
-
典型电商接口应用环境准备
-
接口自动化测试程序项目结构
-
实战1:登录接口自动化测试
-
实战2:使用正确Token进行接口测试
- 实战3:测试无需Token接口
- 实战4:负向接口自动化测试 - 错误Token
- 实战5:负向接口自动化测试 - 错误商品ID
实战3:测试无需Token接口
无需Token的接口请求
- 接口名称 Dashboard
- 接口请求 Path /api/v1/index-infos
- 接口方法: Get
- 实现过程: 直接请求,不用预先登录
无需Token的接口请求测试
- 交互过程
- 结果校验
- Demo: 测试代码讲解
课程安排
-
典型电商接口应用环境准备
-
接口自动化测试程序项目结构
-
实战1:登录接口自动化测试
-
实战2:使用正确Token进行接口测试
-
实战3:测试无需Token接口
- 实战4:负向接口自动化测试 - 错误Token
- 实战5:负向接口自动化测试 - 错误商品ID
实战4:负向接口自动化测试 - 错误Token
错误Token的接口请求
- 接口名称 goods detail
- 接口请求 Path /api/v1/goods/detail/:goodId
- 接口方法: Get
- 实现过程: 设定错误Token,之后请求接口
错误Token的接口请求测试
- 交互过程
- 报错信息结果校验
- Demo: 测试代码讲解
课程安排
-
典型电商接口应用环境准备
-
接口自动化测试程序项目结构
-
实战1:登录接口自动化测试
-
实战2:使用正确Token进行接口测试
-
实战3:测试无需Token接口
-
实战4:负向接口自动化测试 - 错误Token
- 实战5:负向接口自动化测试 - 错误商品ID
实战5:负向接口自动化测试 - 错误商品ID
错误商品ID接口请求
- 接口名称 goods detail
- 接口请求 Path /api/v1/goods/detail/:goodId
- 接口方法: Get
- 实现过程: 设定错误商品Id,之后请求接口
错误商品ID接口请求测试
- 交互过程
- 报错信息结果校验
- Demo: 测试代码讲解
课程安排
-
典型电商接口应用环境准备
-
接口自动化测试程序项目结构
-
实战1:登录接口自动化测试
-
实战2:使用正确Token进行接口测试
-
实战3:测试无需Token接口
-
实战4:负向接口自动化测试 - 错误Token
-
实战5:负向接口自动化测试 - 错误商品ID
课程总结
- 接口测试演练环境搭建
- Java后端应用
- vuejs 前端应用
- 接口测试项目架构
- 接口请求方法
- 接口请求发送参数设定
- 接口响应数据读取和校验
课后作业
- 搭建接口测试演练电商应用
- 正向测试 - 使用正确用户名、密码测试登录接口
- 正向测试 - 商品详情接口测试
- 正向测试 - Dashboard接口测试
- 负向测试 - 使用错误用户名或密码测试登录接口
- 负向测试 - 使用错误的Token测试商品详情接口
- 负向测试 - 使用错误的商品ID测试商品详情接口
- 为接口自动化测试添加Allure Report
