软件测试 / 测试开发丨接口测试学习笔记分享
点此获取更多相关资料
本文为霍格沃兹测试开发学社学员学习笔记分享
一、Mock 测试
1、Mock 测试的场景
前后端数据交互
第三方系统数据交互
硬件设备解耦
2、Mock 测试的价值与意义
不依赖第三方数据
节省工作量
节省联调
3、Mock 核心要素
匹配规则:mock 的接口,改哪些接口,接口哪里的数据
模拟响应
4、mock 实战
(1)Rewrite 原理
场景举例
修改雪球行情页面的股票名称
修改雪球行情页面的股票价格
设置方法
Tools -> Rewrite
勾选 Enable Rewrite
点击下方 Add 按钮新建一个重写的规则
在右侧编辑重写规则
点击 ok 生效
(2)Map Local 原理
场景举例
修改雪球行情页面的股票名称
修改雪球行情页面的股票价格
操作
准备本地接口响应数据
配置 Map Local
修改 Map Local 配置:Tools – Map Local
(3)Map Remote 原理
场景举例
访问百度,转发至豆瓣
访问开发环境,转发至测试环境
前端:http://stuq.ceshiren.com:8081/#/mapLocal
开发环境接口: http://stuq.ceshiren.com:8089/report/showMapLocal
测试环境接口: http://stuq.ceshiren.com:9098/report/showMapLocal
操作
选择接口,点击鼠标右键,选择 Map Remote 进入到设置页面
设置重定向的接口信息
点击 ok 生效
修改设置:Tools – Map Remote 找对对应接口双击进入修改界面
二、Mock 技术体系
1、 Mock 的价值和意义
提高测试深度
提高测试效率
降低成本
2、 Test Double 测试替身
Test Double 官网:TestDouble
Dummy 占位对象 对象被传递但从未实际使用过。通常它们仅用于填充参数列表。
Fake 假对象 对象实际上有工作实现,但通常采取一些捷径,这使得它们不适合生产(内存数据库就是一个很好的例子)。
Stubs 桩对象 为测试期间调用提供预设答案,通常根本不响应任何超出测试程序的内容。
Spies 间谍对象 它们还根据调用方式记录一些信息。其中一种形式可能是电子邮件服务,它记录发送了多少消息。
Mocks 模拟对象 是我们在这里谈论的:预先编程的对象,这些期望形成了它们期望接收的调用的规范。
3、 测试替身关键概念的区别
4、 技术架构例子
dummy 只要端口开着就行
fake 内存数据库
spy UI 界面后端请求记录
stub 假的登录后端服务
hook 新用户判断方法修改
proxy 代理转发机制
mock 模拟对象
5、 Fake 假对象 定义
假对象实际上有工作实现,但通常采取一些捷径,这使得它们不适合生产(纯内存数据库就是一个很好的例子)。
6、 Fake 应⽤场景
7、 Stub 桩定义
为测试期间调用提供预设答案,通常根本不响应任何超出测试程序的内容。
8、 Stub 应⽤场景 Swagger
9、 Mock 模拟对象定义
模拟预编程了期望,这些期望形成了他们期望接收的调用的规范。如果他们收到了他们不期望的调用,他们可以抛出异常,并在验证过程中进行检查以确保他们得到了他们期望的所有调用。
10、 Mock 两种应用场景
mock on stub:按需返回期望数据
mock on proxy:按需返回真实数据的修改副本
11、 常⽤的 Mock 工具
Charles 测试工程师常用
BurpSuite 黑客常用
Fiddler 只能 Windows 上使用
Nginx 服务器反向代理与修改
Mitmproxy 代理工具 可编程
Wiremock 代理工具 可编程
12、 mitmproxy
官网:mitmproxy.org/
mitmproxy 是一组为 HTTP/1、HTTP/2 和 WebSockets 提供交互式、支持 SSL/TLS 的拦截代理的工具。
13、 mitmproxy 强大的插件机制 Addons
dns
tcp
cert
http/https
websocket
14、adb mock 案例
链接:微信小程序自动化测试辅助工具 adb_xweb_mock - appium - 测试人社区
15、 WireMock
官网:wiremock.org/
用于构建 mock API 的灵活工具。创建稳定的开发环境,将自己与古怪的第三方隔离开来,并模拟尚未存在的 API。
三、mock 工具与定制化
1、 Mitmproxy 简介
mitmproxy:交互式的命令行工具注意:不支持 windows
mitmweb:基于浏览器的界面交互工具
mitmdump:简单的终端输出,可以编写强大的插件和脚本
官方网站:mitmproxy.org/
2、 Mitmproxy 安装
推荐使用 python 进行安装
3、 PC 端证书配置
配置电脑代理
启动 mitmproxy
在浏览器输入地址:mitm.it
选择对应系统下载证书并安装
4、 移动端证书配置
在手机配置代理,ip 配置为电脑的 ip 地址,端口配置为 mitmproxy 监听端口
启动 mitmproxy
在手机浏览器输入地址 mitm.it
选择 Android,下载并安装,即可成功抓取手机端的 https 的数据包。
5、 mitmdump 参数介绍
-p 参数,指定监听端口,默认监听 8080
-s 参数,执行 python 脚本
6、 核心组件
Addons(插件):https://docs.mitmproxy.org/archive/v5/addons-overview/
Events(事件):https://docs.mitmproxy.org/archive/v5/addons-events/
版权声明: 本文为 InfoQ 作者【测试人】的原创文章。
原文链接:【http://xie.infoq.cn/article/e30f8c92fed2cde99efe7c399】。文章转载请联系作者。
评论