目录
文| 蔡光迪 刘慧卿
编辑|刘慧卿
一、引言
效能提升一直是个火热的话题,特别是在互联网行业,由于产品更新迭代快、业务准确性要求高等因素,使得测试的难度和压力激增,当下测试人员最直观的感受是时间紧任务重。如何在跟上产品迭代节奏的前提下,还能保证产品的交付质量,是我们当前遇到的最大挑战。精卫(自动化测试平台)就在这样的环境下应运而生。
精卫系统是致力于研发体系的数字化建设,其核心是提升我们整体的研发效率。从流程的标准化作为起点,并进行研发流程全链路数字化建设,将各个流程痛点问题的解决方案工具化,以点带面往自动化的方向推进。为开发,测试,运维等相关人员提供数字化技术支持,为各类决策提供判断依据,为降本增效提供抓手。
在测试过程中,我们可能经常面临以下的困扰:
本文将围绕着测试工作中的以上几个核心痛点问题来进行阐述,重点介绍一下我们的一些解决方案和实践心得。
-
用例维护成本高
-
接口文档信息不准确
-
微服务接口入参组装麻烦
-
HTTP接口用例录入耗时长
-
-
回归测试效率低
-
入参有效性周期短
-
要回归的用例数量多
-
人工参与,成本高
-
回归次数频繁,占用大量时间
-
-
测试质量难以保证
-
研发提测质量差,测试效率低
-
黑盒测试为主,代码逻辑覆盖不全
-
测试质量难以量化,线上漏测率高
-
二、维护测试用例
把日常的业务的请求入参和出参记录下来,我们称之为流量复制。复制下来的请求经过简单的清洗就可以很方便的用于二次回放,常见的压力测试和回归测试都可以通过这种方式来实现。
通过流量复制这种方式可以快速的获取到大量的种子用例,这会大大的降低用例的构建和维护成本。那么如何进行流量复制呢?接下来将按照服务的类型,来介绍两种技术方案:HTTP类型服务的流量复制和微服务的流量复制。
2.1 HTTP流量复制
HTTP服务的流量复制可以通过一些代理工具来实现。Mitmproxy是一款免费、开放的基于Python开发的交互式HTTPS代理工具。它可以用来捕获HTTP/HTTPS请求,支持抓包、断点调试、请求替换、构造请求、模拟弱网等功能。
工作原理如下:

流量复制的实现具体可以分为以下几个步骤:
1. 在电脑或手机端配置Mitmproxy代理服务器地址,此时电脑或手机的所有请求都通过代理服务器进行请求发出,当请求响应结束后,代理服务器识别出我们需要拦截的请求,并将请求和响应结果转发到我们的自动化测试平台;
2. 测试平台收到代理服务器转发过来的请求和响应结果后,会将数据按照服务维度进行分类,作为初步的种子用例,持久化到数据库中;
3. 测试人员依据种子用例,转换成正式的测试用例;
下图代码片段是按域名截取数据后,整合平台所需要的数据和数据格式:

效果展示

2.2 微服务流量复制
微服务的流量复制我们是通过自研客户端+配置采集规则来实现的。
规则配置

交互逻辑

具体实现步骤如下:
1. 管理端配置服务的采集规则;
2. 客户端定时拉取采集规则;
3. 符合采集规则,则将请求入参和出参写入本地文件;
4. 客户端定期上报流量采集内容到精卫平台;
5. 按照服务,时间段等维度圈出要回归的流量用例,生成回归任务;
6. 执行任务,进行

本文介绍了精卫平台如何通过流量复制、自动化回归测试、代码覆盖率和质量门禁提升测试效率,涵盖HTTP流量、微服务、接口自动化、流程自动化及测试质量保障措施。
最低0.47元/天 解锁文章
3127

被折叠的 条评论
为什么被折叠?



