性能测试-jmeter

目录

Jmeter工作原理

Jmeter操作手册

 1.添加虚拟用户组

2.添加被测页面

3.添加结果监听器

4.添加图型结果

5.添加聚合报告

6.添加断言

引入参数文件&自定义变量

定义请求头

结果监听器,Text模式下中文显示Unicode码&中文断言失败

中文展示

打开运行日志

命令行模式

Jmeter展示TPS曲线图

添加关于服务器的CPU、内存等的测试查询

保存测试结果

cookies管理

写死cookies

调登录获取cookies

压测-只获取一次cookies

接口依赖

Json提取器Json Extractor

正则表达式提取器Regular Expression Extractor

边界提取器Boundary Extractor

性能指标

TPS&QPS

响应时间

吞吐量

错误率

Linux系统指标

性能问题&优化方案



Jmeter工作原理

JMeter通过线程组来驱动多个线程(类似LoadRunner中的虚拟用户) 运行测试脚本对被测试服务器发起负载,每一个负载机上都可以运行多个线程组,如图3-13中此测试计划有两个线程组。JMeter运行场景不仅可以在GUI方式中完成, 还可以使用命令行, 而且命令行运行的方式对于负载机的资源消耗会更小。
JMeter支持远程运行,下图是JMeter远程运行架构图。

https://pic2.zhimg.com/80/v2-9674d28035c270a0a7d8cbfab7fc80b5_720w.jpg​​


(1) 控制机:运用多台JMeter负载机进行性能测试时, 被选中作为管理机的那台机器即是控制机。JMeter控制机也可以参与脚本的运行, 同时它也担负着管理远程负载机指挥远程
负载机运行的任务,并且收集远程负载机的测试结果。
(2) 负载机:向被测试应用服务器发起负载的机器, 控制机同时也是一台负载机。JMeter负载机受控制机(JMeter负载机) 管理。与其他支持远程运行的测试工具一样, 负载机受控
制机管理首先要启动一个客户端程序(Agent:jmeter-server.bat),这样控制机才可以接管负
载机。控制机会把运行的脚本隐蔽地发送到远程负载机,但是如果运行的测试脚本有参数文
件及依赖的jar包时, 控制机并不能把它们发送到远程负载机, 这种情况就需要手动拷贝了,
当然在利用JMeter做性能测试自动化时可不能这样, 我们可以用工具来实现自动拷贝。
(3)远程运行逻辑:
远程负载机首先启动Agent程序, 待控制机连接;
控制机连接上远程负载机:

控制机发送指令(脚本及启动命令)启动线程;
负载机运行脚本,回传状态(包括测试结果);
控制机收集结果并显示。

Jmeter操作手册

 1.添加虚拟用户组

即添加线程组,Jmtert用线程组来驱动多个线程,用线程模拟虚拟用户,运行被测脚本对被测服务发起负载,每个负载机上可以运行多个线程组。

​​

​​

1)线程数:这里就是指虚拟用户数,默认的输入是“1”,则表明模拟一个虚拟用户访问被测系统,如果想模拟100个用户,则此处输入100。

2)Ramp-Up Period (in seconds): 虚拟用户增长时长。默认为1,虚拟用户从0递增到线程总数,所耗费的时长。比如这里输30,含义为:在30秒内,用户数从0增到100

3)循环次数:该处设置一个虚拟用户做多少次的测试。默认为1,意味着一个虚拟用户做完一遍事情之后,该虚拟用户停止运行。如果选中“永远”,则意味着测试运行起来之后就根本停不下来了,除非你把它强制咔嚓。

2.添加被测页面

​​

​​

3.添加结果监听器

​​

​​

​​

4.添加图型结果

​​

5.添加聚合报告

https://i-blog.csdnimg.cn/blog_migrate/eff9c92e6ced9d38829132800f9a1175.png​​

6.添加断言

​​

1、apply to:通常发出一个请求只触发一个请求,所以勾选“main sampie only”就可以;若发一个请求可以触发多个服务器请求,就有main sample 和sub-sample之分了
2、要测试的响应字段:
(1)一般的http响应,都勾选“响应文本”;
(2)url样本是对sample的url进行断言,如果请求没有重定向,就请求url,如果有重定向,就请求url和重定向url;
(3)响应代码:http响应代码,如101,200,302,404,501等。当我们要验证404,501等http响应代码时,需要勾选“ ignore status”。因为当http 响应代码为400,500时,jmeter默认这个请求时失败的;
(4)响应信息:响应代码对应得响应信息,例如“OK"
3、模式匹配:
(1)包括:返回结果包括你指定的内容,支持正则匹配
(2)匹配: 相当于 equals 。当返回值固定时,可以返回值做断言,效果和equals相同 ;
正则匹配 。 用正则表达式匹配返回结果,但必须全部匹配。 即正则表达式必须能匹配整个返回值,而不是返回值的一部分。
(3) SubString:与 “包括”差不多,都是指返回结果包括你指定的内容,但是subString不支持正则字符串
(4) 否:就相当于取反。 如果断言结果为true,勾选“否”后,最终断言结果为false。如果断言结果为false,勾选“否”后,则最终断言结果为 true
4、要测试的模式:输入结果期望值(空格要去掉)

引入参数文件&自定义变量

​​

​​

​​

定义请求头

​​

结果监听器,Text模式下中文显示Unicode码&中文断言失败

断言响应文本时,取的是结果监听器里text模式下的内容,所以如果监听器text模式下中文异常,那用中文断言也会失败,解决这个问题,其实就是要解决text模式下的编码格式问题。三步:1.修改配置文件,申请编辑格式为utf-8  2.新增BeanShell脚本文件 3.重启Jmeter

1.修改配置文件,申请编辑格式为utf-8

Jmeter安装目录bin/jmeter.properties

开启如下开关,并指定格式为UTF-8

sampleresult.default.encoding=UTF-8

2.新增BeanShell脚本文件

​​

​​

脚本内容如下:

String s=new String(prev.getResponseData(),"UTF-8");

        char aChar;

        int len= s.length();

       

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值