JMeter作为一款著名的软件测试工具,在DevOps模式下有着广泛的应用。本文重点介绍现有技术方案存在的问题,提出了一种基于JMeter的接口自动化测试方法,提供标准的脚本框架并进行了技术实践。
在DevOps模式下,开发、测试和运维团队合作变得更为紧密,以实现更快速的持续集成和交付。其中,JMeter作为一款著名的软件测试工具,伴随着DevOps模式的推广被业界广泛应用。然而,笔者在对多家外部公司进行技术管理的过程中发现,若不针对JMeter接口自动化测试框架制定统一的技术标准,不仅不方便对脚本进行审核,也会影响回归测试的规范性,而且还会因缺乏断言健康度度量而导致无法有效评估接口测试的质量和正确性。尽管有方案可以通过添加线程组并配置其循环次数、线程启动时间等参数来模拟普通用户发送请求对服务器接口进行压力测试,以及添加设置监听器和断言来判断请求相应的结果是否符合预期,但其方案没有提出区分不同的运行环境(如开发环境、测试环境、预发布环境以及生产环境等),即现有方案存在一定的技术局限性。
一、现有技术方案问题分析
笔者经研究多个技术方案的特点发现,现有方案主要存在五个方面的问题:一是现有方案的脚本没有明确提出区分不同的环境。例如在开发、测试、预发布等环节,不支持一套脚本在多种不同的环境中运行。二是现有方案的脚本没有对HTTP请求进行明确的规范化定义。缺乏明确的规范将导致无法区分测试结果属于哪个测试环境。此外,在接口测试失败的情况下,也就很难准确定位所在的代码模块。三是没有提出对项目的子模块建立循环控制器,没有提出用线程组来隔离不同的项目,没有提出针对业务流程采用事务控制器。四是没有针对增删查改类单接口测试提供规范化技术方案。五是缺乏针对断言的健康度度量。
二、基于JMeter的
接口自动化测试方法研究
针对现有方案中的难点问题,笔者尝试提出一种基于JMeter的接口自动化测试脚本框架(如图1 所示)。其中,JMeter脚本的预处理文件主要包含HTTP Cookie管理器、HTTP请求默认值、HTTP消息头管理器、数据库配置(