首页 > 技术文章 > 性能测试01

zhangyangcheng 2020-04-20 23:21 原文

本篇博客

1 性能测试基础
  • 1.1 什么是性能测试--本质
  • 1.2 性能测试分类
  • 1.3 性能测试指标
2 性能测试流程
  • 2.1 需求分析
  • 2.2 测试计划
  • 2.3 测试方案
  • 2.4 用例设计
  • 2.5 测试执行
  • 2.6 定位分析问题
3 工具介绍(Loadrunner)
  • 3.1 Loadrunner安装
  • 3.2 组成:三大组件
4 VuGen使用介绍
  • 4.1 脚本录制流程
  • 4.2 回放结果查看

http://192.168.197.1:1080/WebTours/

1、用户名:joe,密码:young

2、用户名:jojo,密码:bean

1 性能测试基础

1.1 什么是性能测试--本质

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

关注点:时间性能,空间性能

与界面无关

 

1.2 性能测试分类

性能测试(狭义)
  性能测试方法是通过模拟生产运行的业务压力量和使用场景组合,测试系统的性能是否满足生产性能要求。通俗地说,这种方法就是要在特定的运行条件下验证系统的能力状态。
特点:
1、这种方法的主要目的是验证系统是否有系统宣称具有的能力。
2、这种方法要事先了解被测试系统经典场景,并具有确定的性能目标。
3、这种方法要求在已经确定的环境下运行。
也就是说,这种方法是对系统性能已经有了解的前提,并对需求有明确的目标,并在已经确定的环境下进行的。

 

负载测试
通过在被测系统上不断加压,直到性能指标达到极限,例如“响应时间”超过预定指标或都某种资源已经达到饱和状态。
特点:
1、这种性能测试方法的主要目的是找到系统处理能力的极限。
2、这种性能测试方法需要在给定的测试环境下进行,通常也需要考虑被测试系统的业务压力量和典型场景、使得测试结果具有业务上的意义。
3、这种性能测试方法一般用来了解系统的性能容量,或是配合性能调优来使用。
也就是说,这种方法是对一个系统持续不段的加压,看你在什么时候已经超出“我的要求”或系统崩溃。

 

压力测试(强度测试)
压力测试方法测试系统在一定饱和状态下,例如cpu、内存在饱和使用情况下,系统能够处理的会话能力,以及系统是否会出现错误
特点:
1、这种性能测试方法的主要目的是检查系统处于压力性能下时,应用的表现。
2、这种性能测试一般通过模拟负载等方法,使得系统的资源使用达到较高的水平。
3、这种性能测试方法一般用于测试系统的稳定性。
也就是说,这种测试是让系统处在很大强度的压力之下,看系统是否稳定,哪里会出问题。

 

并发测试
并发测试方法通过模拟用户并发访问,测试多用户并发访问同一个应用、同一个模块或者数据记录时是否存在死锁或其者他性能问题。
特点:
1、这种性能测试方法的主要目的是发现系统中可能隐藏的并发访问时的问题。
2、这种性能测试方法主要关注系统可能存在的并发问题,例如系统中的内存泄漏、线程锁和资源争用方面的问题。
3、这种性能测试方法可以在开发的各个阶段使用需要相关的测试工具的配合和支持。
也就是说,这种测试关注点是多个用户同时(并发)对一个模块或操作进行加压。

 

配置测试

配置测试方法通过对被测系统的软\硬件环境的调整,了解各种不同对系统的性能影响的程度,从而找到系统各项资源的最优分配原则。
特点:
1、这种性能测试方法的主要目的是了解各种不同因素对系统性能影响的程度,从而判断出最值得进行的调优操作。
2、这种性能测试方法一般在对系统性能状况有初步了解后进行。
3、这种性能测试方法一般用于性能调优和规划能力。
也就是说,这种测试关注点是“微调”,通过对软硬件的不段调整,找出这他们的最佳状态,使系统达到一个最强的状态。

 

