如何编写测试团队通用的Jmeter脚本
平时学习、工作过程中,编写的一些jmeter脚本,相信大多数都遇到过这个问题。那就是:如果换一台电脑运行,文件路径不一样,会导致运行失败。
前不久,自己就真真切切遇到过一回,A同学写了个脚本用于压测,需要其他测试同学协助下,结果部分人员没有提前调试代码,导致运行的时候报错。
主要的原因就是,A同学写的脚本不能通用,以自己本机的路径来编写的,而其他同学的文件路径不一样,导致报错。
后面我实在看不下去了,把脚本改动了下,压测顺利结束。
那么这个问题是否有解决的办法呢,自然是有的,而且很简单。
我们来看详细
获取文件目录
用户定义变量
我们先来看第一种方式,直接使用beanshell函数,将变量放到用户定义的变量中,如下所示;脚本运行后,可以在日志中查看到获取到的脚本路径。

代码如下所示:
${__BeanShell(import org.apache.jmeter.services.FileServer;FileServer.getFileServer().getBaseDir();,)}
添加的这行代码,后续直接用shellPath字段来替换掉固定文件path就ok了
beanshell处理器
在线程组中添加beanshell后置处理器,配置如下:

代码如下所示:
import org.apache.jmeter.services.FileServer;
String path = FileServer.getFileServer().getBaseDir();
log.info(path);
HTTP默认请求头
通常一个脚本中,不止一个接口请求。我们每个请求都得有host、protocol,如果这些通用参数都写在每个请求里,变动一次,那这改动量可就太大了。
对于这个问题,我们可以使用HTTP默认请求头,将host、protocol配置好,在后续的请求中就不会再填写host、protocol。
如果参数有改动,那也只需要改动一次而已,大大提高效率。配置如下所示:

功能应用
针对开篇讲到的案列,问题出现点,我们来一一解答
CSV参数化
脚本是打包在一个文件夹传递的,脚本中引用一个参数化文件。文件的路径为A同学的固定路径,可其他同学拿到脚本,存放的路径并不一致,那直接运行的话,必然会报错。
对于这个点,我们来改造如下,脚本路径使用变量shellPath替换即可,如下所示:

附件上传
脚本中还有个附件上传请求,文件路径也是固定的,同理,用我们定义的变量shellPath替换即可,如下所示:

删除数据
脚本运行过程中,会保存一些字段数据,但为了不影响新一轮测试,所以在测试前,会把历史数据给删除。
同样的,我们要删除的文件路径也替换成变量shellPath,如下所示:

