智能自动化测试——云化测试的七种武器(下)

admin 2024年7月3日13:35:14评论1 views字数 4475阅读14分55秒阅读模式

来源:华为云

  上篇介绍了云化测试基本概念部分,本篇将结合华为云优秀实践,重点讲解服务接口测试、在线全链路压测、Mock 服务、Web 全自动化测试、现网导流测试、现网拨测和AI 辅助质量评估,七种云化测试常见方法。对于测试人员了解并熟悉云化全流程持续测试,具有指导意义。

  1 云化测试七种武器

  1.1 云化测试全景图

  基于云化测试基础理论和云化测试的原则,可以发展出很多实用的云化测试方法和实践。结合研发模式和角色,形成云化测试全景图。

智能自动化测试——云化测试的七种武器(下)

图9:云化测试全景图

  1.2 云化测试七种武器

  以服务接口测试能力为核心,构建七种云化测试核心能力。导流测试导入现网真实接口场景,解决研发环境测试场景覆盖问题。通过Web 自动化测试记录接口调用链。全链路压测可以复用功能测试用例,Mock服务实现接口依赖替换,现网拨测复用研发用例,有效看护现网质量,接口测试为AI 复制质量评估提供原始数据,并从质量评估获得持续反馈。

智能自动化测试——云化测试的七种武器(下)

图10:云化测试七种武器

  1.2.1 云化测试七种武器之一:服务接口测试

  接口测试,主要负责测试系统间的交互接口的测试。主要测试后端、微服务接口和API,和界面测试相比,稳定性、效率高。测试测试又可进一步划分成单接口测试和多接口组合测试。

  单接口测试,制定接口测试覆盖策略,全部 or 部分覆盖,使用等价类划分、边界值分析等方法设计单个接口的测试用例。

智能自动化测试——云化测试的七种武器(下)

图11:单接口测试

  多接口组合测试,先后调用多个关联的接口,测试接口组合起来可以正确完成一个用户场景

智能自动化测试——云化测试的七种武器(下)

图12:多接口组合测试

  API接口测试有三个指导原则,即同源、独立测试和100%自动化测试。

  1. 同源:就是设计、开发、测试三个活动基于同一源头开展

  2. 独立测试:DevOps模式下,50%+服务涉及服务依赖,服务自测试前移到开发自测试阶段开展,创建Mock服务使环境解耦,否则微服务独立测试难以开展

  3. 100%自动化测试:在开发自测试阶段,开发人员时间有限,为了提高转测效率应该尽量高效使用自动化,也就是说能自动化解决的工作尽量自动化解决,就是我们倡议的100%自动化

  实践:DevCloud接口自动化测试

  使用DevCloud测试工具APITest进行接口和接口级场景功能自动化测试,结合华为优先研发实践和研发理念,测试用例免代码编写、一键导入swagger接口定义自动生成脚本模板,基于脚本模板组装编排、管理接口自动化测试用例。

智能自动化测试——云化测试的七种武器(下)

图13:DevCloud接口自动化测试

  DevCloud 接口自动化测试的主要优势:

  1、简单

  0编码开发成本

  0环境搭建成本

  2步接口测试

  1步性能测试性能

  2、高效

  可视化编排测试用例

  测试关键字批量复用

  云端弹性资源池

  实时反馈测试结果

  3、专业

  HTTP等4种API协议

  高级测试场景编排

  X类XX+预置检查点

  多环境测试参数管理

  流水线持续自动化测试

  1.2.2 云化测试七种武器之二:在线全链路压测

  在线全链路压测目前在业界的主流互联网公司均在开展,主要目的是使用真实的现网环境,模拟流量突发时,识别整个调用链路中的性能瓶颈。

  在线全链路压测的核心是如何做好测试流量识别和隔离,避免对生产环境用户正常使用造成影响。需要解决以下关键问题:

  流量标记

  数据隔离

  外部服务隔离

  资源/KPI监控

  压测流量调整

  调用链辅助分析

  业务低峰执行

  数据清理

智能自动化测试——云化测试的七种武器(下)

