热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

idea运行jmeter源码_JMeter二次开发指南(一)环境搭建

一、概述随着测试行业的逐步成熟,对测试的要求也从原本的手工功能测试为主,慢慢转变为各种类型的测试相结合,包括性能、自动化、安全等。对用户体
b1e8f8fc23dc2429ee22b9b0ed3ef77d.png

一、概述

随着测试行业的逐步成熟,对测试的要求也从原本的手工功能测试为主,慢慢转变为各种类型的测试相结合,包括性能、自动化、安全等。对用户体验的要求也越来越高,而性能的优劣在一定程度上影响着用户体验。因此对于性能测试的需求也日益增加。并且性能测试对象也从原本主要以http协议为主的接口转变为多元化发展,现在我们需要对各种类型的软件进行性能测试,包括但不局限于rpc、mq、nosql等。

而对于非http协议的接口,没有一款工具可以包含所有类型,因此对于这类情况,我们需要利用工具进行二次开发。本次将分几个系列对JMeter的二次开发进行介绍。

二、环境准备

目前最新的JMeter版本为5.3,与早期版本相比,构建方式从Ant变成了Gradle,因此我们需要准备的环境包括:

  1. 安装jdk1.8或以上版本并配置环境变量
  2. 安装Gradle并配置环境变量
  3. 从github(https://github.com/apache/jmeter)或JMeter官网(https://jmeter.apache.org/)下载源码并解压

3步的具体步骤各位小伙伴可以自行搜索,本文不做过多展开。

三、构建说明

  1. 进入到JMeter源码根目录,执行一下命令将构建及测试JMeter
    如果需要需要启动GUI,可以运行

./gradlew build [-Djava.awt.headless=true]如果需要构建并启动GUI可以运行

./gradlew runGui这里有个小技巧,每次都打./gradlew比较麻烦,我们可以安装一个小工具(https://github.com/dougborg/gdub),这样就可以使用"gw"来代替"./gradlew"了,安装后运行的命令是

gw runGui

55113abe974f7a627f6640583cddd564.png


运行过程中回去下载下载相关的jar包等文件,大家可以通过设置代理或使用国内镜像源等方式进行加速

  1. 为了方便二次开发,我们需要将JMeter源码导入到Intellij IDEA或是eclipse中,如果是IDEA的话,需要2018.3.1或更新的版本,eclipse可以通过Import...->Gradle project的方式导入,需要注意的是我们需要安装对应的kotlin插件。导入步骤网上有很多文章,新版本的JMeter与之前的导入步骤无太大差别,这里也不做过多展开。

四、启动Jmeter

导入完成后,我们就可以在IDEA中启动JMeter了

24f3af8052e9bfa2db6a4c9539f5612a.png

当然依然可以通过命令行的方式来运行。

此外我们也可以通过执行入口程序的NewDriver的方式来运行,需要注意的最新版本的NewDriver在src下的launcher下,而不是之前的core,并且启动时记得设置jmeter.home属性,否则会报错。

d834c2603e5489a4dd552a6547dfb09b.png
04d02e73d017193320e3dfd8257d7fa7.png

有些使用mac os x的小伙伴可能设置了jmeter.home依然会报错,此时我们可以自己修改代码。

7b8b90cbf745b316bd796d4c0dbc8c29.png

以上是简单为大家介绍了一下当前最新版本JMeter开发环境搭建的步骤,其中部分环境安装(如:jdk、gradle、kotlin等)未给大家详细介绍,不过相信大家在查阅资料后是可以解决的,如果大家还有别的什么问题,可以在评论中进行回复。

每一篇文章都来自鲁德精心原创,如果文章帮到了你,欢迎转发和点赞,让更多的朋友受益!跟着鲁德一起,每天进步一点点,终会质变!让你面试拿高薪!



推荐阅读
  • 项目运行环境配置及可行性分析
    本文介绍了项目运行环境配置的要求,包括Jdk1.8、Tomcat7.0、Mysql、HBuilderX等工具的使用。同时对项目的技术可行性、操作可行性、经济可行性、时间可行性和法律可行性进行了分析。通过对数据库的设计和功能模块的设计,确保系统的完整性和安全性。在系统登录、系统功能模块、管理员功能模块等方面进行了详细的介绍和展示。最后提供了JAVA毕设帮助、指导、源码分享和调试部署的服务。 ... [详细]
  • Java学习笔记之面向对象编程(OOP)
    本文介绍了Java学习笔记中的面向对象编程(OOP)内容,包括OOP的三大特性(封装、继承、多态)和五大原则(单一职责原则、开放封闭原则、里式替换原则、依赖倒置原则)。通过学习OOP,可以提高代码复用性、拓展性和安全性。 ... [详细]
  • Win10 64位旗舰版的优势及特点详解
    本文详细介绍了Win10 64位旗舰版的优势及特点,包括更安全的源安装盘、永久激活方式、稳定性和硬件驱动的集成,以及人性化的维护工具和分区功能。通过阅读本文,您将了解到Win10 64位旗舰版相比其他版本的优势和特点。 ... [详细]
  • 如何实现JDK版本的切换功能,解决开发环境冲突问题
    本文介绍了在开发过程中遇到JDK版本冲突的情况,以及如何通过修改环境变量实现JDK版本的切换功能,解决开发环境冲突的问题。通过合理的切换环境,可以更好地进行项目开发。同时,提醒读者注意不仅限于1.7和1.8版本的转换,还要适应不同项目和个人开发习惯的需求。 ... [详细]
  • Hibernate延迟加载深入分析-集合属性的延迟加载策略
    本文深入分析了Hibernate延迟加载的机制,特别是集合属性的延迟加载策略。通过延迟加载,可以降低系统的内存开销,提高Hibernate的运行性能。对于集合属性,推荐使用延迟加载策略,即在系统需要使用集合属性时才从数据库装载关联的数据,避免一次加载所有集合属性导致性能下降。 ... [详细]
  • 开发笔记:spring boot项目打成war包部署到服务器的步骤与注意事项
    本文介绍了将spring boot项目打成war包并部署到服务器的步骤与注意事项。通过本文的学习,读者可以了解到如何将spring boot项目打包成war包,并成功地部署到服务器上。 ... [详细]
  • 本文介绍了Web学习历程记录中关于Tomcat的基本概念和配置。首先解释了Web静态Web资源和动态Web资源的概念,以及C/S架构和B/S架构的区别。然后介绍了常见的Web服务器,包括Weblogic、WebSphere和Tomcat。接着详细讲解了Tomcat的虚拟主机、web应用和虚拟路径映射的概念和配置过程。最后简要介绍了http协议的作用。本文内容详实,适合初学者了解Tomcat的基础知识。 ... [详细]
  • 自动轮播,反转播放的ViewPagerAdapter的使用方法和效果展示
    本文介绍了如何使用自动轮播、反转播放的ViewPagerAdapter,并展示了其效果。该ViewPagerAdapter支持无限循环、触摸暂停、切换缩放等功能。同时提供了使用GIF.gif的示例和github地址。通过LoopFragmentPagerAdapter类的getActualCount、getActualItem和getActualPagerTitle方法可以实现自定义的循环效果和标题展示。 ... [详细]
  • CF:3D City Model(小思维)问题解析和代码实现
    本文通过解析CF:3D City Model问题,介绍了问题的背景和要求,并给出了相应的代码实现。该问题涉及到在一个矩形的网格上建造城市的情景,每个网格单元可以作为建筑的基础,建筑由多个立方体叠加而成。文章详细讲解了问题的解决思路,并给出了相应的代码实现供读者参考。 ... [详细]
  • 本文介绍了南邮ctf-web的writeup,包括签到题和md5 collision。在CTF比赛和渗透测试中,可以通过查看源代码、代码注释、页面隐藏元素、超链接和HTTP响应头部来寻找flag或提示信息。利用PHP弱类型,可以发现md5('QNKCDZO')='0e830400451993494058024219903391'和md5('240610708')='0e462097431906509019562988736854'。 ... [详细]
  • 本文介绍了一款名为TimeSelector的Android日期时间选择器,采用了Material Design风格,可以在Android Studio中通过gradle添加依赖来使用,也可以在Eclipse中下载源码使用。文章详细介绍了TimeSelector的构造方法和参数说明,以及如何使用回调函数来处理选取时间后的操作。同时还提供了示例代码和可选的起始时间和结束时间设置。 ... [详细]
  • 初探PLC 的ST 语言转换成C++ 的方法
    自动控制软件绕不开ST(StructureText)语言。它是IEC61131-3标准中唯一的一个高级语言。目前,大多数PLC产品支持ST ... [详细]
  • Allegro总结:1.防焊层(SolderMask):又称绿油层,PCB非布线层,用于制成丝网印板,将不需要焊接的地方涂上防焊剂.在防焊层上预留的焊盘大小要比实际的焊盘大一些,其差值一般 ... [详细]
  • android ... [详细]
  • 三、查看Linux版本查看系统版本信息的命令:lsb_release-a[root@localhost~]#lsb_release-aLSBVersion::co ... [详细]
author-avatar
黑洞里的筷子
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有