通用Mock平台实践
产品质量部-测试技术组
第一部分:Mock平台的使用背景
-- Mock平台的由来
-- Mock平台的价值
MOCK平台的由来
在联调环境不可用的时候,我们需要一个系统来
模拟外部银行,商户与支付宝系统的互交。
Mock是一个每人都能想到的东西,但是。。
我们需要怎样的一个模拟系统?
– 接口模拟小程序?
– 无存储的模拟服务器?
– 面向用户的模拟平台?
MOCK平台的由来
支付宝外部接口现状:
– 支付宝有450余商户接口。
– 支付宝有300余活跃着的银行渠道。
– 不同的前置网关,不同的入口配置。
测试中可能碰到了问题:
– 需要能够快速地在交付过程中开发mock接口。
– 接口能适应 升级包/技术改造 带来的改变。
– 新测试人员在不是很了解接口规范的情况下也能完成
测试。
MOCK平台的由来
支付宝接口模拟关键字:
– 轻量的开发。
– 变化的适应。
– 适当的封装。
以上要求决定了我们的mock需要是一个:
– Server,Client兼备的。
– 配置型的。
–
模板
个人简介word模板免费下载关于员工迟到处罚通告模板康奈尔office模板下载康奈尔 笔记本 模板 下载软件方案模板免费下载
化的。
– 可共享的。
MOCK平台的由来
这样的一个平台会带来不小的开发量,那么,它
到底会给我们带来什么呢?
MOCK的价值
原始价值:
– 模拟系统,解决不可测问题。
后面发现的附带价值:
– 更容易地制造异常,帮助总结异常模型。
– 接口与测试数据的保存与交流.
– 完成
流程
快递问题件怎么处理流程河南自建厂房流程下载关于规范招聘需求审批流程制作流程表下载邮件下载流程设计
的切断的测试。(跳跃数据初始化过程)
– 帮助完成报文内容的查看和测试。
第二部分:Mock系统实践
-- Mock的需求者
-- 基于需求的思考
--(例)API平台的配置
--(例)银行Mock的设计
-- 与其他测试技术的结合
MOCK的需求者
商户:
协议
离婚协议模板下载合伙人协议 下载渠道分销协议免费下载敬业协议下载授课协议下载
类似,互交方式和接口数据结构不同
。
银行:上百渠道,协议,互交,内容均不同。
测试者:测试不同业务,mock需要能够适配。
项目管理者:不同项目,需要不同版本的接口。
测试主管:有的测试者需要测试正常,有的测试
者需要测试异常,不能有影响。
基于需求的思考
实现mock需要考虑的问题:
– 接口覆盖-三个维度
• 系统互交方式
• 通信协议
• 传输报文的内容
– 不同的测试者,需要不同的mock数据。
• 协议码(基于报文的判断系统)
• 监听型日志
• 权限控制
基于需求的思考
– 如何在项目用,配置及应用mock
• 初期审核及文档
• 开发,测试,PM角色协调
• 做到关注output
实践mock情况简介:
– 对于Apitest平台(client型)的配置方法。
– 对于银行mock的设计。(anymock2.0)
API平台的配置
Apitest平台:Client型的接口模拟:
– 全面的参数化。
– 合理的(接口配置)权限控制。
API平台的配置
接口的拼装。
– 不同的编码方式。
– 业务与协议参数。
– 各种签名的生成。
– 随机数id的生成。
银行Mock的设计
银行mock,覆盖较为全面的接口mock平台:
– 接口覆盖范围广,适配程度高。
– 扩展性与可插拔特性。
– 使用者分层: 高级的-Mock模板配置人员。
银行Mock的设计
– 普通的接口使用人员 : 基于模板的视图
– 个性化日志(监听型日志)。
银行Mock的实践
mock组件,帮助mock完成拓展的功能:
– 报文分发器。-基于关键字,基于特殊规则。
– 各类报文处理util. -基于不同格式报文。
– 报文验证器。 -server型
– 自定义组件的加入。 -提供签名验签等入口。
mock的其他条件:
– 业务测试时,签名验签功能的无效化。
– Jar包类型加密,加签的报文,Mock掉jar包。
与其他测试技术的结合
对于各类测试的支持
– 自动化测试
• 提供接口设置。
• 提供URL或者脚本触发。
– 性能测试
• 几乎没有并发控制。
• 模板都是在缓存中的。
• 组件模型的可拆卸。
第三部分:Mock平台的挑战与展望
-- 面临的挑战
-- 平台的未来
我们面临的挑战
接口管理方面:
– 接口公有与私有。
– (共用环境中)服务资源的冲突。
接口覆盖方面:
– 签名/验签/加密过程的 易用性与覆盖率共存。
– 老接口与内部接口的覆盖。 (无明确接口文档)
– 长连接/session的功能应用。
平台的延伸和未来
Mock的思索:
– 哪些东西是真正需要被mock掉的。
– 我们如何获得接口规范和需要相关数据。
– Mock数据的共享化和私有化的管理。
Mock新功能:
– proxy功能,寻找着它更好的实现和的使用场景。
– 和测试脚本相结合的mock,服务mock正在制作中。