绿色农业网站源码seo入门培训班
2026/4/5 21:34:35 网站建设 项目流程
绿色农业网站源码,seo入门培训班,金山区做网站公司,做网站不用编程自动化驱动模式 相信大家对“关键字驱动”和“数据驱动”这两个名词都已经很熟悉了#xff0c;但是还有一些小伙伴其实对怎么定义它们还有些误解。比如前面讲的#xff0c;我们把测试脚本中的数据参数化出来#xff0c;放在一个文件里#xff0c;是否就代表它是数据驱动了…自动化驱动模式相信大家对“关键字驱动”和“数据驱动”这两个名词都已经很熟悉了但是还有一些小伙伴其实对怎么定义它们还有些误解。比如前面讲的我们把测试脚本中的数据参数化出来放在一个文件里是否就代表它是数据驱动了并不是。我们说“X 驱动”就是以“X”作为输入控制测试流的走向获得对应输出的意思。比如一台播放机放入不同的 CD就会播放不同歌曲那么我们就称这个播放机是“CD”驱动的。再比如我们做定格动画把不同的物体状态拍摄下来连在一起成为影片就称这个动画是“物态”驱动的。以上两个例子分别对应数据驱动和关键字驱动的概念CD 就是播放机的数据物态就是动画的关键字。如果把播放机的 CD 读取模块改成一块不可替换的独立存储芯片类比数据参数化到文件这时播放机的输入和输出是固定的那么我们就不能说它是芯片“驱动”的即便它是提取出来的一个单独模块。严格上说数据驱动的方式会更早一点关键字驱动模式从 QTP 之后才被明确化早期的测试脚本都比较简单也比较分散在进行自动化测试的时候往被测试脚本中注入不同的数据即可。注意重点是通过“不同”的数据测试“相同”的脚本数据放在什么位置并不重要并不是一定要用 Excel 之类的工具哪怕内置在代码中也行。随着软件架构的复杂化单个脚本的代码量越来越多给自动化维护工作带来了很大的麻烦。于是关键字驱动模式应运而生将不同的行为封装成“动作”再通过各种“动作”组装形成测试。这里也要注意重点是“动作”的封装和调用粒度上是可大可小的比如往大可以是一个模块的流程往小可以是一个点击的动作。不论是数据驱动还是关键字驱动本质上就是为了代码复用只不过复用的对象不同而已。所以重新理解上面说的数据驱动即是使用不同的数据集复用相同的测试过程关键字驱动即是使用不同的关键字组合复用相同的测试动作。实际上现在一般都是采用混合驱动的模式。比如我们的测试过程由“登录-查看-下单-评价”组成登录部分可以是普通账号或会员账号查看下单的可以是折扣商品或非折扣商品评价可以是一星或五星混合驱动模式即可提供“关键字 x 数据”的全用例组合测试。流量回放技术开篇的时候有提到流量回放技术是自动化测试领域一项重要进步。传统的自动化测试方法一直有着“覆盖率”的问题即我们的自动化测试需要覆盖到什么程度才算足够并且生产环境的用户数据格式很难预估导致有很多缺陷是由于对某些特定数据形式的不兼容引起。流量回放技术很好地解决了这个问题它基于生产环境的真实流量和请求参数用户数据来验证测试或预发环境的待发布代码在真实性、准确度和覆盖率方面都有着极为优秀的保证。流量回放技术本身并不复杂总的来说可以分成采集-记录-回放这三个过程。流量采集的位置一般有两种网络层和应用层。网络层的采集通过数据包的复制来实现无代码侵入应用层的采集通过类似 AOP 的方式来实现少量代码侵入。网络层更适用于性能方面的验证限制或放大流量应用层更适用于功能方面的验证真实用户请求。因此基于本文自动化测试的主题我们主要来说下应用层。应用层的采集点通常位于控制器层Controller通过拦截器Intercepter记录请求地址、请求头请求参数、返回结果等信息经过脱敏后写入 DB 或者中间加个 MQ 做二次处理后再写入做持久化处理。在录制的时候可以以适当的比率截取以减轻录制侧的压力对线上访问的性能表现也不会产生过多干扰。上面过程有一个问题是对于写入型的流量要怎么处理。因为很多时候回放环境和录制环境用的是同一个数据库如果在回放环境调用写接口会导致生产环境脏数据的产生这是不可接受的。即便是使用不同的数据库也会有需要重复写的情况来保证测试的幂等性。因此写入处理是录制回放技术必定会面临的一个难点。为了解决这个问题我们同样可以将一些中间件的请求和返回做录制和回放。比如 DB可以对 DAO 层的结果进行拦截和记录作为请求的上下文一并持久化。这样在回放的时候就不用去 DB 里操作只要从存储的上下文中读取即可。这个方法其实也是在做 Mock只不过对业务代码的侵入较少。录制回放的过程可以是实时的也可以是离线的。实时指的是一边录制一边回放中间不一定要经过 DB通过 MQ 来传递即可。离线指的是录制和回放过程是独立的因此中间需要有个持久化的步骤录制下来的流量可以在任意时候进行单次或多次回放灵活度较实时回放更高。前面提到的流程回放技术大多用于接口层的测试利用类似的思路我们其实可以在其他层面复用这套逻辑比如代码层测试和界面层测试。它们的技术原理与接口层相差不大只不过录制和回放点有所区别。代码测试这里特指单元测试的采集点位于方法层采集的是方法的入参和返回值可以利用反射机制做统一处理。界面测试的采集点位于前端层采集的是用户的操作可以使用埋点上报的方式处理。其它诸如 Mock 之类的机制与接口层的处理是类似的直接复用就行。通过这种方式我们就能够将流量回放技术用于单元测试和 UI 层自动化测试给自动化测试带来更多的可能性。由此可见当我们在了解一项技术的原理之后不妨做一些发散性的思考或许就能获得一些创新的方法。感谢每一个认真阅读我文章的人礼尚往来总是要有的虽然不是什么很值钱的东西如果你用得到的话可以直接拿走这些资料对于【软件测试】的朋友来说应该是最全面最完整的备战仓库这个仓库也陪伴上万个测试工程师们走过最艰难的路程希望也能帮助到你!有需要的小伙伴可以点击下方小卡片领取

需要专业的网站建设服务?

联系我们获取免费的网站建设咨询和方案报价,让我们帮助您实现业务目标

立即咨询