Jmeter性能测试理论与实战

一、性能测试理论知识

1、性能测试的概念

性能测试是通过自动化的测试工具模拟多种正常、峰值以及异常负载条件来对系统的各项性能指标进行测试。

2、性能测试的类型

基准测试:也是单用户测试,测试环境确定以后,对业务模型中的重要业务做单独的测试,获取单用户运行时的各项性能指标,为多用户并发测试和综合场景测试等性能分析提供参考依据。

负载测试:对系统不断增加压力或增加一定压力下的持续时间,直到某项或者多项指标到达临界值(此时临界值仍满足我们的要求性能值)。

稳定性测试:给系统加载一定业务压力的情况下,使系统运行一段时间,检测是否稳定。

压力测试:在强负载下的测试,查看系统在峰值情况下是否功能隐患,系统是否具有良好的容错能力和可恢复能力。

并发测试:并发测试(绝对并发),是指在极短的时间内,发送多个请求,来验证服务器对并发的处理能力。

3、性能测试的指标

响应时间:指用户从客户端发起一个请求开始,到客户端接收到从服务器返回的结果,整个过程所耗费的时间。

并发(用户)数:某一时刻同时向服务器发送请求的用户数。

吞吐量:指的是单位时间内处理的客户端请求数量,直接体现软件系统的性能承载能力。

单位:每秒事务数(TPS)、每秒查询数(QPS)

补充:事务,即业务,一个事务可以对应一个请求/多个请求。一个事务对应一个请求时:TPS=QPS,一个事务对应n个请求时:QPS=n*TPS

点击数:指客户端向服务器发送请求时,所有页面资源元素(如:图片、链接、框架css、js等)的请求总数量。

注意:

-只有web项目才有此指标

-点击数不是页面上的一次点击

错误率:指系统在负载情况下,失败业务的概率。错误率=(失败业务数/业务总数)*100%

注意:

-大多系统都会要求错误率无限接近于0

-错误率是一个性能指标,不是功能测试里的随机bug

资源利用率:是指系统各种资源的使用情况,一般用“资源的使用量/总的资源可用量*100%”形成资源利用率的数据。

二、Jmeter性能测试实战(初步)

下载安装完Jmeter后可以切换中文:

Jmeter性能测试理论与实战_第1张图片

步骤:

1、添加线程组

鼠标右键添加线程组:

Jmeter性能测试理论与实战_第2张图片

填写要用到的参数:

Jmeter性能测试理论与实战_第3张图片

线程数:Jmeter中用线程数来模拟用户数,有多少个线程数在这里就表示有多少个用户数。

Ramp-up时间(秒):表示要在多少时间内启动指定数量的线程数。

循环次数:每个线程发送请求的次数;如果勾选了“永远”,表示所有线程会一直发送请求,直到停止运行脚本。

调度器:压测的时候无法控制执行的时间,需要用到调度器设置线程组启动的开始时间和结束时间(配置调度器时需要勾选循环次数为“永远”)

2、添加HTTP请求

右键线程组->添加->取样器->HTTP请求

Jmeter性能测试理论与实战_第4张图片

根据接口文档填写:

Jmeter性能测试理论与实战_第5张图片
Jmeter性能测试理论与实战_第6张图片

3、添加查看结果树

右键HTTP请求->添加->监听器->察看结果树

Jmeter性能测试理论与实战_第7张图片

4、添加断言

右键HTTP请求->添加->断言->响应断言

Jmeter性能测试理论与实战_第8张图片

举例:响应断言校验返回的文本中是否包含搜索词,添加"name":"北京"(这是根据预期返回结果的响应数据来填写)到测试模式中:

Jmeter性能测试理论与实战_第9张图片

5、添加断言结果

右键HTTP请求->添加->监听器->断言结果

Jmeter性能测试理论与实战_第10张图片

这时再运行一次就可以看到断言结果啦

6、添加聚合报告

右键HTTP请求->添加->监听器->聚合报告

Jmeter性能测试理论与实战_第11张图片

查看聚合报告:

Jmeter性能测试理论与实战_第12张图片

聚合报告参数详解:

Label:每个JMeter的element的Name属性,例如HTTP Request的Name;

样本(Samples):发出请求数量;例如模拟20个用户,循环100次,所以显示了2000;

平均值(Average):默认情况下是单个Request的平均响应时间,当使用了Transaction Controller(事务控制器) 时,也可以用Transaction的时间,来显示平均响应时间 ,单位是毫秒。

中位数(Median):50%用户的响应时间小于该值;

90%百分位(90%Line):90%用户的响应时间小于该值;

95%百分位(95%Line):95%用户的响应时间小于该值;

99%百分位(99%Line):99%用户的响应时间小于该值;

最小值(Min):最小响应时间;

最大值(Max):最大响应时间;

异常%(Error%):错误率=错误请求的数量/请求的总数;

吞吐量(Throughput):默认情况下表示每秒完成的请求数(Request per Second);

接收KB/sec(Received KB/sec):每秒从服务器端接收到的数据量;

发送KB/sec(Sent KB/sec):每秒发送到服务器端的数据量。

你可能感兴趣的:(jmeter,测试工具)