图14:在线全链路压测

  在线全链路压测需要对被测系统进行调整。上图中,蓝色部分为测试组件,压测平台控制中心发起压力,经过压测负载均衡,进入被测云服务环境,外围依赖服务采用Mock 方式固定返回值。橙色部分为压测辅助系统,收集调用链,并对系统的资源进行监控。

  下图为华为公司终端云某产品为应对春节抢红包活动进行的50倍压测,压测过程共发行带宽瓶颈、内存Full GC,服务挂死等20+问题,达到了预期效果,有效保障了当年春节抢红包活动的顺利进行。

智能自动化测试——云化测试的七种武器(下)

图15:华为终端云某产品在线全链路压测效果

  1.2.3云化测试七种武器之三:Mock 服务

  Mock服务可以模拟接口的响应,解决在微服务系统开发及测试过程中依赖的服务未开发、第三方服务不稳定等问题。同时支持性能测试、异常测试等场景,还可以将Mock实例替代真实服务,支持系统级的联调及混沌测试等场景。

  下图展示了Mock 服务的工作原理:用户访问Mock 门户,Mock 服务启动Mock 实例,根据需要决定是否要转发给真实服务,然后根据规则,匹配返回消息。

智能自动化测试——云化测试的七种武器(下)

图16:Mock 服务工作原理

  Mock 服务在开发、测试、部署阶段, 均有应用场景:

  开发阶段,实现并行开发,提升开发效率。

  测试阶段,提升测试的效率和覆盖率,以及自动化测试执行的成功率

  部署阶段,在微服务系统中部署mock服务替代真实服务,便于进行系统级测试及混沌测试

  以下是华为云Devcloud Mock 服务的核心能力:

智能自动化测试——云化测试的七种武器(下)

图17:Mock 服务核心能力

  1.2.4云化测试七种武器之四:Web全自动化测试

  Web自动化测试,目前业界比较流行的开展方式是Selenium+TestNG组合。但这种方式需要基本的编程经验,而且需要查阅大量的API说明,不利于手工测试人员快速上手。

  华为公司Web 自动化能力,满足了手工测试人员期望“不用编码就能实现Web自动化测试”。通过图元驱动+控件驱动测试技术的全自动化测试框架,通过AI算法能力和图像识别技术,实现全GUI界面的自动化测试能力,解决HTML5等无法获取控件ID的自动难题。具体方案如下:

智能自动化测试——云化测试的七种武器(下)

图18:一站式Web 全自动化能力

  实践:华为公司进行WebUI场景功能自动化测试

  使用华为测试工具ARTBot进行WebUI场景功能自动化测试,结合华为优先研发实践和研发理念,测试用例免代码编写、录制回放机制生成脚本,基于脚本模板组装编排、管理WebUI自动化测试用例。

智能自动化测试——云化测试的七种武器(下)

图19:WebUI 自动化测试能力

  WebUI 自动化测试具有如下优势:

  简单

  0编码开发成本

  0环境搭建成本

  3步生成WebUI脚本

  1步WebUI自动化执行性能

  高效

  可视化编排测试用例

  测试关键字批量复用

  云端弹性资源池

  实时反馈测试结果

  专业

  高级测试场景编排

  定制化用户数据配置

  固化常用步骤

  流水线持续自动化测试

  1.2.5 云化测试七种武器之五:现网导流测试

  导流测试工作原理:将生产环境用户真实数据引流至研发区验证环境,通过对比研发区的验证结果与生产环境真实结果是否一致判断新版本是否存在

  导流测试实施要点:

  1.请求收集:收集生产环境用户真实请求

  2.数据同步:生产环境冷备DB数据,同步至A/B两套环境

  3.流量回放:将真实流量回放至A/B两套环境

  4.结果对比:比对A/B两套环境流量执行结果

智能自动化测试——云化测试的七种武器(下)

图20:导流测试工作原理图

  实践:云测导流测试

  关键效果:基于调用链的导流回放能力,通过http、mysql、redis三种类型的MOCK能力的构建,解决回放中的数据依赖问题,实现导流回放技术上新的突破,引流现网蓝环境(灰度环境)流量进行例行回放,完成1XXX个接口回放设计,现网灰度流量覆盖XXX+接口,共发现版本问题XX个。

智能自动化测试——云化测试的七种武器(下)

