searchusermenu
  • 发布文章
  • 消息中心
点赞
收藏
评论
分享
原创

Jmeter在性能测试中的应用

2023-05-26 01:51:03
30
0

1.    jmeter工具介绍

      jmeter即apache jmeter,是由apache组织基于java开发的压力测试工具。jmeter诞生的目的主要就是用于压力测试,但也可用于普通功能测试,通过创建带有断言的脚本,可验证应用程序接口返回的结果与预期结果是否符合。

      由于jmeter是基于java开发的,因此在使用jmeter前需要先部署好java环境,包括安装jdk、配置环境变量。java环境部署好后,就可以从官网下载jmeter了,依据jmeter版本的不同,对jdk版本也是有相应要求的,这里需要注意。jmeter版本分为windows版本和linux版本,根据测试环境进行版本选择,windows版本通常在web类型的应用上压测使用较多,而后端服务的压测通常使用linux版本直接在服务器上进行压测。

2.    jmeter性能压测

      jmeter使用时可以使用gui模式,也可以使用命令行模式,二者原理是一样的,仅是使用场景不同。

2.1.  jmeter gui模式

      gui模式即图形界面模式,jmeter通过提供gui模式,可以更方便的进行操作,更直观的查看测试结果。gui模式通常在jmeter的bin目录下执行jmeter.bat即可打开,操作界面如下:

      在左侧操作栏中可新建测试计划,测试计划用来描述一个性能测试(或功能测试,jmeter通常是用来进行性能测试的),测试计划就是一个管理单元,一个jmeter测试脚本对应一个测试计划。测试计划中可以包含本次测试的所有相关功能,可能包括线程组、取样器、监听器等,其中有一些功能是必须的,有一些是可选的,可根据需求进行组合选取。具体的功能使用将在实际应用场景一节中进行说明。

2.2.  jmeter命令行模式

      jmeter命令行模式通常在linux服务器中用的比较多,应用程序部署的服务器一般都是linux系统,可在与之连通的其它linux系统上搭建性能测试服务,通过jmeter进行性能测试。jmeter支持手动创建测试项,也支持通过导入的方式直接创建测试项,这就能够比较方便的用命令行创建并执行测试计划,需要修改测试内容时,直接修改配置文件即可。命令行jmeter的启动,通常是在jmeter的bin目录下执行./jmeter命令,后面指定要加载的配置文件。

2.3.  实际应用场景

      下面以实际业务压测为例,说明jmeter在性能测试中的使用。这里为了比较直观的说明jmeter在实际业务中的应用,使用的是jmeter的gui模式。为了保证不关联到真实的业务,这里暂将所测试的业务命名为“业务A”。另外,由于jmeter本身功能比较强大,这里仅以业务压测中用到的功能进行说明,其它未涉及到的业务,可自行进行学习。

(1)在测试计划中创建“业务A测试线程组”。

(2)取样器错误后执行的动作选择“继续”,线程数选择10,Ramp-Up时间选择1(秒),循环次数选择10。即在1秒之内启动10个线程调用业务接口,如此循环10次,测试过程中若出现接口运行错误或异常,继续执行接下来的线程,不影响其它线程执行。根据压测情况,线程数、Ramp-Up时间、循环次数可依次调整,知道测出最大负载情况。

(3)在线程组下创建“HTTP请求”,设置要测试的应用程序所在的服务器、所使用的通信协议、请求端口号,请求方式、请求url、请求参数等。线程组中线程就是通过这些设置,在不同线程中调用应用程序接口的。

(4)在HTTP信息头管理器中设置请求头信息。

(5)在HTTP授权管理器中设置权限信息,若测试环境未设置权限信息,可不进行设置。

(6)设置CSV数据文件。性能测试通常要模拟短时间内不同用户同时对接口进行操作的场景,因此接口的入参通常是不同的,那么不同的入参数据就可以提前生成在文件中,jmeter直接从文件中读取参数来作为调用接口的入参。

(7)在响应断言中设置判断请求是否执行成功的判断,在业务A的测试中,设置断言字段为“响应文本”,模式匹配规则为“包括”,测试模式为“code”:1。即断言的内容为响应数据,若响应数据中包含了“code”:1的内容,则认为接口执行是成功的,否则认为是失败的。

(8)上述设置均设置完成后,可以点击运行按钮开始执行测试计划了。测试结果可在聚合报告中进行查看,性能测试比较关心的数据一般包括异常率、吞吐量等,若涉及到对报文的处理,还会关心每秒接收、发送的数据量。

(9)聚合报告展示了综合的性能测试情况,若想要查看测试过程中每个线程调用接口的情况,可查看结果树。结果数据展示了本次性能测试中每个接口的具体调用情况,包括取样器结果、请求数据、响应数据等,也能从结果列表中比较直观的看出哪些接口调用成功了,哪些接口调用失败了。

(10)性能测试除了关心吞吐量外,对资源使用情况通常也比较关注,如cpu、内存、io等,jmeter支持通过PerfMon Metrics Collector插件监控资源使用情况。

3.    总结

       本文内容介绍了jmeter的不同模式,并结合实际性能测试讲解了jmeter在性能测试中的应用。jmeter本身功能很强大,特别是对性能测试的支持很完善,本文仅针对普通的性能测试举例进行了讲解,没有完全覆盖jmeter的所有功能,需要的同学可继续探索。

0条评论
0 / 1000
h****n
2文章数
0粉丝数
h****n
2 文章 | 0 粉丝
h****n
2文章数
0粉丝数
h****n
2 文章 | 0 粉丝
原创

