1.性能测试
1.1.性能测试是什么
基于协议模拟用户发出请求,对服务器形成一定负载,来测试服务器的性能指标是否满足需求,性能指标关注点:时间性能,空间性能
性能测试定义,指通过测试工具模拟多种正常,峰值以及异常负载条件来对系统的各项性能指标进行测试。
1.2性能测试工具
2.Jmeter简介
2.1我们为什么使用Jmeter
开源,免费,基于java编写,可集成到其他系统可拓展各个功能插件
支持接口测试,压力 测试等多种功能,支持录制回放,
入门简单相较于自己编写框架话其他开源工具,有效为完善的UI界面,便于接口调试
多平台支持,可在Linux,windows,mac上运行,支持多协议
2.2Jmeter的作用
接口测试 postman/jmeter/soapui
性能测试 jmeter/loadrunner
数据库测试jmeter/loadrunner
3.下载和安装配置启动
3.1:jmeter的下载
3.2:JAVA环境变量的配置
3.3启动
方式1:在命令行中输入jmeter
方式2:bin目录下执行jmeter.bat(window)或者jmeter.sh(linux)
4:Jmeter的目录结构
/bin目录
examples,目录下包含Jmeter使用实例
ApacheJmeter.jar;JMeter源码包
jmeter.bat:windows下启动文件
jmeter.sh;Linux下启动文件
jmeter.properties,Jmeter配置文件
jmeter--server.bat;windows下启动负载生成器服务文件
jmeter--server;Linux下启动负载生成器文件
/docs目录--Jmeter帮助文档
/extras目录--提供了Ant的支持文件,可也用于持续集成
/lib目录--存放Jmeter依赖的jar包,同时安装插件也放于此目录
/licenses目录--软件许可证,不用管
/printable_docs目录--Jmeter用户注册
5.为什么坐性能测试
想想一下双11购物
想想一下现在123.6抢票
6.简单的模拟性能测试
练习:模拟多用户访问百度网址
6.1线程组
进程: 一个正在执行的程序对应一个进程
线程: 一个进程有多个执行线程
线程组: 按照线程性质对线程分组
三者关系: 一个进程有多个线程组,一个线程组有多个线程
6.2:sampler(采样器)
作用:向服务器发送请求,记录响应信息,记录响应时间最小单元
一个HTTP请求有着许多的配置参数,下面将详细介绍:
名称:本属性用于标识一个取样器,建议使用一个有意义的名称。
注释:对测试没有任何作用,仅用户可读的注释信息。
服务器名称或IP:HTTP请求发送的目标服务器名称或IP地址。
端口号:目标服务器的端口号。
发送HTTP请求的方法,可用方法包括getpostputoptionstracedelete等
6.3监听器
作用:监听器可以动态的监控Jmeter测试执行的过程,实时查看测试结果
lable:对应每一个http请求,显示的是http请求的Name,如百度http请求name为baidu |
---|
#Samples:表示这一次的测试中一共发出了多少请求,如上图所示,sougou和baidu的http请求每个都发出30个请求 |
Average:平均响应时间,指的是所有的请求的平均响应时间,如上图的30个请求的总的响应时间除以30得出的平均响应时间,默认的情况下是单个请求的平均响应时间,但当使用了“事务控制器”时,则以事物为单位显示平均响应时间 |
Median:中位数,也就是50%用户的响应时间 |
90%Line:90%用户的响应时间 |
Min:最小响应时间 |
Max:最大的响应时间 |
Error%:本次测试中出现错误的请求的数量/请求的总数,如上图所示,本次的测试中,sougou的http请求66.6%的请求出错,而baidu的请求则没有出错的请求 |
Throughput:吞吐量,默认情况下表示每秒完成的请求数,如上图所示,每秒完成的请求数分别为6.6个每秒,6.2个每秒 |
Recived KB/Sec:每秒从服务器端接收到的数据量,以kb为计算的单位 |