loadrunner性能测试步骤

性能测试过程分为4个阶段:设计、构建、执行、分析/诊断/调节具体的工作流程如下图

 

  设计  >  构建  >  执行   >  分析/诊断/调节

收集要求    设置测试环境 基准测试    诊断瓶颈

设计测试策略  记录测试脚本  性能测试     调整配置

定义业务流程  创建测试方案  可扩展性测试   量化改善

定义系统工作量        报告生成

 

以上4个阶段的任务如下:

1、设计阶段定义待测试的业务流程、业务的平均处理量、业务处理量的最高峰值、组合业务流程、系统的整体用户和响应时间目标。

2、构建阶段涉及设置和配置测试系统及基础设施、使用自动化性能测试解决方案构建测试脚本和负载方案。

3、执行阶段包括运行负载方案和测量系统性能。

4、分析、诊断和调节阶段主要测量系统性能并使负载测试进入下一级别,重点查找问题原因以帮助开发工程师迅速解决问题,并实时调节系统参数以提高性能。

下面对这4个阶段进行详细的描述。

一、设计阶段

可以将需要关注的问题分为4个方面,即业务需求、技术需求、系统要求和团队要求。业务要求需通过业务分析师或最终用户收集。一个全面的业务要求应该考虑以下问题:

1、应用程序情况:创建系统使用演示,让性能测试团队从整体上了解应用程序如何被使用。

2、业务流程列表:创建关键业务流程列表,以使用反映最终用户在系统上执行的活动。

3、业务流程操作列表:创建word文档,以便详细记录每个业务流程的正确步骤。

4、交易列表:汇编业务流程中需要负载测量(如“登录”,“转移资金”等)的关键活动的列表。

5、业务流程图:创建业务流程图,以便描绘业务流程的分支情况。

技术要求应该通过系统管理员和数据库管理员进行收集并确认。一个全面的技术要求应该考虑以下问题:

1、环境预排工作:与系统或基础设施团队开展测试架构的预排工作。

2、系统范围会议:举行会议来讨论系统的哪些部分应该排除在测试流程外,并达成一致见解。

3、生产图:创建生产基础设备的图表,以标记出从QA迁移到生产过程中可能影响性能的因素。

收集系统的要求至关重要,这些是管控负载测试流程通过/未通过状态的系统高级目标,这些通常与来自业务的经理合作而达成一致的,一个全面的系统要求应该考虑以下问题:

1、系统在正常和高峰期必须支持的用户数量为多少?

2、系统每秒必须处理的交易量是多少?常用的一种估算方法为80~20原理法。

3、对于所有的关键业务交易,可接受的最低和最高的响应时间是多少?

4、用户社区如何连接到系统?

5、生产中需要承载的系统工作量如何?交易组合如何?

6、自后是团队要求阶段,需要确定性能测试团队成员。提前收集完整的业务、技术、系统和团队要求,是有效和成功地进行负载测试的基础。

二、构建阶段

在构建阶段,需要将设计阶段所确定的业务流程和工作量转变为可用来推动可重复、真实负载的自动化组件。可以从两个方面来关注:自动化设置和环境设置。

(1)自动化设置包括一系列由性能工程师执行的序列任务。

1)制作脚本。将存档的业务流程记录到自动化脚本中。

2)交易。插入计时器来产生业务所需要的逻辑计时。

3)参数化。用数据池来代替所有的输入数据(如登录用户名和密码),以便每个虚拟用户使用唯一的数据访问应用程序。

4)方案。通过为不同的用户组分配不同的脚本、连接和用户行为来创建生产工作量。

5)监视。确定要监视哪些负载服务器或机器。

(2)环境设置包括组装硬件、软件和数据,这些都是执行成功及真实负载测试所必需的,这可能要与系统人员、DBA、操作人员和业务团队协作。环境设置中最主要的是准备数据,数据来源有两种方式:一是历史事件;二是创建数据。

历史数据即是将真实存在的数据,只需要从数据库抽取出来即可。

创建数据则是测试过程中通过一些方法生成批量数据,制作数据的方法通常包括ultraedit结合EXCEL制作数据、数据库、shell编程和Java编程等。所有创建的数据都应该满足数据模型的要求,否则数据在调用过程中会产生错误。

构建阶段的最终结果是得到一套自动化方案,可在配置好的可用环境中随意执行。

3、执行阶段

常见的几类负载测试如下:

1、基线测试。用户验证系统及其周围的环境是否在合理的技术参数下运行。性能测试仅运行5~10名用户来对最终用户交易性能进行基线测试,这些测试应该在性能测试流程的开始和结束时执行,以测量绝对响应时间的提高量。

