关于性能测试

上一篇 / 下一篇  2009-06-26 09:06:00

 

LoadRunner

性能测试概念

性能测试

性能测试是指在既定目标下,如果达到则是通过,作为以后回归测试的基线;如果没有达到,则找到瓶颈,给出报告。

性能测试不可以在公网上做,原因是:

1. 影响现有网速

2. 网络因素是无法模拟的,如同是可能有用户在下载东西。

1.1压力测试

压力测试是指在压力一定情况下,持续时间不同,看多久系统能出错。

1.2负载测试

负载测试是指在时间一定情况下,不断加压,看承压能力。

1.3并发数

某个时间点,在同一个系统,以前做一件事情,既同时对服务器造成压力。

1.4响应时间

从用户角度上看是指从用户发出请求到请对正常响应的这段时间。

从服务器角度看是在服务器从接受到请求开始到给出正常相应结果。也就是服务器的处理时间。

1.5在线用户

在线用户对系统不一定产生压力

1.6PV:pageview

Pv是页面浏览率,也就是页面的打开次数。

1.7吞吐量

服务器返回个客户端的字节数。

1.8业务成功率

1.9系统资源耗用

系统资源耗用包括cpu,内存,网络带宽和磁盘等。

1.9.1CPU

1.9.2内存

 

1.9.3网络带宽

1.9.4磁盘

2测试流程

2.1性能测试需求分析

2.1.1没有明确需求时如何开展性能测试

用户频繁使用,并且存在大量用户使用的

系统关键功能点,并且存在大量数据操作

与外部系统存在接口的,有互相调用的关系,大量数据流转

2.1.2确定测试点以后,需整理测试点提交给上级做评审

2.1.3要求对系统相当熟悉

系统架构

组网图

业务流程

功能重点

2.2测试指标提取

2.2.1并发数(预期值)

业务量

1、查询系统日志数据库、网络流量分析

2、客户给出指标

3、项目经理

4、开发经理、测试经理

5、自己经验

时间段

计算方法

2.2.2响应时间