Jmeter在性能测试中的应用

2023-05-26 01:51:03
30
0

1.    jmeter工具介绍

      jmeter即apache jmeter,是由apache组织基于java开发的压力测试工具。jmeter诞生的目的主要就是用于压力测试,但也可用于普通功能测试,通过创建带有断言的脚本,可验证应用程序接口返回的结果与预期结果是否符合。

      由于jmeter是基于java开发的,因此在使用jmeter前需要先部署好java环境,包括安装jdk、配置环境变量。java环境部署好后,就可以从官网下载jmeter了,依据jmeter版本的不同,对jdk版本也是有相应要求的,这里需要注意。jmeter版本分为windows版本和linux版本,根据测试环境进行版本选择,windows版本通常在web类型的应用上压测使用较多,而后端服务的压测通常使用linux版本直接在服务器上进行压测。

2.    jmeter性能压测

      jmeter使用时可以使用gui模式,也可以使用命令行模式,二者原理是一样的,仅是使用场景不同。

2.1.  jmeter gui模式

      gui模式即图形界面模式,jmeter通过提供gui模式,可以更方便的进行操作,更直观的查看测试结果。gui模式通常在jmeter的bin目录下执行jmeter.bat即可打开,操作界面如下:

      在左侧操作栏中可新建测试计划,测试计划用来描述一个性能测试(或功能测试,jmeter通常是用来进行性能测试的),测试计划就是一个管理单元,一个jmeter测试脚本对应一个测试计划。测试计划中可以包含本次测试的所有相关功能,可能包括线程组、取样器、监听器等,其中有一些功能是必须的,有一些是可选的,可根据需求进行组合选取。具体的功能使用将在实际应用场景一节中进行说明。

2.2.  jmeter命令行模式

      jmeter命令行模式通常在linux服务器中用的比较多,应用程序部署的服务器一般都是linux系统,可在与之连通的其它linux系统上搭建性能测试服务,通过jmeter进行性能测试。jmeter支持手动创建测试项,也支持通过导入的方式直接创建测试项,这就能够比较方便的用命令行创建并执行测试计划,需要修改测试内容时,直接修改配置文件即可。命令行jmeter的启动,通常是在jmeter的bin目录下执行./jmeter命令,后面指定要加载的配置文件。

2.3.  实际应用场景

      下面以实际业务压测为例,说明jmeter在性能测试中的使用。这里为了比较直观的说明jmeter在实际业务中的应用,使用的是jmeter的gui模式。为了保证不关联到真实的业务,这里暂将所测试的业务命名为“业务A”。另外,由于jmeter本身功能比较强大,这里仅以业务压测中用到的功能进行说明,其它未涉及到的业务,可自行进行学习。

(1)在测试计划中创建“业务A测试线程组”。

(2)取样器错误后执行的动作选择“继续”,线程数选择10,Ramp-Up时间选择1(秒),循环次数选择10。即在1秒之内启动10个线程调用业务接口,如此循环10次,测试过程中若出现接口运行错误或异常,继续执行接下来的线程,不影响其它线程执行。根据压测情况,线程数、Ramp-Up时间、循环次数可依次调整,知道测出最大负载情况。

(3)在线程组下创建“HTTP请求”,设置要测试的应用程序所在的服务器、所使用的通信协议、请求端口号,请求方式、请求url、请求参数等。线程组中线程就是通过这些设置,在不同线程中调用应用程序接口的。

(4)在HTTP信息头管理器中设置请求头信息。

(5)在HTTP授权管理器中设置权限信息,若测试环境未设置权限信息,可不进行设置。

(6)设置CSV数据文件。性能测试通常要模拟短时间内不同用户同时对接口进行操作的场景,因此接口的入参通常是不同的,那么不同的入参数据就可以提前生成在文件中,jmeter直接从文件中读取参数来作为调用接口的入参。

(7)在响应断言中设置判断请求是否执行成功的判断,在业务A的测试中,设置断言字段为“响应文本”,模式匹配规则为“包括”,测试模式为“code”:1。即断言的内容为响应数据,若响应数据中包含了“code”:1的内容,则认为接口执行是成功的,否则认为是失败的。

(8)上述设置均设置完成后,可以点击运行按钮开始执行测试计划了。测试结果可在聚合报告中进行查看,性能测试比较关心的数据一般包括异常率、吞吐量等,若涉及到对报文的处理,还会关心每秒接收、发送的数据量。

(9)聚合报告展示了综合的性能测试情况,若想要查看测试过程中每个线程调用接口的情况,可查看结果树。结果数据展示了本次性能测试中每个接口的具体调用情况,包括取样器结果、请求数据、响应数据等,也能从结果列表中比较直观的看出哪些接口调用成功了,哪些接口调用失败了。

(10)性能测试除了关心吞吐量外,对资源使用情况通常也比较关注,如cpu、内存、io等,jmeter支持通过PerfMon Metrics Collector插件监控资源使用情况。

3.    总结

       本文内容介绍了jmeter的不同模式,并结合实际性能测试讲解了jmeter在性能测试中的应用。jmeter本身功能很强大,特别是对性能测试的支持很完善,本文仅针对普通的性能测试举例进行了讲解,没有完全覆盖jmeter的所有功能,需要的同学可继续探索。

文章来自个人专栏
文章 | 订阅
0条评论
0 / 1000
请输入你的评论
0
0