安装Jmeter的过程自行百度,这里不再赘述,但是记得修改jmeter安装路径bin文件夹下的jmeter.bat文件,找到以下文字:
if not defined HEAP (
rem See the unix startup file for the rationale of the following parameters,
rem including some tuning recommendations
set HEAP=-Xms1g –Xmx1g -XX:MaxMetaspaceSize=256m
)
将其修改为:set HEAP=-Xms1g –Xmx2g -XX:MaxMetaspaceSize=512m 或set HEAP=-Xms1024m –Xmx1024m -XX:MaxMetaspaceSize=512m 该修改目的是为了防止内存溢出,视情况而定。 修改后启动Jmeter,进行以下配置进行压力测试。
一、新建测试计划(Test Plan)
Jmeter启动后会显示Test Plan,也就是测试计划,可以根据自己的测试计划名进行修改,中文英文都可以,我这里命名为reportartist,如下图: ![在这里插入图片描述](https://img-blog.csdnimg.cn/a50cce47c1a14b72a8e9a807da7ee716.png?x-oss-process=image/watermark,type_d3F5LXplbmhlaQ,shadow_50,text_Q1NETiBA5Y-I5Y-I54ix5ZCD6IKJ,size_20,color_FFFFFF,t_70,g_se,x_16)
二、新增线程组(Threads Group)
- Number of Threads(users):线程数量,即为用户数或请求数量
- Ramp-up period(seconds):启动时间/准备时长,以秒为单位
- Loop Count:循环次数
右击测试计划(reportartist)——Add——Threads(Users)——Threads Group,命名为API Test, ![一秒钟发送500个请求](https://img-blog.csdnimg.cn/3bdc42fa17a24d36b30376fcb8c93aab.png?x-oss-process=image/watermark,type_d3F5LXplbmhlaQ,shadow_50,text_Q1NETiBA5Y-I5Y-I54ix5ZCD6IKJ,size_20,color_FFFFFF,t_70,g_se,x_16)
三、添加Http请求(Http Request)
右击线程组(API Test)——Add——Sampler——Http Request,命名为Login API ![在这里插入图片描述](https://img-blog.csdnimg.cn/25af1be49b6641128bffd60fef54c5ed.png?x-oss-process=image/watermark,type_d3F5LXplbmhlaQ,shadow_50,text_Q1NETiBA5Y-I5Y-I54ix5ZCD6IKJ,size_20,color_FFFFFF,t_70,g_se,x_16)
四、添加Http信息头管理器(HTTP Header Manager)
由于我的是post请求,请求头是json格式,所以需要添加Http信息头管理器(HTTP Header Manager)并设置以下参数: ![在这里插入图片描述](https://img-blog.csdnimg.cn/9e26c13805c744b5978cd233d61bb680.png?x-oss-process=image/watermark,type_d3F5LXplbmhlaQ,shadow_50,text_Q1NETiBA5Y-I5Y-I54ix5ZCD6IKJ,size_20,color_FFFFFF,t_70,g_se,x_16)
五、添加CSV数据文件设置(CSV Data Set Config)
该元件是从文件中读取变量值,用于变量的参数化,可设置多种读取方式。 我这里就是username,password两个参数需要批量传参,所以新建一个文本文档: ![在这里插入图片描述](https://img-blog.csdnimg.cn/502807b982474db88dcc4d812d728e6d.png) 这里的逗号是英文格式 ![在这里插入图片描述](https://img-blog.csdnimg.cn/af15c81ab3a04e7183eda2821281dd8e.png?x-oss-process=image/watermark,type_d3F5LXplbmhlaQ,shadow_50,text_Q1NETiBA5Y-I5Y-I54ix5ZCD6IKJ,size_10,color_FFFFFF,t_70,g_se,x_16) 将文本文档格式改成csv: ![在这里插入图片描述](https://img-blog.csdnimg.cn/22cac635301442468dba7cf90214c23a.png) ![在这里插入图片描述](https://img-blog.csdnimg.cn/eff86cf9c6ee455aa465680244f3315e.png) ![在这里插入图片描述](https://img-blog.csdnimg.cn/c180ea35026341f682598898185f75d6.png) 上传刚才创建并编辑过的文档,填写参数,其他项根据我的截图更改 ![C:/Users/wangyouyou/Desktop/用户.csv](https://img-blog.csdnimg.cn/de89959983f54fdfbdbc0a42e45326f5.png?x-oss-process=image/watermark,type_d3F5LXplbmhlaQ,shadow_50,text_Q1NETiBA5Y-I5Y-I54ix5ZCD6IKJ,size_20,color_FFFFFF,t_70,g_se,x_16)
六、添加响应断言(Response Assertion)
我测试时只需要判断返回状态码是否为200即可,只要不是200就提示test error,设置如下: ![在这里插入图片描述](https://img-blog.csdnimg.cn/82341c088029455a974cd51197151559.png?x-oss-process=image/watermark,type_d3F5LXplbmhlaQ,shadow_50,text_Q1NETiBA5Y-I5Y-I54ix5ZCD6IKJ,size_20,color_FFFFFF,t_70,g_se,x_16)
七、添加响应断言结果(Assertion Results)
如果500个请求中有状态码返回不为200的即在响应断言结果中显示test error,为200则显示接口请求名称 ![在这里插入图片描述](https://img-blog.csdnimg.cn/b0b43c072e434966b04bc4aafcfa8400.png?x-oss-process=image/watermark,type_d3F5LXplbmhlaQ,shadow_50,text_Q1NETiBA5Y-I5Y-I54ix5ZCD6IKJ,size_20,color_FFFFFF,t_70,g_se,x_16)
八、添加察看结果树(View Results Tree)
添加察看结果树点击执行就能查看请求状态和返回结果状态(绿色则代表返回正常): ![在这里插入图片描述](https://img-blog.csdnimg.cn/7a0b883a156f480f866cb92ffd95ad2b.png?x-oss-process=image/watermark,type_d3F5LXplbmhlaQ,shadow_50,text_Q1NETiBA5Y-I5Y-I54ix5ZCD6IKJ,size_20,color_FFFFFF,t_70,g_se,x_16) 返回结果有中文的可能显示乱码,需要更改Jmeter的配置文件,找到sampleresult.default.encoding处去掉注释符#并将默认ISO-8859-1更改为utf-8: ![在这里插入图片描述](https://img-blog.csdnimg.cn/e5fd72d19b334ff6be017fdbd284e0c2.png?x-oss-process=image/watermark,type_d3F5LXplbmhlaQ,shadow_50,text_Q1NETiBA5Y-I5Y-I54ix5ZCD6IKJ,size_20,color_FFFFFF,t_70,g_se,x_16) ![在这里插入图片描述](https://img-blog.csdnimg.cn/4990bb818b734aa1b6bd069ed51da223.png?x-oss-process=image/watermark,type_d3F5LXplbmhlaQ,shadow_50,text_Q1NETiBA5Y-I5Y-I54ix5ZCD6IKJ,size_20,color_FFFFFF,t_70,g_se,x_16)
九、利用命令执行压力测试
由于Jmeter启动时,会显示两个窗口,一个是cmd窗口,一个是GUI窗口,cmd窗口如下提示: ![在这里插入图片描述](https://img-blog.csdnimg.cn/c7168d30dded4642b13002d40841942e.png?x-oss-process=image/watermark,type_d3F5LXplbmhlaQ,shadow_50,text_Q1NETiBA5Y-I5Y-I54ix5ZCD6IKJ,size_20,color_FFFFFF,t_70,g_se,x_16) 中文翻译就是: ![在这里插入图片描述](https://img-blog.csdnimg.cn/b4b0fd44e79c4e51984c33a6e746b5eb.png) 所以进入Jmeter安装路径的bin目录下输入cmd执行以下格式命令:
jmeter -n -t <测试计划的文件路径> -l <测试结果文件的保存路径> -e -o <测试结果的web报告保存路径>
在任意文件夹新建result.txt用于存放请求的结果,新建一个空目录webreport用于存放压力测试的报告 ![在这里插入图片描述](https://img-blog.csdnimg.cn/de5b61d674614ff5a8482070c85ef06a.png) ![在这里插入图片描述](https://img-blog.csdnimg.cn/e8367fac89924dd88f18a20e0b961177.png) 出现…end of run代表成功生成报告 ![在这里插入图片描述](https://img-blog.csdnimg.cn/bca2e147323e4d208fbc8e18ccad0ebe.png?x-oss-process=image/watermark,type_d3F5LXplbmhlaQ,shadow_50,text_Q1NETiBA5Y-I5Y-I54ix5ZCD6IKJ,size_20,color_FFFFFF,t_70,g_se,x_16) 点击webreport文件夹下的index.html即可查看压力测试报告 ![在这里插入图片描述](https://img-blog.csdnimg.cn/1fb49ea3efe445f692da397eb2db5eef.png?x-oss-process=image/watermark,type_d3F5LXplbmhlaQ,shadow_50,text_Q1NETiBA5Y-I5Y-I54ix5ZCD6IKJ,size_20,color_FFFFFF,t_70,g_se,x_16) 注意:每次执行压力测试的命令时都要保持result.txt文件和webreport文件夹为空
|