霍格沃兹测试开发

雪球 APP 抓包与 Mock 实战

霍格沃兹测试开发

ceshiren.com

讲师介绍

讲师-AD

  • 霍格沃兹测试学院讲师
  • 项目经理
  • 测试开发工程师
  • 曾任某金融公司测开开发工程师

目录

  • 训练营学习路线
  • 接口测试的学习路线
  • 接口测试与mock实战练习

接口测试训练营

  • 由浅入深
  • 实践+理论
  • 赠送礼品
    • 到课率
    • 作业
    • 考试分数

@startmindmap
scale 1000 * 600
* 接口测试训练营内容
** 第一天
*** 接口测试工具
*** 接口Mock实战
*** 作业
** 第二天
*** 接口测试用例编写
*** 接口自动化测试实战
*** 作业
** 第三天
*** 接口前沿技术
*** 用例自动生成技术
*** 考试
@endmindmap

接口测试学习路线

参考内容

  • 思维导图展示

接口测试概念

  • 接口:不同的系统之间相互连接的部分,是一个传递数据的通道
  • 接口测试:检查数据的交换、传递和控制管理过程

接口测试的测试方法(功能)

actor 测试工程师 as tester
participant Web页面 as web
' actor 接口测试工程师 as tester2
participant 服务端 as server
scale 1000

group 功能测试
tester -> web:  点击输入的操作
web -> server: 向后端发起请求
server -> web: 返回响应信息
tester -> web: 校验展示效果、数据和预期是否一致
end group


group 接口测试
tester -> server:  向后端发起请求(通过postman等接口测试工具)
server -> tester: 返回响应信息
tester -> web: 校验展示数据和预期是否一致
end group

接口测试的价值

  • 传统的测试方法成本急剧上升
  • 测试效率下降

Mock使用场景

提高效率就是节省成本

link

Mock过程

https://www.processon.com/diagraming/62e89a021efad40790866235

使用场景总结

  • 应用场景
    • 第三方系统数据交互
    • 前后端数据交互
    • 硬件设备解耦
  • 优点
    • 不依赖第三方数据
    • 节省工作量、节省联调时间

Mock测试常用工具

  • 可视化工具:
    • Fiddler
    • Charles
  • 命令行工具:
    • Mitmproxy
    • Anyproxy

使用这些工具可以做什么?

  • 简单使用
    • 抓包分析
    • 弱网测试
    • 简单mock,造数据
  • 复杂场景
    • 构建MockServer
    • 实现接口流量录制
    • 自动生成自动化测试脚本

第三方系统复杂场景

  • 测试第三方接口支付接口失败重试机制
title 正常支付场景
participant 客户端 as c
participant 第三方支付接口 as s 
autonumber
scale 700*450

c->s:发起请求
s->c: 支付成功
title mock支付失败场景
participant 客户端 as c
participant Mock服务 as mock 
autonumber
scale 800*550


c->mock:发起请求
mock->c: 模拟响应失败
c->mock:第二次重新发起请求
mock->c: 模拟响应失败
c->mock:第三次重新发起请求
mock->c: 支付成功

第三方系统复杂场景

  • 测试第三方接口支付接口失败重试机制
mitmproxy

自动生成接口自动化测试脚本

mitmproxy

效果图

mitmproxy

Charles 安装配置

工具介绍

  • 支持 SSL 代理
  • 支持流量控制
  • 支持重发网络请求,方便后端调试
  • 支持修改网络请求参数
  • 支持网络请求的截获并动态修改
  • 可以自动将 json 或 xml 数据格式化,方便查看

安装

  • Charles 官网:
    • https://www.charlesproxy.com/
  • 学社下载地址
    • https://download.ceshiren.com/charles/
link

Charles 基础设置

电脑证书配置

Mac 系统安装证书

  • 注意:选择始终信任
link

Windows 系统安装证书

link
link

Charles 端设置 ssl

link

移动端代理配置

  1. 设备和电脑处于同一 WIFI(模拟器不需要配置)
  2. 移动端网络设置
    • 服务器 ip 地址
    • 设置端口
  3. 安装证书
    • 系统浏览器访问 chls.pro/ssl
    • iOS:描述文件中安装证书
    • iOS:信任证书
  4. 演示使用 mumu 模拟器(Android 6)

注意事项

  • Android 6 以上的系统 app 默认不信任抓包证书
    • 需要开发修改代码
    • 大部分测试 app 安装包默认打开状态
  • iPhone 10 系统以上需要在 设置->通用->关于本机->证书信任设置 中打开信任开关

抓包分析接口

抓包分析

常用应用场景:

  • 解决移动端接口测试
  • 解决接口测试过程中检查传参错误问题

接口分析

  • 抓包正常请求信息
  • curl 命令发起的请求信息 curl --proxy http://127.0.0.1:8080

Charles Mock功能介绍

@startmindmap
scale 1000*500
 * Charles Mock工具使用
 ** 断点
 *** 介绍: 接口测试
 ** map local
 ** map remote
 ** rewrite
@endmindmap

Rewrite 实战

  • 修改雪球行情页面的股票名称
  • 修改雪球行情页面的股票价格

学员练习成果展示

https://ceshiren.com/t/topic/11041/3

https://ceshiren.com/t/topic/12359

总结

作业内容: https://jinshuju.net/f/zTNreI

  • 下节预告
    • 接口测试用例编写
    • 接口自动化测试