汽车之家电商架构测试实践 - Huodongjia.com · Nginx+Lua+Redis选型的优点...

42
汽车之家电商架构测试实践 新车电商事业部 王公瑾

Transcript of 汽车之家电商架构测试实践 - Huodongjia.com · Nginx+Lua+Redis选型的优点...

Page 1: 汽车之家电商架构测试实践 - Huodongjia.com · Nginx+Lua+Redis选型的优点 应用场景 操作步骤 优点描述 新增接口 1)新增Mock接口的Lua脚本 1)方便部署,只需要定义

汽车之家电商架构测试实践

新车电商事业部 王公瑾

Page 2: 汽车之家电商架构测试实践 - Huodongjia.com · Nginx+Lua+Redis选型的优点 应用场景 操作步骤 优点描述 新增接口 1)新增Mock接口的Lua脚本 1)方便部署,只需要定义

个人简介

Page 3: 汽车之家电商架构测试实践 - Huodongjia.com · Nginx+Lua+Redis选型的优点 应用场景 操作步骤 优点描述 新增接口 1)新增Mock接口的Lua脚本 1)方便部署,只需要定义

目录 CONTENTS

测试流程改进与敏捷实践

架构设计原则与测试实践

快速搭建Mock Server

持续集成实践

自动化测试实践

业务高速增长的汽车之家新车电商

Page 4: 汽车之家电商架构测试实践 - Huodongjia.com · Nginx+Lua+Redis选型的优点 应用场景 操作步骤 优点描述 新增接口 1)新增Mock接口的Lua脚本 1)方便部署,只需要定义

汽车之家车商城

汽车之家战略升级,推出“4+1”战略,车商城定位新车电商开放平台

车电商 车金融 车生活

“汽车”

公司

基于数据技术

垂直

公司

基于内容

车媒体

大数据

Page 5: 汽车之家电商架构测试实践 - Huodongjia.com · Nginx+Lua+Redis选型的优点 应用场景 操作步骤 优点描述 新增接口 1)新增Mock接口的Lua脚本 1)方便部署,只需要定义

汽车之家车商城

联接 赋能 共赢

主机厂 综合经销商 金融机构 车生活物流服务商

车商城为用户、主机厂、综合经销商等打造完整的线上交易平台

Page 6: 汽车之家电商架构测试实践 - Huodongjia.com · Nginx+Lua+Redis选型的优点 应用场景 操作步骤 优点描述 新增接口 1)新增Mock接口的Lua脚本 1)方便部署,只需要定义

汽车之家车商城平台核心数据概况

全国覆盖城市

90%

在线售卖商品数

10万+

日均访问用户

120万+

日均有效销售线索

1.5万条+

日均订单数

0.5万条+

注:数据来源:近3个月车商城运营数据

Page 7: 汽车之家电商架构测试实践 - Huodongjia.com · Nginx+Lua+Redis选型的优点 应用场景 操作步骤 优点描述 新增接口 1)新增Mock接口的Lua脚本 1)方便部署,只需要定义

车商城系统架构

Page 8: 汽车之家电商架构测试实践 - Huodongjia.com · Nginx+Lua+Redis选型的优点 应用场景 操作步骤 优点描述 新增接口 1)新增Mock接口的Lua脚本 1)方便部署,只需要定义

测试流程改进与敏捷实践

Page 9: 汽车之家电商架构测试实践 - Huodongjia.com · Nginx+Lua+Redis选型的优点 应用场景 操作步骤 优点描述 新增接口 1)新增Mock接口的Lua脚本 1)方便部署,只需要定义

测试流程慢在哪儿

Page 10: 汽车之家电商架构测试实践 - Huodongjia.com · Nginx+Lua+Redis选型的优点 应用场景 操作步骤 优点描述 新增接口 1)新增Mock接口的Lua脚本 1)方便部署,只需要定义

主导测试流程

Page 11: 汽车之家电商架构测试实践 - Huodongjia.com · Nginx+Lua+Redis选型的优点 应用场景 操作步骤 优点描述 新增接口 1)新增Mock接口的Lua脚本 1)方便部署,只需要定义

主导测试模式及复制

Page 12: 汽车之家电商架构测试实践 - Huodongjia.com · Nginx+Lua+Redis选型的优点 应用场景 操作步骤 优点描述 新增接口 1)新增Mock接口的Lua脚本 1)方便部署,只需要定义

敏捷实践:XP极限编程测试实践

Page 13: 汽车之家电商架构测试实践 - Huodongjia.com · Nginx+Lua+Redis选型的优点 应用场景 操作步骤 优点描述 新增接口 1)新增Mock接口的Lua脚本 1)方便部署,只需要定义

