• 0
  • 0
分享
  • 如何编写测试团队通用的JMeter脚本——软件测试圈
  • 曼倩诙谐 2024-01-10 11:36:17 字数 1346 阅读 930 收藏 0

  平时学习、工作过程中,编写的一些JMeter脚本,相信大多数都遇到过这个问题。那就是:如果换一台电脑运行,文件路径不一样,会导致运行失败。

  前不久,自己就真真切切遇到过一回,A同学写了个脚本用于压测,需要其他测试同学协助下,结果部分人员没有提前调试代码,导致运行的时候报错。

  主要的原因就是,A同学写的脚本不能通用,以自己本机的路径来编写的,而其他同学的文件路径不一样,导致报错。

  后面我实在看不下去了,把脚本改动了下,压测顺利结束。那么这个问题是否有解决的办法呢,自然是有的,而且很简单,我们来看详细。

  获取文件目录

  用户定义变量

  我们先来看第一种方式,直接使用beanshell函数,将变量放到用户定义的变量中,如下所示,脚本运行后,可以在日志中查看到获取到的脚本路径。

1-1.png

  代码如下所示:

${__BeanShell(import org.apache.jmeter.services.FileServer;FileServer.getFileServer().getBaseDir();,)}

  添加的这行代码,后续直接用shellPath字段来替换掉固定文件path就ok了。

  beanshell处理器

  在线程组中添加beanshell后置处理器,配置如下:

1-2.png

  代码如下所示:

import org.apache.jmeter.services.FileServer;
String path = FileServer.getFileServer().getBaseDir();
log.info(path);

  HTTP默认请求头

  通常一个脚本中,不止一个接口请求。我们每个请求都得有host、protocol,如果这些通用参数都写在每个请求里,变动一次,那这改动量可就太大了。

  对于这个问题,我们可以使用HTTP默认请求头,将host、protocol配置好,在后续的请求中就不会再填写host、protocol。

  如果参数有改动,那也只需要改动一次而已,大大提高效率。配置如下所示:

1-3.png

  功能应用

  针对开篇讲到的案列,问题出现点,我们来一一解答。

  CSV参数化

  脚本是打包在一个文件夹传递的,脚本中引用一个参数化文件。文件的路径为A同学的固定路径,可其他同学拿到脚本,存放的路径并不一致,那直接运行的话,必然会报错。

  对于这个点,我们来改造如下,脚本路径使用变量shellPath替换即可,如下所示:

1-4.png

  附件上传

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

1-5.png

  删除数据

  脚本运行过程中,会保存一些字段数据,但为了不影响新一轮测试,所以在测试前,会把历史数据给删除。

  同样的,我们要删除的文件路径也替换成变量shellPath,如下所示:

1-6.png

  以上只是JMeter使用中很简单的功能,虽然简单,但作用却很大。

  如果脚本不通用,即使在自己电脑上正常运行,换一台设备,就又得再调试,不是我们想要的效果。

  在编写脚本时,还是需要编写通用的脚本,一些小细节,忽略不得。


作者:温一壶清酒    

来源http://www.51testing.com/html/53/n-7795853.html

  • 【留下美好印记】
    赞赏支持
登录 后发表评论
+ 关注

热门文章

    最新讲堂

      • 推荐阅读
      • 换一换
          • 读者提问:有哪些好用的测试用例管理工具?阿常回答:这个问题我从三点回答1、为何要采用测试用例管理工具;2、有哪些常见的测试用例管理工具;3、如何来选取测试用例管理工具。一、为何要采用测试用例管理工具以前我们用 Excel 来维护测试用例,产品发布前把 Excel 里的用例过一遍,这样做似乎是可行的。但随着项目的迭代,项目复杂度的增加,用例的版本也越来越多,Excel 的缺点也逐渐显现。通过 Excel 维护用例,我们遇到的挑战:1、多人协作,用例没有统一存放地点2、项目迭代,用例如何保证常用常新3、用例设计,如何方便复用基础用例二、市面上常见测试用例管理工具Testhub、Jira、禅道、TA...
            0 0 1404
            分享
          • 前言:MySQL越学越多,你的头有越来越秃么?1、MySQL的复制原理以及流程基本原理流程,3个线程以及之间的关联;主:binlog线程——记录下所有改变了数据库数据的语句,放进master上的binlog中;从:io线程——在使用start slave 之后,负责从master上拉取 binlog 内容,放进 自己的relay log中;从:sql执行线程——执行relay log中的语句;2、MySQL中myisam与innodb的区别,至少5点问5点不同?1>.InnoDB支持事物,而MyISAM不支持事物2>.InnoDB支持行级锁,而MyISAM支持表级锁3>.In...
            0 0 1049
            分享
          • 测试报告是由测试人员撰写的,阅读对象是整个项目组。在测试报告的帮助下,测试人员、开发人员、项目经理、产品经理等相关者了解整体测试活动的质量。它可以帮助成员找出问题的根源或问题出现的阶段。它有助于分析问题是否是由于需求分析不够完善,代码设计不妥、管理不善的后果、不稳定的环境设施而导致的。对于项目的收官有重大意义。那测试总结报告应该怎么写呢?我见过一些测试总结报告只有过程,忽略结果,还有的总结报告只体现结果,忽略过程。我认为一份完整的测试总结报告需要将结果和过程相结合。具体包括的内容如下:任何报告都是结论先行。一上来,先pia一个结论,然后再详细开展论述。结论是为了告诉别人这个版本测试是合格还是不...
            3 3 7003
            分享
          •   1. 软件测试不是点点点,还有性能测试,自动化测试,安全测试,甚至于AI测试,大数据测试等等,软件测试的前景还是非常好的。  2. 软件测试相对门槛比较低,前期比较容易入门,哪怕不是计算机专业的小白,也能轻松掌握,不过,软件测试后期的难度和开发没有什么两样,想要拿到高薪,就得学会自动化测试,接口测试这些编码知识。  3. 经常有人抱怨,学了用不上,学完就容易忘记,因为学的都是理论知识,长时间不用自然会容易忘记,最好边学边找项目练手。  4. 如果你身边有人说测试很简单,薪资混混也很容易,那么他基本上过几年还是如此,没啥大的长进。  5. 软件测试有高薪也有低薪,月入两三千是真实存...
            0 0 1277
            分享
          •   世界知名电脑制造商戴尔(Dell)公司近日宣布,其将逐步退出中国市场并终止在中国的主要业务。  此举将对中国电脑市场产生重大影响,并引起广泛讨论。戴尔是美国最大的个人电脑制造商之一,也是全球领先的技术解决方案提供商。数十年来,戴尔在中国市场上表现出色,深受广大消费者和企业用户的欢迎。然而,由于种种原因,戴尔决定结束在中国的主要业务,将资源和重心转移到其他全球市场。戴尔公司发表声明指出:“由于国际贸易紧张局势以及中国市场的日益竞争激烈,我们决定逐步退出中国市场,并将资源重新分配到其他具有高增长潜力的地区。这将有助于我们在全球范围内提供更加全面和高效的服务。”从目前的计划来看,戴尔将逐步关闭在...
            0 0 543
            分享
      • 51testing软件测试圈微信