可靠性测试
在给系统加载一定业务压力的情况下,使系统运行一段时间,以此检测系统是否稳定。
特点:
1、这种性能测试方法的主要目的是验证是否支持长期稳定的运行。
2、这种性能测试方法需要在压力下持续一段时间的运行。(2~3天)
3、测试过程中需要关注系统的运行状况。

也就是说,这种测试的关注点是“稳定”,不需要给系统太大的压力,只要系统能够长期处于一个稳定的状态。

 

1.3 性能测试指标

1)响应时间

公式
网络传输时间+服务器处理时间
N1+N2+N3+N4+N5+N6+WT+AT+DT
不包含前端页面渲染时间,到浏览器收到请求后响应数据截止

原则
2-5-8
优秀-良好--较差

 

2)tps

每秒处理的事务数
transaction per second

 

3)资源利用率

在一定的负载情况下,服务器资源占用情况
CPU利用率:不允许超过70-80%
Mem利用率:80%以下
带宽利用率:
100Mbps=12.5MB/s
1Byte=8bit
如果资源利用率太小,造成资源浪费

 

4)用户数:并发用户数

在同一时间向服务器发送请求的用户数量
与每秒的并发请求数不同,一定要确认需求的目的是并发用户数还是并发请求数

 

1.4 通过理发店模型分析程序运行原理、过程、产生性能问题的原因、性能指标

 

1.总结理发店就是服务器中的程序

顾客:从客户端发来的请求

由多个浏览器同时发送到服务器的任务:并发用户

服务程序处理一个浏览器请求的时间:平均事务响应时间,特点:随着并发用户的增加而增加

单位时间内服务程序完成客户端请求的数量-à单位事务数,随着并发用户的增加而增大,当并发用户数量达到一定量后不再增加

2.性能优化

1).增加理发师的数量

2).减少理发时间

3).扩展设备

3.通过理发店模型分析程序运行原理、过程、产生性能问题的原因、性能指标

2 性能测试流程 

2.1 需求分析

1)测试对象

常用的
核心的,重要的
数据量、并发量

例子:登录,注册,搜索,添加购物车,下单、支付

2)确定性能指标

吞吐量、TPS:服务器每秒处理的请求数量
响应时间:从浏览器发出请求,服务器处理,到收到响应所需要的处理时间
用户数:并发用户数
资源利用率:

  • Cpu
  • Mem
  • 磁盘io
  • network

 

例子:
要求每天完成交易额2亿
客单价:200-500     以300计算
采用28定律换算得出,以24小时计算

求每秒钟最大交易数?

要求:
1.每天8小时系统支持500万用户访问

方案:
1.500万在8小时内完成,500万/8*3600,一般不采用,除非系统负载比较平稳/平均
2.先分析流量分布,再根据2/8定律估算每秒请求
500W
500w*0.8=400W
8*0.2=1.6h
计算得出服务器需要支持694次/s
每小时的平均负载*4

 

3)测试场景

单一场景:

  • 登录
  • 注册
  • 搜索
  • 添加购物车
  • 下单、支付

混合场景:

  • 用户使用场景
  • 系统使用场景

 

2.2 测试计划

测试计划:

  • 测试目标
  • 测试人员组织
  • 压测进度安排
  • 压力机:配置,要求,数量
  • 风险

 

2.3 测试方案

测试方案
测试工具:loadrunner,jmeter
测试环境:

  • 数据库
  • 服务器
  • 架构设计
  • 有条件的情况下尽量和生产环境一致

测试策略:单一场景,混合场景
监控工具
Linux:nmon,rpc,jvisualVm,Spotlight
windows:Spotlight,perfmon.exe

 

2.4 用例设计

用例设计

测试脚本:基于脚本的用例
场景设计:基于场景的用例

 

2.5 测试执行

测试执行:

  • 脚本编写
  • 场景监控设计
  • 运行场景
  • 监控场景
  • 测试报告

 

2.6 定位分析问题

定位分析问题
1)后端

  • 代码
  • 软件:数据库,应用服务器
  • 硬件

2)前端
3)网络

3 Loadrunner

