一、摘要
在性能测试过程中,测试人员需根据接口信息编写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”两个功能。
资源分享
下方这份完整的软件测试视频学习教程已经上传CSDN官方认证的二维码,朋友们如果需要可以自行免费领取【保证100%免费】
如果觉得《性能测试Jmeter脚本生成工具实践》对你有帮助,请点赞、收藏,并留下你的观点哦!