2、性能测试。可模拟环境中的负载,从而提高有关系统可处理多少用户的信息,这些测试应该模拟平均和高峰时的生产用量,它们应该使用真实的用户行为(如思考时间)、调制解调器模拟和多个浏览器类型,以获得最高的准备度,应该运行所有的监视程序和诊断程序,以便于工作最大限度地了解系统的性能降低和瓶颈。

3、基准测试。用于在理想的情况下测量和比较每种机器类型、环境或应用程序版本的性能,这些测试时系统进行了可扩展测试后运行的,旨在了解不同架构的性能影响。

4、渗入测试。其目的在于长时间在负载下运行系统,从而检验系统的性能状况。

5、峰值测试。其目的在于模拟一段时间内系统上的峰值负载,以便帮助演示应用程序和底层硬件能够在合理的时间内处理高负荷。

四、分析、诊断、调节阶段

在监控、分析、诊断和调节过程中可以获取大量的信息:

1、监控。性能测试过程中监控可显示基础设备每个层上所发生的一切,同时会更清晰地提供有关测试中的数据库服务器、web服务器、应用程序服务器、单个应用程序或流程的信息。监控可快速获取有价值的信息,如应用程序服务器的处理器(CPU)只能支持150名用户并发,远低于目标值。

2、分析。完成负载测试后,可将各种指标(如虚拟用户、CPU或服务器CPU)关联起来,以获取有关应用程序行为不端的其他信息。

3、诊断。高效的性能测试解决方案应该向性能工程师提供有关层、组件、SQL语句是如何影响负载条件业务流程整体性能的单个统一视图,性能工程师应该能够看到有最终用户交易所接触到的所有组件,然后确定各组件使用的处理时间及调用次数。有了这些信息就可以针对web服务器、应用程序和数据服务器瓶颈进行调优。

4、许多企业都在应用程序部署前、中和后3个阶段进行自动化性能测试。有些自动化性能测试解决方案可系统的识别并分离基础实施性能瓶颈,然后通过修改系统配置设定来解决它们,通过反复解决基础设施瓶颈,可以不断改进配置。

转载于:https://www.cnblogs.com/zhangyublogs/p/4909482.html

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/272806.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Asp.Net生命周期的详解

一.Asp.Net页面生命周期的概念当我们在浏览器地址栏中输入网址,回车查看页面时,这时会向服务器端IIS)发送一个request请求,服务器就会判断发送过来的请求页面,当完全识别 TTP页面处理程序类后,A…

java chain_java 8中 predicate chain的使用

java 8中 predicate chain的使用简介Predicate是一个FunctionalInterface,代表的方法需要输入一个参数,返回boolean类型。通常用在stream的filter中,表示是否满足过滤条件。boolean test(T t);基本使用我们先看下在stream的filter中怎么使用P…

前段技术学习计划

资料: 著作权归作者所有。 商业转载请联系作者获得授权,非商业转载请注明出处。 作者:陈禹鲁 链接:http://www.zhihu.com/question/19809484/answer/35544452 来源:知乎 第一本,入门 《Head first HTML&…

指针的概念

在C语言中,内存单元的地址称为指针,专门用来存放地址的变量,有时对地址,指针和指针变量不区分,统称指针。(地址指针) 一般情况下,最前面的存储类型通常会省略 指针在说明的同时&…

整理一些提高C#编程性能的技巧

1、使用StringBuilder代替使用string 连接符 ""说明:String类对象是不可变的(只读),一旦创建该对象,就不能修改该对象的值。对象String对象的重新赋值,本质上是重新创建了一个String对象并将新的…

python爬知识星球付费数据_用python爬取知识星球

去年我们做过一个叫「学长问答」的社群活动,里面沉淀了大量有价值的互动信息,后来因为各种原因终止了。今天和涂腾聊起来,觉得这些信息就这么沉寂了太浪费。所以就试着用python爬取了知识星球的内容。这个过程又学习了一些新的知识&#xff0…

HTML学习(1)

1、缩写和首字母缩写<abbr><acronym> <abbr title"etcetera">etc.</abbr> <acronym title"World Wide Web">WWW</acronym> 2、块引用&#xff08;短&#xff09; <p>A: <q>B</q>C</p> 显示结…

常用的7个SQl优化技巧

作为程序员经常和数据库打交道的时候还是非常频繁的&#xff0c;掌握住一些Sql的优化技巧还是非常有必要的。下面列出一些常用的SQl优化技巧&#xff0c;感兴趣的朋友可以了解一下。1、注意通配符中Like的使用以下写法会造成全表的扫描&#xff0c;例如&#xff1a;select id,n…