人员配比对比

XP流程测试开发比

正常流程测试开发比

Page 14: 汽车之家电商架构测试实践 - Huodongjia.com · Nginx+Lua+Redis选型的优点 应用场景 操作步骤 优点描述 新增接口 1)新增Mock接口的Lua脚本 1)方便部署,只需要定义

架构设计原则与测试实践

Page 15: 汽车之家电商架构测试实践 - Huodongjia.com · Nginx+Lua+Redis选型的优点 应用场景 操作步骤 优点描述 新增接口 1)新增Mock接口的Lua脚本 1)方便部署,只需要定义

各种名词

Page 16: 汽车之家电商架构测试实践 - Huodongjia.com · Nginx+Lua+Redis选型的优点 应用场景 操作步骤 优点描述 新增接口 1)新增Mock接口的Lua脚本 1)方便部署,只需要定义

架构测试的万能钥匙:压测

Page 17: 汽车之家电商架构测试实践 - Huodongjia.com · Nginx+Lua+Redis选型的优点 应用场景 操作步骤 优点描述 新增接口 1)新增Mock接口的Lua脚本 1)方便部署,只需要定义

很好,但是有些迟了

如何做到测试前置

Page 18: 汽车之家电商架构测试实践 - Huodongjia.com · Nginx+Lua+Redis选型的优点 应用场景 操作步骤 优点描述 新增接口 1)新增Mock接口的Lua脚本 1)方便部署,只需要定义

消息通知类测试举例

Page 19: 汽车之家电商架构测试实践 - Huodongjia.com · Nginx+Lua+Redis选型的优点 应用场景 操作步骤 优点描述 新增接口 1)新增Mock接口的Lua脚本 1)方便部署,只需要定义

处理异步化

Page 20: 汽车之家电商架构测试实践 - Huodongjia.com · Nginx+Lua+Redis选型的优点 应用场景 操作步骤 优点描述 新增接口 1)新增Mock接口的Lua脚本 1)方便部署,只需要定义

了解消息队列中间件的应用

Page 21: 汽车之家电商架构测试实践 - Huodongjia.com · Nginx+Lua+Redis选型的优点 应用场景 操作步骤 优点描述 新增接口 1)新增Mock接口的Lua脚本 1)方便部署,只需要定义

MQ和DB组合应用

Page 22: 汽车之家电商架构测试实践 - Huodongjia.com · Nginx+Lua+Redis选型的优点 应用场景 操作步骤 优点描述 新增接口 1)新增Mock接口的Lua脚本 1)方便部署,只需要定义

分离错误数据

Page 23: 汽车之家电商架构测试实践 - Huodongjia.com · Nginx+Lua+Redis选型的优点 应用场景 操作步骤 优点描述 新增接口 1)新增Mock接口的Lua脚本 1)方便部署,只需要定义

业务数据缓存类测试

Page 24: 汽车之家电商架构测试实践 - Huodongjia.com · Nginx+Lua+Redis选型的优点 应用场景 操作步骤 优点描述 新增接口 1)新增Mock接口的Lua脚本 1)方便部署,只需要定义

了解缓存(以Redis举例)

Page 25: 汽车之家电商架构测试实践 - Huodongjia.com · Nginx+Lua+Redis选型的优点 应用场景 操作步骤 优点描述 新增接口 1)新增Mock接口的Lua脚本 1)方便部署,只需要定义

测试如何参与开发和架构设计

Page 26: 汽车之家电商架构测试实践 - Huodongjia.com · Nginx+Lua+Redis选型的优点 应用场景 操作步骤 优点描述 新增接口 1)新增Mock接口的Lua脚本 1)方便部署,只需要定义

数一数每种面值的硬币有多少枚

Page 27: 汽车之家电商架构测试实践 - Huodongjia.com · Nginx+Lua+Redis选型的优点 应用场景 操作步骤 优点描述 新增接口 1)新增Mock接口的Lua脚本 1)方便部署,只需要定义

架构设计的原则来源于人类思维的延伸

分 拣

计 数

Page 28: 汽车之家电商架构测试实践 - Huodongjia.com · Nginx+Lua+Redis选型的优点 应用场景 操作步骤 优点描述 新增接口 1)新增Mock接口的Lua脚本 1)方便部署,只需要定义

测试参与架构设计(寻求效率和效果的平衡点)

架构指导原则 详细描述

解耦 降低模块间关系的复杂度

高内聚 单一职责,功能内聚和顺序内聚

关注行为分离 小到模块、大到系统,要清楚边界和职责

关注数据分离 系统之间的分离和系统内的分离

横向、纵向分离 模块化和分层

轻重分离 辩证地尽量去做异步设计