图21:导流测试效果

  1.2.6 云化测试七种武器之六:在线拨测

  在线拨测,又称为在线持续测试,是指产品/服务发布后,在生产环境对产品/服务重要功能进行7*24小时持续拨测以便尽早或先于用户发现问题并协助研发人员快速修复上线

  在线持续测试要点:

  1.筛选用例:筛选版本重要功能对应的测试用例

  2.定时拨测:定时(每隔5分钟)对重要功能进行拨测

  3.现网告警:拨测用例执行失败并发送告警短信,提示告警等级

  4.处理上线:研发人员根据告警快速处理并快速修复上线

智能自动化测试——云化测试的七种武器(下)

图22:在线拨测

  实践:云测在线持续测试

  关键技术:

  1、用例共享:研发、在线测试用例资源共享,提升研发效率

  2、执行方式灵活:用例按节点区域、并行串行、定时执行等多种执行策略,满足不同测试需求

  3、模拟全球用户持续发起在线测试:全球部署测试客户端,模拟全球用户,跨区域持续测试被测服务,实现分布式部署,实时发起线上真实请求并收集数据

智能自动化测试——云化测试的七种武器(下)

图23:在线拨测实践

  1.2.9 云化测试七种武器之七:AI 辅助质量评估

  测试有效性是测试设计和质量监控管理的核心目标

  基于时间维度的AI可靠性模型、基于空间维度的易失效模块分析辅助测试有效性预测和评估

  基于E2E追溯一张图(测试资产知识网络)&图挖掘/搜索算法,实现从过程全程质量跟踪

智能自动化测试——云化测试的七种武器(下)

  以上就是本文的全部内容,如果有帮助到你,请点个赞吧~

智能自动化测试——云化测试的七种武器(下)

本书第1章与第2章介绍软件单元测试的概念和基础知识。

  • 第1章简单介绍软件单元测试所包含的概念,包括桩对象和测试驱动函数、测试驱动开发、软件测试贯彻始终、软件测试金字塔、单元测试在传统/敏捷开发模式中的地位、精准测试、单元测试和白盒测试,以及单元测试的FIRST原则和AIR原则。

  • 第2章介绍软件单元测试基础知识,包括动态自动化/手工单元测试、静态自动化/手工单元测试。在动态自动化单元测试中介绍了语句覆盖、分支覆盖、条件覆盖、条件/分支覆盖、MC/DC、路径覆盖和控制流覆盖。

第3章到第5章介绍C语言、Java语言和Python语言的单元测试框架。

  • 第3章介绍C语言动态自动化单元测试框架,包括在Windows下安装C语言运行环境、在Windows和Linux下安装编译CUnit、查看测试报告、CUnit介绍和案例。

  • 第4章介绍Java语言动态自动化单元测试框架,包括在Eclipse中创建Maven项目和配置JUnit与TestNG运行环境、JUnit 4测试框架、JUnit 5测试框架、TestNG测试框架、测试替身、变异测试、利用EvoSuite自动生成测试用例,以及在Jenkins中配置JUnit 4、JUnit 5、TestNG和Allure。

  • 第5章介绍Python语言动态自动化单元测试框架,包括unittest、Pytest及Python的模拟对象和变异测试工具mutpy。

第6章与第7章介绍代码覆盖率工具和代码语法规范检查工具。

  • 第6章介绍代码覆盖率工具,包括C语言覆盖率工具gcov和lcov、Java语言覆盖率工具JaCoCo,以及Python语言覆盖率工具Coverage和pytest-cov。

  • 第7章介绍代码语法规范检查工具,包括Java语言静态分析工具PMD、Python语言静态分析工具flake8和pylint,以及多代码语法规范检查平台SonarQube。

  • 第8章通过两个案例详细介绍TDD。

    读者可以根据自己的需求对以上内容进行选择性阅读或者全部阅读。另外,为了巩固大家的学习效果,每一章结尾都有相应的习题。

顾翔凡言:整个IT都在放缓,近十年来主旋律就一个——人工智能。智能自动化测试——云化测试的七种武器(下)

原文始发于微信公众号(啄木鸟软件测试):智能自动化测试——云化测试的七种武器(下)

  • 左青龙
  • 微信扫一扫
  • weinxin
  • 右白虎
  • 微信扫一扫
  • weinxin
admin
  • 本文由 发表于 2024年7月3日13:35:14
  • 转载请保留本文链接(CN-SEC中文网:感谢原作者辛苦付出):
                   智能自动化测试——云化测试的七种武器(下)https://cn-sec.com/archives/2912353.html

发表评论

匿名网友 填写信息