京东到家自动化测试平台的探索与实践

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

目录

一、引言

二、维护测试用例

2.1 HTTP流量复制

2.2 微服务流量复制

2.3 自动生成种子用例

2.4 收益评估

三、自动化回归测试

3.1 接口自动化

3.1.1 设计方案

3.1.2 执行过程

3.1.3 成果收益

3.2 流程自动化

3.2.1 设计方案

3.2.2 执行过程

3.2.3 成果收益

3.3 回归机制

3.3.1 一键回归

3.3.2 自动回归

四、提升测试质量

4.1 代码覆盖率

4.2 设置质量门禁

五、总结及其它

5.1 总结

5.2 展望

5.3 附录


文| 蔡光迪 刘慧卿

编辑|刘慧卿

一、引言

效能提升一直是个火热的话题,特别是在互联网行业,由于产品更新迭代快、业务准确性要求高等因素,使得测试的难度和压力激增,当下测试人员最直观的感受是时间紧任务重。如何在跟上产品迭代节奏的前提下,还能保证产品的交付质量,是我们当前遇到的最大挑战。精卫(自动化测试平台)就在这样的环境下应运而生。

精卫系统是致力于研发体系的数字化建设,其核心是提升我们整体的研发效率。从流程的标准化作为起点,并进行研发流程全链路数字化建设,将各个流程痛点问题的解决方案工具化,以点带面往自动化的方向推进。为开发,测试,运维等相关人员提供数字化技术支持,为各类决策提供判断依据,为降本增效提供抓手。

在测试过程中,我们可能经常面临以下的困扰:

本文将围绕着测试工作中的以上几个核心痛点问题来进行阐述,重点介绍一下我们的一些解决方案和实践心得。

  • 用例维护成本高

    1. 接口文档信息不准确

    2. 微服务接口入参组装麻烦

    3. HTTP接口用例录入耗时长

  • 回归测试效率低

    1. 入参有效性周期短

    2. 要回归的用例数量多

    3. 人工参与,成本高

    4. 回归次数频繁,占用大量时间

  • 测试质量难以保证

    1. 研发提测质量差,测试效率低

    2. 黑盒测试为主,代码逻辑覆盖不全

    3. 测试质量难以量化,线上漏测率高

二、维护测试用例

把日常的业务的请求入参和出参记录下来,我们称之为流量复制。复制下来的请求经过简单的清洗就可以很方便的用于二次回放,常见的压力测试和回归测试都可以通过这种方式来实现。

通过流量复制这种方式可以快速的获取到大量的种子用例,这会大大的降低用例的构建和维护成本。那么如何进行流量复制呢?接下来将按照服务的类型,来介绍两种技术方案:HTTP类型服务的流量复制和微服务的流量复制。

2.1 HTTP流量复制

HTTP服务的流量复制可以通过一些代理工具来实现。Mitmproxy是一款免费、开放的基于Python开发的交互式HTTPS代理工具。它可以用来捕获HTTP/HTTPS请求,支持抓包、断点调试、请求替换、构造请求、模拟弱网等功能。

        工作原理如下:

流量复制的实现具体可以分为以下几个步骤:

1. 在电脑或手机端配置Mitmproxy代理服务器地址,此时电脑或手机的所有请求都通过代理服务器进行请求发出,当请求响应结束后,代理服务器识别出我们需要拦截的请求,并将请求和响应结果转发到我们的自动化测试平台;

2. 测试平台收到代理服务器转发过来的请求和响应结果后,会将数据按照服务维度进行分类,作为初步的种子用例,持久化到数据库中;

3. 测试人员依据种子用例,转换成正式的测试用例;

下图代码片段是按域名截取数据后,整合平台所需要的数据和数据格式:

效果展示

2.2 微服务流量复制

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

规则配置

交互逻辑

具体实现步骤如下:

1. 管理端配置服务的采集规则;

2. 客户端定时拉取采集规则;

3. 符合采集规则,则将请求入参和出参写入本地文件;

4. 客户端定期上报流量采集内容到精卫平台;

5. 按照服务,时间段等维度圈出要回归的流量用例,生成回归任务;

6. 执行任务,进行

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值