性能测试Jmeter脚本生成工具实践

一、摘要

性能测试过程中,测试人员需根据接口信息编写Jmeter脚本。开发人员交付的接口信息一般包括URL与报文模板(或性能测试要素),测试人员需手工设置线程组、采样器、监听器等,还需要按规范设置文件名、注释,上述过程存在诸多重复性操作。特别是当接口数量较多时,测试人员需花费较长时间进行脚本编写,操作繁琐重复。为了提高性能测试脚本编写效率,本文提出了一种性能测试Jmeter脚本生成工具,实现自动解析测试要素和脚本内容生成,有效地解决了Jmeter脚本编写的重复劳动和效率低下的痛点。

二、性能测试脚本制作现状

性能测试脚本是贯穿测试准备、测试执行的重要角色,但是目前行内制作性能测试脚本的方法仍然是比较原始的,常见的有两种方式:

1.手工编写。测试人员获得开发人员交付的性能测试要素以后,再人工填写脚本里各个元件的参数,脚本名和元件名也需要根据行里的规范进行手工命名,完成以后才算初步得到了一个规范的脚本,后续还需要进行调试。

图片

2.录制。行内部分接口可通过Jmeter、Badboy、Fiddler等工具录制获得,比较适合B/S架构,应用场景相对受限,且录制后需挑选目标交易,抽取到接口后仍需手工命名脚本及元件,节省的人力有限。

手工编写性能测试脚本方式的痛点是显而易见的,包括以下三个方面:

1.操作繁琐重复,测试人员需要手工设置脚本名、各类测试元件名以及脚本注释等内容,手工填充URL、报文等接口参数,即使是基于同系统的历史脚本,制作一个新脚本仍需进行7次以上的复制粘贴操作。

图片

图片

单个脚本需修改的参数示例

2.多脚本情况下耗时较长,测试人员手工编写一个脚本时长约为2-5分钟,如果脚本数量增加,耗时呈倍数增加,测试准备时间延长,从而拉长了测试交付到压测开始的时间。

3.正确性不易保证,测试人员重复的复制粘贴操作容易出错,如遗漏、重复粘贴等,如果引入隐秘的错误,或将错误引入压测过程,后期排查成本可能会较高。

三、性能测试脚本生成方法

性能测试Jmeter脚本生成思路如下图所示,包括:输入准备、接口信息解析、元件模板选择及参数填充、构造脚本等四个步骤。

图片

输入部分,需要性能测试要素或接口信息的文本,还需要脚本的必要配置信息,比如项目名称、混合脚本名称等在性能测试要素中体现不出来的信息;输入信息具备以后,需要对关键要素进行提取,比如URL、报文等,并根据规范和提取的接口信息,生成脚本名、脚本注释、测试元件名等;下一步,从各种元件模板中选择元件模板,并且把上一步的各类信息,填充到元件中;最后,把元件组装成一个脚本。工具通过平台化实现生成脚本的过程,自动完成脚本积累。

其中,接口信息解析、元件模板选择及参数填充、构造脚本是较关键的步骤,下面进行详细阐述:

接口信息解析:把接口信息按接口分割,再通过正则表达式对接口文本进行信息提取,以 URL 为例,需要提取的有 IP、端口号、路径等,URL 有多种形式,有如示例中IP+端口号形式的,也有域名形式的,还有域名+端口号形式的,本工具支持各类输入。信息从接口文本里初步提取出以后,就可以用于生成测试元件,有些参数还需要对提取出来的信息进行二次加工,如脚本名、事务名、注释等,需要根据接口信息和脚本规范生成。

图片

元件模板选择及参数填充:解析出脚本的各类信息后,根据接口信息,选取适用的元件模板,并填充参数。

图片

构造脚本:将填充好参数的元件按照Jmeter脚本的规则拼接、组装,把各个元件放到相应的XML节点处,即可得到完整的性能测试脚本。下图列举了几个常见元件的文本形式和在脚本中的对应关系。

图片

四、工具应用效果

在实践中,我们将工具集成到 Web 平台中,使用步骤非常简单:准备接口要素、导入平台、导出脚本。

准备好性能测试要素或接口信息文本以后,通过页面导入粘贴到输入框,然后填写必要的脚本配置信息。

图片

点击确定,生成一条生成任务;当生成任务显示已完成的时候(一般需要几十秒),选中该条记录,点击脚本导出,即可批量把脚本下载到本地;也可点击性能脚本,跳转到脚本管理页面,下载单个脚本。整个过程只需要约一分钟的时间。

图片

通过对比手工编写和工具生成方式,不管是从操作次数、编写时长、还是出错概率,工具的方式都是优于手工方式的,特别是接口数量较多的时候,工具优越性更能体现出来。

图片

在实际项目中,工具表现突出。如在微银行信用卡微信公众号重构项目中,开发人员一次交付68个接口,工具在1分钟内生成全部接口的性能测试脚本,略微调试后即开始第一轮接口压测,在三周内完成全部接口的性能测试,大大节省脚本准备的人力、时间。

五、总结

在性能脚本制作过程中,使用性能测试Jmeter脚本生成工具有以下优势:

1.降本提效,使测试人员不必进行重复繁琐的复制粘贴操作编写脚本,节省人力成本,缩短开发人员交付到性能测试执行之间的时间,提高测试效率。

2.减少误差,要素解析、元件生成按预定规则执行,不易出现误差。

3.易于推广,性能测试脚本的制作过程具有一定的通用性,目前工具已在上研测试部推广,应用于6个系统,生成脚本300余个。

在未来的工作中,为进一步提高操作效率,提升脚本资产的共享与积累能力,我们将继续完善性能测试Jmeter脚本生成工具,重点突破“在线调试”和“联动Xmeter”两个功能。

行动吧,在路上总比一直观望的要好,未来的你肯定会感 谢现在拼搏的自己!如果想学习提升找不到资料,没人答疑解惑时,请及时加入扣群: 320231853,里面有各种软件测试+开发资料和技术可以一起交流学习哦。

最后感谢每一个认真阅读我文章的人,礼尚往来总是要有的,虽然不是什么很值钱的东西,如果你用得到的话可以直接拿走:

这些资料,对于【软件测试】的朋友来说应该是最全面最完整的备战仓库,这个仓库也陪伴上万个测试工程师们走过最艰难的路程,希望也能帮助到你!

  • 13
    点赞
  • 17
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值