toolbar java_Java ToolBar.layout方法代码示例

import org.eclipse.swt.widgets.ToolBar; //导入方法依赖的package包/类protected ToolBar createToolbar() {final ToolBar t new ToolBar(composite, SWT.FLAT | SWT.LEFT | SWT.HORIZONTAL | SWT.WRAP);final GridData d new GridData(SWT.FILL, SWT.TOP, false, false);…

Visual Studio常用的快捷键整理

微软的开发工具Visual Studio作为DoNet开发者来说是必备神器&#xff0c;该开发工具内置了很多的开发快捷键&#xff0c;熟悉了这些开发快捷键&#xff0c;对于程序员来说事半功倍&#xff0c;所以在这里整理一下&#xff0c;版本是vs2012以上&#xff0c;目前小编列出了自己觉…

win7旗舰版6l打印机咋安驱动_在w7旗舰版上怎么安装HPlaserjet6L打印机?

您好&#xff0c;感谢您选择惠普产品。首先6L产品只有并口线&#xff0c;但是现在win 7 电脑基本都没有并口&#xff0c;有可能是您使用了转接usb设备&#xff0c;但是产品在出厂的时候会对产品作测试&#xff0c;测试的结果是不建议使用转接设备或者是延长设备&#xff0c;以免…

收集一些工作中常用的经典SQL语句

作为一枚程序员来说和数据库打交道是不可避免的&#xff0c;现收集一下工作中常用的SQL语句&#xff0c;希望能给大家带来一些帮助&#xff0c;当然可能不全面&#xff0c;欢迎补充&#xff01;1、执行插入语句&#xff0c;获取自动生成的递增的ID值INSERT INTO SysRole (RoleN…

ascii modbus vc源码_MODBUS ASCII及MODBUS RTU通讯

代码片段和文件信息using System;using System.Collections.Generic;using System.ComponentModel;using System.Data;using System.Drawing;using System.Linq;using System.Text;using System.Threading.Tasks;using System.Windows.Forms;using System.IO.Ports;//串口using…

Asp.Net操作Cookie总结

一、什么是Cookie&#xff1f;Cookie是存储在客户端文件系统的文本文件或客户端浏览器对话的内存中的少量数据。它主要用来跟踪数据设置&#xff0c;例如&#xff1a;当我们要访问一个网站网页的时候&#xff0c;用户请求网页时&#xff0c;应用程序可能会首先检查此用户是否已…

java GUI怎么输入_在Swing中创建Java GUI以进行表单输入

好吧,我已经浏览了整个互联网,但却未能找到这个问题的答案,所以也许有人可以提供一些见解.我正在开发一个相对简单的Java应用程序,它将取代目前用于系统访问请求的Word文档.它旨在允许表单输入新的员工雇用信息 – 名称,所需的访问权限等.所以这是我的问题.尝试使用所有文本字段…

Net中Session的用法

一、什么是Session&#xff1f;简单来说&#xff0c;就是用户与网站服务器建立的一个连接&#xff0c;服务器分配给一个编号。当一台WWW服务器运行时&#xff0c;可能有若干用户正在浏览运行在这台服务器上的网站。当用户首次与这台WWW服务器创建连接的时候&#xff0c;它就和这…

关于Json的总结

一、什么是Json&#xff1f;JSON(JavaScript Object Notation) 是一种轻量级的数据交换格式。它使得人们很容易的进行阅读和编写。同时也方便了机器进行解析和生成。它是基于 JavaScript Programming Language , Standard ECMA-262 3rd Edition - December 1999的一个子集。 JS…

java 整数溢出检测,Java如何处理整数下溢和溢出以及如何检查它?

How does Java handle integer underflows and overflows?Leading on from that, how would you check/test that this is occurring?解决方案If it overflows, it goes back to the minimum value and continues from there. If it underflows, it goes back to the maximum…

console 程序随系统启动及隐藏当前程序窗口

应业务需求&#xff0c;程序需要与系统启动而自动运行&#xff0c;故加入以下代码&#xff0c;保存成 .bat文件 &#xff0c;双击执行即可 reg add "HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Run" /v HuazhuPushRecord /t reg_sz /d "your…

Linq用法笔记

一、什么是Linq?LINQ即Language Integrated Query(语言集成查询)&#xff0c;LINQ是集成到C#和Visual Basic.NET这些语言中用于提供查询数据能力的一个新特性。LINQ是一种用来进行数据访问的编程模型&#xff0c;Linq可以用相同的语法访问不同的数据源&#xff0c;比如xml、数…