上篇文章https://editor.youkuaiyun.com/md/?articleId=103612244我们已经成功安装并启动了JMeter,接下来我们编写一个完整性能测试脚本、最终执行性能测试并分析性能测试结果。
注意:初次安装启动后的JMeter是英文版本,可以改成中文。
方法1:依次选择工具栏的【Options】–> 【Choose Language】–> 【Chinese】,就可以了,可以切换成 中文简体 或者是 中文繁体。
方法2:修改jmeter.properties配置文件来设置语言为中文。

打开jmeter.properties配置文件,修改language=zh_CN。

好了,正文开始
1.定义测试实例
我们以新浪网搜索接口为例
1.1接口地址
http://www.sina.com.cn/mid/search.shtml?range=all&c=news&q=5G手机&from=home&ie=utf-8
1.2请求参数
为了简便这里只介绍最关键的参数
range:搜索范围,默认all全部
c:搜索类型,默认news新闻
ie:编码方式,默认为utf-8
q:用户输入的搜索关键词 (最重要的参数)
1.3断言返回结果
根据搜索返回的结果是否包含用户输入的搜索关键词q来判断本次请求成功或失败。
2.编写JMeter测试脚本
2.1添加线程组
右键点击【测试计划】->【添加】 ->【线程(用户)】->【线程组】

这里可以配置线程的名称、线程数、时长、循环次数、调度器等一些基本信息,用来模拟用户请求。TPS、QPS和系统吞吐量等参数的压测都是基于此步的设置。

线程组部分参数详解:
- 线程数:虚拟用户数。一个虚拟用户占用一个进程或线程。设置多少虚拟用户数在这里也就是设置多少个线程数。
- Ramp-Up时间(秒)准备时长:设置的虚拟用户数需要多长时间全部启动。如果线程数为10,准备时长为2,那么需要2秒钟启动10个线程,也就是每秒钟启动5个线程。
- 循环次数:每个线程发送请求的次数。如果线程数为10,循环次数为100,那么每个线程发送100次请求。总请求数为10*100=1000 。如果勾选了“永远”,那么所有线程会一直发送请求,一到选择停止运行脚本。
- 延迟创建线程直到需要:直到需要时延迟线程的创建。
- 调度器:设置线程组启动的开始时间和结束时间(配置调度器时,需要勾选循环次数为永远)
持续时间(秒):测试持续时间,会覆盖结束时间
启动延迟(秒):测试延迟启动时间,会覆盖启动时间
启动时间:测试启动时间,启动延迟会覆盖它。当启动时间已过,手动只需测试时当前时间也会覆盖它。
结束时间:测试结束时间,持续时间会覆盖它。
因为接口调试需要,这里我们设置线程数为2,准备时长为1秒,循环10次;其他暂时均使用默认设置,待后面真正执行性能测试时再回来配置。
2.2添加HTTP请求
右键点击【线程组】->【添加】->【取样器】->【HTTP请求】
对于测试接口http://www.sina.com.cn/mid/search.shtml?range=all&c=news&q=5G手机&from=home&ie=utf-8
配置如下:

HTTP请求主要参数详解:
Web服务器
协议:向目标服务器发送HTTP请求协议,可以是HTTP或HTTPS,默认为HTTP
服务器名称或IP :HTTP请求发送的目标服务器名称或IP
端口号:目标服务器的端口号,默认值为80
2.HTTP请求
方法:发送HTTP请求的方法,可用方法包括GET、POST、HEAD、PUT、OPTIONS、TRACE、DELETE等。
路径:目标URL路径(URL中去掉服务器地址、端口及参数后剩余部分)
内容编码 :编码方式,默认为ISO-8859-1编码,这里配置为utf-8
同请求一起发送参数 :
在请求中发送的URL参数,用户可以将URL中所有参数设置在本表中,表中每行为一个参数(对应URL中的 name=value),注意参数传入中文时需要勾选“编码”。
2.3添加用户自定义变量
因为通常HTTP请求中的参数都是动态可变的,我们添加用户自定义变量用以HTTP请求参数化。
右键点击【线程组】->【添加】->【配置元件】->【用户定义的变量】
添加一个自定义变量,用来表示搜索关键字

修改上一步HTTP请求参数q的值,格式:${q}

2.4添加察看结果树
右键点击【线程组】->【添加】->【监听器】->【察看结果树】
至此,一个基本的测试计划就完成了,我们点击运行,就会看到此次的请求结果。

本文介绍了如何使用JMeter进行性能测试,从设置中文界面开始,逐步讲解定义测试实例、编写JMeter测试脚本,包括添加线程组、HTTP请求、用户自定义变量,并通过察看结果树查看请求响应。
286

被折叠的 条评论
为什么被折叠?



