一.性能测试
1.1性能测试是什么?
1.1.1广义定义
基于协议模拟用户发出请求,对服务器形成一定负载,来测试服务器的性能指标是否满足要求性能指标关注点: 时间性能,空间性能性能测试与页面无关
1.1.2狭义定义
指通过自动化的测试工具模拟多种正常,峰值以及异常负载条件来对系统的各项性能指标进行测试.
1.2.性能测试工具
二.jmeter简介
2.1我们为什么使用jmeter
开源,免费,基于Java编写,可集成到其他系统可拓展各个功能插件
支持接口测试,压力(负载和压力)测试等多种功能,支持录制回放,
入门简单相较于自己编写框架活其他开源工具,有较为完善的UI界面,便于接口调试
2.2.jmeter的作用
1.接口测试,面试说postman,因为方便好用
2.性能测试jmeter,也可以用postman(runner),但是没有性能指标
3.数据库测试
2.3.jmeter怎么用
Windows下Jmeter下载安装,登录 http://jmeter.apache.org/download_jmeter.cgi ,根据自己平台,下载对应文件
2.4.安装Java环境
安装jdk,配置环境变量(具体步骤不做介绍)
将下载的jmeter文件压缩,打开/bin/jmeter.bat
2.5.jmeter的目录结构
/bin 目录常用文件介绍:
examples:目录下包含Jmeter使用实例ApacheJMeter.jar:JMeter源码包jmeter.bat:windows下启动文件jmeter.sh:Linux下启动文件jmeter.log:Jmeter运行日志文件jmeter.properties:Jmeter配置文件jmeter-server.bat:windows下启动负载生成器服务文件jmeter-server:Linux下启动负载生成器文件/docs目录——Jmeter帮助文档/extras目录——提供了对Ant的支持文件,可也用于持续集成/lib目录——存放Jmeter依赖的jar包,同时安装插件也放于此目录/licenses目录——软件许可文件,不用管/printable_docs目录——Jmeter用户手册
三.使用jmeter测试快速入门
3.1.线程组是什么
进程: 一个正在执行的程序对应一个进程
线程: 一个进程有多个执行线程
线程组: 按照线程性质对线程分组。查看任务管理器(爱奇艺有多个)
三者关系: 一个进程有多个线程组,一个线程组有多个线程
进程: 一个正在执行的程序对应一个进程
线程: 一个进程有多个执行线程
线程组: 按照线程性质对线程分组。查看任务管理器(爱奇艺有多个)
三者关系: 一个进程有多个线程组,一个线程组有多个线程
----------------------------------------------------------------------
测试计划—线程组—线程组属性中的线程数
并发执行:多个线程同时执行,特点:执行结束的顺序与开始的顺序不一致
顺序执行:按照线程的启动顺序挨个执行
默认情况下,线程组中的线程是并发执行
每一个线程都要执行组内的http请求
设置线程组顺序执行:勾选测试计划中的(独立运行每个线程组)
线程组用来模拟用户的并发访问
3.1.1.创建线程组
3.1.2.线程组只要包含三个参数:
线程数、准备时长(Ramp-Up Period(in seconds))、循环次数。
3.1.3.线程数:
虚拟用户数。一个虚拟用户占用一个线程。设置多少虚拟用户数在这里也就是设置多少个线程数
3.1.4.准备时长(秒):
设置的虚拟用户需要多长时间全部启动,如果线程数为20,准备时长为10,那么需要10秒钟启动20个线程,也就是每秒钟启动2个线程。
3.1.5.循环次数:
每个线程发送请求的次数。如果线程数为20,循环次数为100,那么每个线程发送100次请求。总请求数为20*100=2000.如果勾选了“永远”,那么所有线程会一直发送请求,一直到选择停止运行脚本。
3.1.6.调度器
设置线程组启动的开始时间呵结束时间(配置调度器时,需要勾选循环次数为永远)
3.1.7.持续时间(秒)
测试持续时间,会覆盖结束时间
3.1.8.启动延迟(秒)
测试延迟启动时间,会覆盖结束时间
3.1.9.启动时间
测试启定时间,启动延迟会覆盖它。当启动时间已过,手动只需测试时当前时间也会覆盖它。
3.1.10.结束时间
测试结束时间,持续时间会覆盖它。