以上只是jmeter使用中很简单的功能,虽然简单,但作用却很大。
如果脚本不通用,即使在自己电脑上正常运行,换一台设备,就又得再调试,不是我们想要的效果。
在编写脚本时,还是需要编写通用的脚本,一些小细节,忽略不得。
如何编写测试团队通用的Jmeter脚本的更多相关文章
- 提升jmeter脚本编写效率的方法:Fiddler导出jmx文件
有效提升编写JMeter脚本效率的方法 jmeter的脚本来源有以下几种:badboy录制.jmeter自带的录制功能.手动编写脚本(使用fiddler/wireshark来抓包,然后构造协议写脚本) ...
- Jmeter+Ant+Jenkins接口自动化测试(二)_测试方案设计及jmeter脚本开发
前言 根据之前部署好的测试环境,进行接口自动化测试的方案设计及Jmeter脚本开发.测试方案设计过程中采用了数据分离和对象分离等思路,因此直接通过特定的测试用例文档来驱动整个自动化接口测试的执行,相关 ...
- Jmeter Web 性能测试入门 (四):一个小实例带你学会 Jmeter 脚本编写
测试场景: 模拟并发100个user,在TesterHome 站内搜索VV00CC 添加线程组 添加HTTP信息头管理器 添加HTTP Sampler 填写HTTP Sampler中的信息 添加监听器 ...
- Jmeter脚本录制方法(二)——手工编写脚本(jmeter与fiddler结合使用)
jmeter脚本录制方法可以分三种,前几天写的一篇文章中,已介绍了前两种,今天来说下第三种,手工编写脚本,建议使用这一种方法,虽然写的过程有点繁琐,但调试脚本比前两者方式都要便捷. 首先来看下三种方式 ...
- Jmeter脚本录制方法(二)手工编写脚本(jmeter与fiddler结合使用)
jmeter脚本录制方法可以分三种,前几天写的一篇文章中,已介绍了前两种,今天来说下第三种,手工编写脚本,建议使用这一种方法,虽然写的过程有点繁琐,但调试脚本比前两者方式都要便捷. 首先来看下三种方式 ...
- jmeter脚本的编写
前几天讲到了性能测试的入门,今日继续来讲解jmeter的使用,本文讲的都是比较细,希望各位耐心的看完. 一.jmeter的安装与打开 前提条件:给大家一个jmeter的安装包 百度网盘的路径如下:链 ...
- jmeter脚本编写
jmeter脚本编写 一.http协议接口编写注意事项 1.请求体为json格式:一定要写请求头Content-Type:application/json 2.json格式文本 2.1 key-val ...
- 转:通过ant来批量执行jmeter脚本,并生成报告(附: 生成报告时报“Content is not allowed in prolog”这个错误的解决方案)
最近在使用jmeter写脚本来进行测试,最终写了很多份脚本,然后,就在想,这么多脚本,我不可能一个一个的手动去点啊,有没有什么办法来批量运行Jmeter脚本呢? 这个时候,自然而然地想到了万能的ant ...
- 性能测试培训:批量执行Jmeter脚本之ant调用
性能测试培训:批量执行Jmeter脚本之ant调用 poptest是国内唯一一家培养测试开发工程师的培训机构,以学员能胜任自动化测试,性能测试,测试工具开发等工作为目标.在poptest的load ...
随机推荐
- XCTF练习题---MISC---misc_pic_again
XCTF练习题---MISC---misc_pic_again flag:hctf{scxdc3tok3yb0ard4g41n~~~} 解题步骤: 1.观察题目,下载附件 2.拿到手是一张图片,直接上 ...
- Hadoop(三)通过C#/python实现Hadoop MapReduce
MapReduce Hadoop中将数据切分成块存在HDFS不同的DataNode中,如果想汇总,按照常规想法就是,移动数据到统计程序:先把数据读取到一个程序中,再进行汇总. 但是HDFS存的数据量非 ...
- XPath语法和lxml模块
XPath语法和lxml模块 什么是XPath? xpath(XML Path Language)是一门在XML和HTML文档中查找信息的语言,可用来在XML和HTML文档中对元素和属性进行遍历. X ...
- muduo源码分析之回调模块
这次我们主要来说说muduo库中大量使用的回调机制.muduo主要使用的是利用Callback的方式来实现回调,首先我们在自己的EchoServer构造函数中有这样几行代码 EchoServer(Ev ...
- kvm 虚拟化技术 1.3之kvm克隆以及快照
1.kvm虚拟机克隆 克隆kvm虚拟机 ,克隆前需要提前关机 语法: virt-clone -o 原虚拟机 -n 新虚拟机 -f 新虚拟机镜像存放路径 选项中-o 表示 old ...
- 跨云平台与物理专线使用Vxlan实现两地二层互通,并使用ospf与bgp做底层链路主备
Vxlan基础,已掌握可略过 VXLAN网络架构 VXLAN是NVO3中的一种网络虚拟化技术,通过将原主机发出的数据包封装在UDP中,并使用物理网络的IP.MAC作为外层头进行封装,然后在IP网络上传 ...
- SRIO RapidIO (SRIO)协议介绍(-)
1 导读 1.1 与PCIe的差异 典型的PCIe结构定义了一个以单个中央处理器为核心的计算机系统,比如我们常见的工控机.PXIe机箱控制器.服务器内的IO设备.从系统架构来看,这个结构 ...
- 2022Gartner容器预测:2025年85%的企业将使用容器管理服务
近日,国际知名权威分析机构Gartner发布了最新<全球容器管理预测>.预测中指出:在加速的数字化转型驱动下,到2025年全球容器管理领域市场规模将突破14亿美元,预计年复合增长率将达到2 ...
- 参与 2022 第二季度 Flutter 开发者调查
2022 Google I/O 大会正式落下帷幕,Flutter 作为 14 个开发者产品和平台中的一款,吸引了来自全球的很多开发者们的关注.随着全国很多地方已经进入夏季,Flutter 今年第二季度 ...
- Lucene开发实例:Lucene中文分词(转载)
1.准备工作下载lucene 3.6.1 : http://lucene.apache.org/下载中文分词IK Analyzer: http://code.google.com/p/ik-analy ...