软件测试

性能测试

1.1.性能测试是什么

基于协议模拟用户发出请求,对服务器形成一定负载,来测试服务器的性能指标是否

满足要求

性能指标关注点:时间性能、空间性能

性能测试与页面无关

性能测试定义:指通过自动化的测试工具模拟多种正常、峰值以及异常负载条件来对

系统的各项性能指标进行测试。


性能测试类型

1.基准测试:在给系统施加较低压力时,查看系统的运行状况并记录相关数做为基

础参考

2.负载测试:是指对系统不断地增加压力或增加一定压力下的持续时间,直到系统

的某项或多项性能指标达到安全临界值,例如某种资源已经达到饱和状态等。

3.压力测试:压力测试是评估系统处于或超过预期负载时系统的运行情况,关注点

在于系统在峰值负载或超出最大载荷情况下的处理能力。

4.稳定性测试(可靠性测试):在给系统加载一定业务压力的情况下,使系统运行

一段时间,以此检测系统是否稳定。24X3小时

5.并发测试:测试多个用户同时访问同一个应用、同一个模块或者数据记录时是否

存在死锁或者其他性能问题,

性能测试工具


Jmeter简介

Jmeter的基本概念

ApacheJMeter是Apache组织开发的基于Java的压力测试工具。

2.2.我们为什么使用Jmeter

开源,免费,基于Java编写,可集成到其他系统可拓展各个功能插件

支持接口测试,压力(负载和压力)测试等多种功能,支持录制回放,

入门简单相较于自己编写框架活其他开源工具,有较为完善的UI界面,便于接口调试

多平台支持,可在Linux,Windows,Mac上运行

支持多协议

2.3.Jmeter的作用

1.接口测试

2.性能测试

3.压力测试

4.Web自动化测试

5.数据库测试

6.JAVA程序测试

2.4.Jmeter怎么用

Windows下Jmeter下载安装登录http://jmeter.apache.org/download_jmeter.cgi,根据自己平台,下载对应文件



安装JAVA环境

安装JDK,配置环境变量(具体步骤不做介绍)

将下载Jmeter文件解压,打开/bin/jmeter.bat



/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测试快速入门

线程组是什么

进程:一个正在执行的程序对应一个进程

线程:一个进程有多个执行线程

线程组:按照线程性质对线程分组

三者关系:一个进程有多个线程组,一个线程组有多个线程

测试计划—线程组—线程组属性中的线程数

并发执行:多个线程同时执行,特点:执行结束的顺序与开始的顺序不一致

顺序执行:按照线程的启动顺序挨个执行

默认情况下,线程组中的线程是并发执行

每一个线程都要执行组内的http请求

设置线程组顺序执行:勾选测试计划中的(独立运行每个线程组)

线程组用来模拟用户的并发访问

创建线程组

线程组主要包含三个参数:线程数、准备时长(Ramp-UpPeriod(inseconds))、

循环次数。

1.1.3.线程数:虚拟用户数。一个虚拟用户占用一个进程或线程。设置多少虚拟

用户数在这里也就是设置多少个线程数。

1.1.4.准备时长(秒):设置的虚拟用户数需要多长时间全部启动。如果线程数

为20,准备时长为10,那么需要10秒钟启动20个线程。也就是每秒钟启动

2个线程。

1.1.5.循环次数:每个线程发送请求的次数。如果线程数为20,循环次数为100,

那么每个线程发送100次请求。总请求数为20*100=2000。如果勾选了“永远”,

那么所有线程会一直发送请求,一到选择停止运行脚本。

1.1.6..调度器:设置线程组启动的开始时间和结束时间(配置调度器时,需要勾选

循环次数为永远)

1.1.7.持续时间(秒):测试持续时间,会覆盖结束时间

1.1.8.启动延迟(秒):测试延迟启动时间,会覆盖启动时间

1.1.9.启动时间:测试启动时间,启动延迟会覆盖它。当启动时间已过,手动只需测

试时当前时间也会覆盖它。

1.1.10.结束时间:测试结束时间,持续时间会覆盖它。

一个HTTP请求有着许多的配置参数,下面将详细介绍:

名称:本属性用于标识一个取样器,建议使用一个有意义的名称。

注释:对于测试没有任何作用,仅用户记录用户可读的注释信息。

服务器名称或IP:HTTP请求发送的目标服务器名称或IP地址。

端口号:目标服务器的端口号。

方法:发送HTTP请求的方法,可用方法包括GET、POST、HEAD、PUT、OPTIONS、TRACE、

DELETE等。

Contentencoding:内容的编码方式,默认值为iso8859

路径:目标URL路径(不包括服务器地址和端口)

测试计划

1.测试计划就是一个完整的场景

2.“独立运行每个线程组”:勾选以后所有的线程组都是顺序执行的了。一般不勾

选,让所有的线程组并发启动。

3.“函数测试模式”:勾选后会有详细的请求记录,消耗资源,影响客户端性能。

一般不勾选。

4.用户定义的变量:全局变量,测试计划上可以添加用户定义的变量。一般添加一

些系统常用的配置。如果测试过程中想切换环境,切换配置,一般不建议在测试计划上添加变量


(1)、threadgroup(线程组)

这个就是我们通常添加运行的线程。通俗的讲一个线程组,可以看做一个虚拟用

户组,线程组中的每个线程都可以理解为一个虚拟用户。

(2)、setupthreadgroup

一种特殊类型的ThreadGroup的,可用于执行预测试操作。这些线程的行为完全

像一个正常的线程组元件。不同的是,这些类型的线程执行测试前进行定期线程组的

执行;类似LoadRunner的init,测试开始时进行初始化的工作。

(3)、teardownthreadgroup

一种特殊类型的ThreadGroup的,可用于执行测试后动作。这些线程的行为完全

像一个正常的线程组元件。不同的是,这些类型的线程执行测试结束后执行定期的线

程组;类似LoadRunnner的end,测试结束时进行回收工作。

你可能感兴趣的:(软件测试)