3.1 Loadrunner安装

1)OS

xp/win7/windows2003/windows2008
windows:

  • 家庭版--无管理员权限
  • 专业版
  • 旗舰版

支持浏览器:IE ,8/9


2)安装:

  • 直接解压
  • 虚拟光驱
  • 可以单独安装压力机

1 下载安装包,网络上很多安装包,可以直接下载,一般大小几G

2 运行安装包或者挂载到电脑的安装软件,运行“setup.exe” 

 

 3 安装的时候会提示重启电脑,可以选择是或者否,这里我们选择否继续进行安装,(有时候会有提示缺少“Microsoft Visual C++ 2005 SP1运行组件”,下载这个组件。这里安装“vcredist_x86.exe”安装好之后继续进行安装lr)

4 安装程序会自动检查所需组件是否都已安装,确定都安装后弹出如下页面

 5 安装完成后,系统会自动打开“Loadrunner License Information”窗口,并提示你的“license”只有十天的使用期。这个时候就需要个人信息继续运行

 

3)破解:

  • 见破解文档
  • 每一步都得是右击使用管理员权限运行

1  下载破解文件,此处我们使用已经下载好的文件“lm70.dll”和“mlr5lprg.dll”。

2  将“lm70.dll”,“mlr5lprg.dll”这两个文件复制并粘贴到LR11安装目录下的bin文件夹下,路径是:D:\loadRunne软件\新建文件夹\bin   
注意:复制时注意要先将loadrunner关闭,否则会出现复制出错的提示。复制时选择进行替换。
 
3 之后就可以打开lr进行操作,注意尽量用管理员打开
4 Configuration----LoadRunner License
 
5 之后点击“New License”
注意:如果有这里如果已经有试用的“license”了,下面我们将试用的“license”删除。如果为空就不用删除。

6   输入globa-100的注册码:

global-100: AEAMAUIK-YAFEKEKJJKEEA-BCJGI
web-10000: AEABEXFR-YTIEKEKJJMFKEKEKWBRAUNQJU-KBYGB

7 继续点击“New License”,输入web-10000的注册码:AEABEXFR-YTIEKEKJJMFKEKEKWBRAUNQJU-KBYGB   如果都不能用可以进行搜索破解码进行获取lr破解码 

8 到此,安装,破解工作就全部完成了。

 

4)问题解决方案:

  • 杀毒软件是否关闭
  • 防火墙是否关闭
  • IE的Internet选项是否关闭开启第三方扩展
  • IE可以退到8,网上找退到8的方法。

 

3.2 组成

1 ) 三大组件

VuGen,Controller,Analysis

工作原理

2)  作用

Virtual User Generator —— 录制回放、开发维护脚本
LoadRunner Controller —— 用于创建、运行和监控场景
LoadRunner Analysis —— 用于生成测试报告,分析性能测试结果

4 VuGen使用介绍

4.1 脚本录制流程

1)新建脚本选择网络协议

  • 如何选择协议:1. 自带协议探测工具    2.借助网络扫描工具  3. 询问开发
  • 单协议脚本
  • 多协议脚本
  • 最近采用的

 

2)录制前准备

选择被测系统的类型:浏览器,非浏览器

录制时采用的浏览器:IE   (如果是64位的,一定要选择program files(x86)下面的ie浏览器)

被测服务器地址

其他选项默认

 

3)设置录制选项

options

General----Recording

HTML-based script

Based-HTML(默认):将与打开一个网页(HTML)有关的的所有请求“封装”为一个步骤

web_link、web_submit_form(示范)

依赖上下文关系

编写规则:web_link("访问首页","Text=LoadRunner",LAST);

web_url、web_submit_data(示范)

不依赖上下文关系

编写规则:web_url("访问首页","url=http://www.baidu.com",LAST);


URL-based script
将每一个不同url的请求封装为步骤


HTTP Properties----Advances
Support Charset
UTF-8
UTF-8解决乱码问题

4)插入命令

5)开始录制

录制过程中的工具栏使用