用户操作时间(think time

服务器处理时间(25810

2.2.3业务成功率

关键业务(金融、生命财产安全)100%

用户群体

面向大众>=95%

面向特定用户>=98%

2.2.4系统资源耗用

CPU持续使用率

Cpu使用率<20%为资源空闲或者浪费

Cpu使用率>=20%<=70%为正常

Cpu使用率>70%为超负荷

内存(与CPU持续使用率相同)

网络带宽

使用带宽不超过总带宽的50%,如果超过则可能存在瓶颈

磁盘

CPU队列长度不超过CPU数量+1

2.2.5吞吐量

2.2.6TPS(每秒钟处理的事务数)

2.3业务模型建立

2.3.1约束条件

数据约束:

1.参数化

2.造测试数据

环境约束:

1.关联:服务器端可控的,服务器端返回给客户端

2.参数化:客户端可以控制的

2.3.2业务流程分析

后面action划分做准备

2.3.3业务流程图

2.4测试用例设计

根据模版填写数据

2.5脚本录制

2.5.1搭建测试环境

环境要求

硬件要求

软件要求

数据要求

技术要求

工具培训

项目培训

环境调试

2.5.2协议选取

自己识别

B/S结构常用HTTP协议

C/S结构多用Winsocket协议

未加密

加密

如果是乱码,则需自己写测试代码,前提是必须知道加密算法

 问开发

2.5.3解决常见问题

无脚本内容:选择正确的协议

无法打开浏览器:检查浏览器版本,去掉插件,更改浏览器

脚本内容乱码:utf-8

2.5.4注意Action划分

最好事先划分好action

切换action应该在提交操作之前完成

2.6脚本优化

2.6.1注释

1.增强脚本可读性

2.提高脚本维护性

2.6.2集合点

1.initend部分是不能设置集合点的

2.集合点应该在提交请求的动作之前设置

2.6.3事务点

2.6.4参数化

什么时候需做参数化

1.系统对数据有唯一性要求(注册名、流程id等)

2.系统对同样业务不允许多次操作(对登录,业务流程处理方法)

3.更真实模拟用户业务行为

怎么做参数化

参数化类型

文件类型

每次迭代

顺序

随机

唯一

每次发生

顺序

随机

唯一

Table类型

唯一数

随机数

时间/日期类型

测试数据制造

Excel表:适用于小范围,不超过1000

编程实现:适用于多数据

定义生成数据的变量

循环

输出打印

存储过程

生成数据

导出数据

手动操作

数据正确性高,真实性好

效率低下

自动化工具

QTP

LoadRunner

参数化步骤

1、分析测试数据

什么地方需要作参数化

2、选择参数类型,设计分配方式

3、查找替换对象

有可能在脚本中多个地方使用了该变量,所以需要全部替换

4、设定参数化并调试

2.6.5关联

关联概念

将服务器提供动态变化,无规律的值存放在变量中,当需要使用该变量时,由LoadRunner自动从服务器响应的信息中获取该值,并在后面使用的过程中进行替换

关联与参数化区别

关联:服务器提供给客户端的

参数化:客户端给服务器端,客户端可控的

什么时候使用关联

1、操作正确或业务流程正确,但实际没有成功。比如LoadRunner结果报告提示Pass,但实际业务没有成功。首先要考虑的是参数化,再考虑关联(可在业务模型建立环节分析到位)

2、系统存在动态变化的值,并且无法模拟,无规律的,或者隐藏在代码中。hidden

3、后面的操作所需的数据是前面操作的输出,比如订票的航班号

关联方法

自动关联

1、录制脚本

2、保存脚本

3、调试与回放脚本

4、使用快捷键Ctrl+F8,搜索关联点

5、根据实际得出的结果分析是否需要做关联,然后选择需做关联的点,点击【Correlate】按钮进行关联

6、调试脚本

手动关联

1、录制两份相同的脚本

2、保存:a、保存的路径不要太深;b、名称不能有空格;c、名称不能有中文;d、名称不能太长;

3、打开tools-compare with scrips,进行脚本比较

4、选择options-view-show inline differences,将真正不同差异点以红色标注出来

5、将真正不同点拷贝出来,进行分析确定哪些是可以控制(可用参数化处理的),如果不能控制,可考虑使用关联

6、在服务器的响应信息中找到需做关联的点,确定其左右边界。在loadrunnergeneration log中查找,不能在loadrunner脚本中查找,原因脚本只反映了客户端发送给服务器端的信息,而generation log体现了服务器与客户端交互的完整信息。

7、在脚本中确定插入关联函数的位置,使用alt+insert快捷键,调出web_reg_save_param函数,输入左右边界即可。

8、关联完成后,点击编译按钮进行语法检查,然后再运行调试。

关联函数

1函数结构

2参数列表有哪些

3左边界LB

4右边界RB

5 savelen

保存字符长度

web_reg_save_param("test","LB=outboundFlight value=","RB=>","SaveLen=18",LAST);

6 offset

保存字符的起始位置(偏移量)

7 ORD

表示获取变量值的起始位置

默认从第一次出现符合条件的变量值开始读取即ord=1

如果选择ALL,则会将所有符合条件的变量值保存在数组中

8 Saveoffset

从第几位开始保存

2.6.6文本检查点(web_reg_find

作用:测试过程检查业务的正确性

用法

web_find:界面查找

启用文本检查点(r

TAG:

shenyafang的个人空间 引用 删除 shenyafang   /   2011-07-17 00:12:06
原帖由289782385于2011-07-11 08:49:15发表
做性能测试是要在服务器上做么?把服务器同时也当做客户端?

性能测试是在服务器上的,但是服务器上的内容,不是都是从客户端访问,返回的数据的吗,由客户端来做,完全模拟用户的实际真实的操作,来分析服务器上的瓶颈
旺仔小罐头的个人空间 引用 删除 289782385   /   2011-07-11 08:49:15
做性能测试是要在服务器上做么?把服务器同时也当做客户端?
旺仔小罐头的个人空间 引用 删除 289782385   /   2011-07-11 08:46:12
5
旺仔小罐头的个人空间 引用 删除 289782385   /   2011-07-11 08:45:33
不错的资料哦,有用,顶了,最近正在学习LR,正好可以用用~
 

评分:0

我来说两句

shenyafang

shenyafang

心直口快不招人喜欢的人。。。。。。

日历

« 2024-04-29  
 123456
78910111213
14151617181920
21222324252627
282930    

数据统计

  • 访问量: 895
  • 日志数: 2
  • 建立时间: 2008-07-16
  • 更新时间: 2012-03-27

RSS订阅