软件测试 —— 性能测试(jmeter)
软件测试 —— 性能测试(jmeter)
- 什么是jmeter
- 安装jmeter
- jmeter常用组件
- 线程组
- 取样器
- 结果树
我们之前学习了接口测试工具Postman,我们今天要学习的是性能测试工具——jmeter
什么是jmeter
Apache JMeter 是一个开源的性能测试工具,主要用于对Web应用进行负载和性能测试。它最初设计用于测试Web应用程序,但随着时间的发展,JMeter已经成为了一个多功能的性能测试工具,可以用来测试静态和动态资源、Web动态应用程序、FTP服务器、数据库服务器(通过JDBC)、LDAP服务等多种类型的服务。
以下是关于JMeter的一些关键点:
- 用途:它可以模拟重负载来测试服务器、网络或对象的强度和性能,也可以用于回归测试以确保应用程序在不同的负载条件下仍然稳定运行。
- 协议支持:除了HTTP/HTTPS外,还支持多种协议,如FTP、JDBC、JMS、SOAP、REST等。
- 用户界面:提供图形用户界面(GUI)用于构建和执行测试计划,同时也支持命令行模式用于非GUI的批处理测试。
- 可扩展性:JMeter拥有丰富的插件生态系统,可以通过第三方插件扩展其功能,例如支持更多类型的取样器、监听器、报告等。
- 灵活配置:可以配置线程组(模拟用户数量)、定时器(模拟思考时间)、断言(验证响应)、监听器(收集和分析结果)等组件,以创建复杂的测试场景。
- 结果分析:内置了多种监听器帮助分析测试结果,如聚合报告、视图结果树、响应时间图表等,还可以生成HTML格式的详细测试报告。
- 跨平台:JMeter是基于Java的应用程序,因此可以在任何支持Java的平台上运行,包括Windows、Linux和macOS。
- 社区支持:作为Apache软件基金会的一部分,JMeter有一个活跃的开发社区,提供文档、教程和技术支持。
JMeter是一个强大的工具,适用于需要评估系统在不同负载条件下的表现的开发者、测试人员和运维工程师。它不仅限于Web应用的性能测试,也可以应用于其他类型的软件和服务。
安装jmeter
首先jmeter是要在java环境上运行的,如果大家的java环境还没有安装好,可以在网上搜搜教程,这里不再过多赘述,我们这里主要介绍jmeter在配置好java环境之后的安装:
安装完java环境之后,我们可以来到jmeter的官网:
https://jmeter.apache.org/
点击左旁的Downloads Releases:
选择Binaries下的zip:
下载完之后,找个地方解压:
点进去找到bin文件:
再点进去,找到jmeter.bat:
双击,看看jmeter是否能运行:
这样的话运行成功,但是这样我们运行jmeter时每次都要到bin文件目录下打开jmeter.bat,这样很麻烦,我们可以把bin文件的文件目录放到环境变量中:
新建之后,把文件路径粘进去,然后一直点确定,就可以了。这时候打开cmd,在命令行直接输入jmeter就可以直接启动:
如果想改变jmeter的语言设置,找到jmeter.properties:
打开之后找到language这一行,改成language=zh_CN
jmeter常用组件
线程组
我们进入到jmeter的页面,在新的测试计划右击添加组件:线程组
这张图片显示了JMeter中线程组(Thread Group)的配置界面。以下是各个属性的解析:
-
线程数 (Number of Threads):
- 设置为
1
,表示将有1个虚拟用户参与测试。
- 设置为
-
Ramp-Up时间 (秒) (Ramp-Up Period in Seconds):
- 设置为
1
,表示所有虚拟用户将在1秒内启动。如果设置为0,则所有虚拟用户会立即开始执行任务。
- 设置为
-
循环次数 (Loop Count):
- 设置为
1
,表示每个虚拟用户将执行一次测试计划中的采样器。如果选择“永远”(Forever),则虚拟用户将持续执行直到测试被手动停止。
- 设置为
-
Same user on each iteration:
- 选中此选项表示在每次迭代中使用相同的用户凭证。这通常用于需要保持会话状态的测试场景。
-
延迟创建线程直到需要 (Delay Thread Creation Until Needed):
- 未选中,这意味着线程会在测试开始时立即创建。
-
调度器 (Scheduler):
- 未选中,这意味着测试将持续运行,直到所有线程完成它们的任务或达到循环次数。
-
持续时间 (秒) (Duration in Seconds):
- 空白,表示没有设置持续时间。如果设置了持续时间,测试将在指定的时间后自动停止。
-
启动延迟 (秒) (Start Delay in Seconds):
- 空白,表示没有设置启动延迟。如果设置了启动延迟,测试将在指定的时间后开始。
我们现在只是设置了线程组,还没有设置请求,还无法执行,如果我们要执行,还要添加取样器:
取样器
在线程组上右击,添加HTTP取样器:
我们填入百度的信息试一下:
这个时候如果我们想看运行结果,要添加结果树:
结果树
这个时候我们可以点击左上方的绿色按钮:
这个时候可以看到我们的运行结果,我们可以看一下请求和相应数据: