新特性预览之数据池与参数泵

        软件测试过程中,测试数据的设计至关重要,这直接关系着测试覆盖率和测试质量。自动化测试(包括功能、性能)中,测试代码和测试数据分离已经成为广泛认知的设计实践。通过代码和数据的分离,可以在不影响测试脚本的情况下修改测试数据;可以通过修改数据而不是测试脚本来添加新的测试用例;可以在多个测试脚本之家共享测试数据等。这样不但提高了代码的复用性,也提高了数据的共享性,通过代码和数据的灵活组合,能自动实现更高的覆盖率,从而提高测试质量。

        数据池是HyperPacer中设计来进行测试数据设计和对测试数据进行集中管理的组件,数据格式按照输入输出来组织,一个输出可以对应多个输入,正所谓殊途同归。输入数据作用于取样器中的请求,输出数据作用于响应结果,作为输入数据期望的输出结果的断言依据。

        数据池可以将测试过程中需要的异构或异源的数据统一抽取到HyperPacer本地库中,供测试脚本进行参数化硬编码使用,同时减少了对外部数据源的依赖和破坏。同时也提供数据工厂,可以直接按规则生成测试数据,帮助使用者减少数据准备的时间和难度。

        数据池作为一个重要的数据持久化容器,还支持数据的备份和恢复。通过数据备份,可以将数据与HyperPacer脱离,共享给其它人使用。通过数据恢复,可以将备份的数据重新导入到数据池中。

        数据池提供三个子功能来实现上述目标:数据抓取、数据抽取和数据工厂。

        数据抓取:用来从响应的网页中抓取频繁使用的一些基础数据、枚举字典、列表等由服务端提供的数据,如商品目录、条目数据,下拉列表等,避免运行脚本的过程中每次都去进行能复用数据的抓取,减少资源浪费和提高运行性能。

        数据抽取:用来从异构数据源中抽取数据到数据池中,支持的异构数据源包括文件、关系型数据库、非关系型数据库等。通过文件抽取,可以将支持的文件格式的数据基于抽取规则抽取到数据池中;通过数据库导入,可以基于数据源配置,通过整表导入或者设置过滤条件将外部数据库中的数据抽取到数据池中。

        数据工厂:对数据池中储存的数据进行清洗、加工、转换等处理。在没有外部数据源的情况下,基于SQL和脚本编程,可以支持自动生成需要的测试数据。比如根据选择的规则自动生成一些标准数据,如科目、手机号、身份证号等,也可以对数据进行编码转换等处理。

        解决了数据来源的问题,接下来就要将数据选择性应用到测试脚本中,以变量形式替换测试脚本中的硬编码,参数泵就是解决此问题的,就像我有一池子水,我要安装个水泵把水抽出来浇菜。通过参数泵组件,可以从数据池中选择脚本中要引用的数据及其配置数据分配规则。

        参数泵支持多种数据分配规则,如顺序迭代、随机迭代、唯一分配、按范围迭代、分组迭代、条件迭代,关联迭代等,同时支持数据更新规则和数据复用规则。数据更新规则包括按场景、按用户、按发生和一次性等。数据复用规则支持重新循环、直接结束和保留最后一个值等方式。

        注意:在3.0.1及其以下版本中数据池作为一个配置组件出现,3.0.2及其以后版本中数据池才分离成两个功能:数据池+参数泵。在新版本中,数据池将作为一个全局基础配置存在,入口在菜单栏。参数泵作为一个测试组件存在,可以添加到任何需要参数化的对象前面。

来源:Larmy

声明:本站部分文章及图片转载于互联网,内容版权归原作者所有,如本站任何资料有侵权请您尽早请联系jinwei@zod.com.cn进行处理,非常感谢!

上一篇 2016年3月24日
下一篇 2016年3月24日

相关推荐