停止、暂停、插入新的action、开始事务,结束事务、插入集合点、插入注释

6)停止录制:点击停止图标

7)脚本查看模式:

Script View:可以查看全部录制的脚本代码

Tree View:可以查看每个URL获取来的页面

 8)脚本的组成

init
action
end

 

例子:访问webtours,录制脚本。

LoadRunner自带的测试样品,旅行社机票预订系统HP Web Tours以下简称为Web Tours。

一:打开服务器

首先开启服务:开始--所有程序---HP LoadRunner---Samples---Web----Start Web Server

浏览器访问:http://192.168.197.1:1080/WebTours/

用户名:jojo,密码:bean

二:录制脚本

1 首先打开loadrunner11软件。有两种打开方式。

第一种:开始---所有程序---LoadRunner

第二种:在桌面找到,以管理员身份运行 。(在第一种基础上,发送到桌面快捷方式)

2 新建脚本

3 会打开loadrunner11的Virtual User Generator。点击创建按钮

4 在弹出框中选择Web(HTTP/HTML)协议,我们这里录制的是网站中的压力测试,所以选择HTTP/HTML协议,如下图所示

5 弹出start Recording窗口,选择需要测试的web地址,URL Address:http://192.168.197.1:1080/WebTours/     点击ok

下面三个参数,一般默认就好,不需要修改。

Application type:选择对应的录制类型(Internet Applications)

Program, to record:选择浏览器(这里我们选择Firefox24.0),选择浏览器安装地址

Working directory:是loadrunner的工作目录

注意:如遇乱码问题,点击选择Options—HTTP属性的高级—支持字符集—UTF-8

 

6 填写好以后,点击确定,工具会自动调用浏览器,并且进入录入状态,你可以模拟网站登录的操作。

 

 输入用户名:jojo,密码:bean    点击Login

 7 模拟完了以后,记得点击停止脚本录制的按钮,如下图所示

 8 需要等一段时间,这里脚本就录制完成了。

三:保存脚本文件

 9 保存脚本 File ---save as 。

选择day1路径下,新建文件夹:perform2 ,点进perfrom2里,File name:webtours2

 计算机里就有文件夹:webtours2了。

 

四:打开Control

10 有两种打开Control的方式。

第一种:Tools-----Create Controller Scenario

第二种:开始---所有程序---HP LoadRunner----Applications----Controller

11 Number of Vusers:选择用户数。其他都是默认。

LoadGenerator:localhost   压力机为本机。

右下键:出现小马头

五:保存controller

12   保存controller

保存在:G:\2020软件测试代码\4_自动化测试\day1\scenario   在day1 目录下新建文件夹:scenario

文件名:Scenario3.lrs    更改下,默认保存都是Scenario1.lrs

六:保存Controller运行结果

注意:有的时候这一步是自动弹跳出来的。

Results---Results Setting

Results Name:res2

Directory:G:\2020软件测试代码\4_自动化测试\day1\perform2\webtours2  

七:运行Controller 

13  点击下面Design----Duration

修改时间为2分钟 

 

 14 运行Controller    Run---Start Scenario

 右下角出现小云彩,会出现小弹框,很快会消失。

15 运行Controller完成后,就出现stop。

八:打开Analysis

16 打开Analysis     开始---所有程序--HP LoadRunner---Applcations----Analysis

17 File ---open出现下面界面

文件类型:LoadRunner results  (一定要选择这个)  ,先选文件累心。

查找范围:G:\2020软件测试代码\4_自动化测试\day1\perform2\webtours2\res2

文件名:Session1  (默认)

点击打开,会出现下面界面。有的时候打开有点问题,退一步多试几遍就可以了。

遇到的问题:

1.IE不能启动

  • 检查IE是否是默认浏览器
  • 检查IE版本是否是9以下
  • 更换火狐浏览器
  • 检查杀毒软件是否关闭

2.如果始终解决不了,放弃录制,选择手写脚本

  

4.2 回放结果查看:view-----Test Results

 总结:

 

推荐阅读