禁用设计 通过开关或者配置可以热处理禁用和修改程序功能

灰度发布 可配置的灰度升级

Page 29: 汽车之家电商架构测试实践 - Huodongjia.com · Nginx+Lua+Redis选型的优点 应用场景 操作步骤 优点描述 新增接口 1)新增Mock接口的Lua脚本 1)方便部署,只需要定义

快速搭建Mock Server

Page 30: 汽车之家电商架构测试实践 - Huodongjia.com · Nginx+Lua+Redis选型的优点 应用场景 操作步骤 优点描述 新增接口 1)新增Mock接口的Lua脚本 1)方便部署,只需要定义

Nginx+Lua+Redis快速搭建Mock Server

Page 31: 汽车之家电商架构测试实践 - Huodongjia.com · Nginx+Lua+Redis选型的优点 应用场景 操作步骤 优点描述 新增接口 1)新增Mock接口的Lua脚本 1)方便部署,只需要定义

Nginx+Lua+Redis选型的优点

应用场景 操作步骤 优点描述

新增接口

1)新增Mock接口的Lua脚本1)方便部署,只需要定义location指定脚本位置即可

2)需要对相同接口做数据隔离时,脚本编制方便

3)重启速度快,nginx –s reload秒生效

2)新增nginx配置

3)nginx –s reload

变更接口逻辑

1)修改Mock接口的Lua脚本

2)nginx –s reload

变更接口返回值 1)set对应的Redis的key的值 简单、方便、隔离数据

Page 32: 汽车之家电商架构测试实践 - Huodongjia.com · Nginx+Lua+Redis选型的优点 应用场景 操作步骤 优点描述 新增接口 1)新增Mock接口的Lua脚本 1)方便部署,只需要定义

持续集成实践

Page 33: 汽车之家电商架构测试实践 - Huodongjia.com · Nginx+Lua+Redis选型的优点 应用场景 操作步骤 优点描述 新增接口 1)新增Mock接口的Lua脚本 1)方便部署,只需要定义

持续集成实践

Page 34: 汽车之家电商架构测试实践 - Huodongjia.com · Nginx+Lua+Redis选型的优点 应用场景 操作步骤 优点描述 新增接口 1)新增Mock接口的Lua脚本 1)方便部署,只需要定义

HTTP服务和分布式服务

Page 35: 汽车之家电商架构测试实践 - Huodongjia.com · Nginx+Lua+Redis选型的优点 应用场景 操作步骤 优点描述 新增接口 1)新增Mock接口的Lua脚本 1)方便部署,只需要定义

日志精准定位和集成部署平台

Page 36: 汽车之家电商架构测试实践 - Huodongjia.com · Nginx+Lua+Redis选型的优点 应用场景 操作步骤 优点描述 新增接口 1)新增Mock接口的Lua脚本 1)方便部署,只需要定义

自动化测试实践

Page 37: 汽车之家电商架构测试实践 - Huodongjia.com · Nginx+Lua+Redis选型的优点 应用场景 操作步骤 优点描述 新增接口 1)新增Mock接口的Lua脚本 1)方便部署,只需要定义

自动化测试实践

Page 38: 汽车之家电商架构测试实践 - Huodongjia.com · Nginx+Lua+Redis选型的优点 应用场景 操作步骤 优点描述 新增接口 1)新增Mock接口的Lua脚本 1)方便部署,只需要定义

自动生成接口基础用例

Page 39: 汽车之家电商架构测试实践 - Huodongjia.com · Nginx+Lua+Redis选型的优点 应用场景 操作步骤 优点描述 新增接口 1)新增Mock接口的Lua脚本 1)方便部署,只需要定义

低成本快速生成接口调试应用

Page 40: 汽车之家电商架构测试实践 - Huodongjia.com · Nginx+Lua+Redis选型的优点 应用场景 操作步骤 优点描述 新增接口 1)新增Mock接口的Lua脚本 1)方便部署,只需要定义

测试链路化

Page 41: 汽车之家电商架构测试实践 - Huodongjia.com · Nginx+Lua+Redis选型的优点 应用场景 操作步骤 优点描述 新增接口 1)新增Mock接口的Lua脚本 1)方便部署,只需要定义

测试链路化

Page 42: 汽车之家电商架构测试实践 - Huodongjia.com · Nginx+Lua+Redis选型的优点 应用场景 操作步骤 优点描述 新增接口 1)新增Mock接口的Lua脚本 1)方便部署,只需要定义

北京市海淀区丹棱街3号中国电子大厦B座10层 100080

10th Floor Tower B,CEC Plaza,No.3 Dan Ling Street, Hai Dian District, Beijing 100080,China

Thanks