性能测试流程

(1)问清性能测试需求
首先,要问本次性能测试的需求是什么,或者性能测试的目的是什么? 我把性能测试按目的分以下几种。

1)新系统能力验证

比如,你们刚好开发了一个新系统,在上线前需要验证系统性能。这种情况比较简单;你可以有更多的自由选择测试环境、压力点和测试工具;测试策略上也比较灵活。并且如果性能测试结果没有明显的短板,也不需要进行调优。

2)客户有明确要求

这是一个好的结果,这说明客户对性能测试有一定的了解,知道他们需要的系统要达到一个什么样的标准。如:系统要求同时满足100用户登陆,平均每个用户登陆时间不能超过5秒。这个需求很明确,当然也不排除一些不懂装懂的用户,提一些不现实的要求。

不管怎么说,用户提要求了,这个比较容易,你可以对现系统做一次性能测试,至于,是通过优化系统还是增加硬件设备才能达到要求。就不是测试考虑的问题了。

3)找出系统性能瓶颈

这个需求的目的就很明确了,目的就是找出系统的性能瓶颈,进行调优或硬件扩容,所以性能测试的重点在系统的架构分析和业务分析上面。

4)稳定性验证(强度测试)

稳定性是系统的一个重要指标,因为系统一旦上线,就有可能会长期处在用户的访问状态,可能以前没发现的一些问题就会暴漏出来。比较典型的就是内存溢出,这种需求在测试策略上就要考虑性能测试的运行时长。

 

(2)了解系统架构

表示层

表示层(浏览器)通过前端技术(HTML5/JavaScript/CSS3)将系统功能和数据展示给用户,并与用户实现交互。通过TCP/HTTP协议与业务层系统通信,向应用层系统发送请求报文,并接收应用层系统返回的响应报文。

业务逻辑层

业务逻辑层作为中间层实现核心业务逻辑服务。

应用服务器主要运行中间件系统,中间件系统系统作为一个容器来运行各种应用软件系统。前台发来的请求报文通过中间件传递给应用程序,应用程序在处理的过程中调用数据层的数据服务器,数据服务器将查询的数据返回给应用程序,应用软件处理完成后通过中间件系统返回给客户端。

在大型的系统中,可以对应用系统进行拆分,比如拆分成交易服务,查询服务;或者通过负载均衡技术,来分散客户端发来的请求,使其能承受更大的用户访问量。

数据层

数据层运行在数据库主机上,负责整个系统中数据信息的存储。运行数据库服务程序,查询通过JDBC与应用程序进行通信,主要用于存储数据与提供数据查询等服务。

常用的系统架构:

· Linux + Apache + PHP + MySQL

· Linux + Nginx + Redis +  PHP + MySQL

· Linux + Apache + Tomcat + Java+ Oracle

· Windows Server 2003/2008 + IIS + C#/ASP.NET + 数据库

· Window Server 2003/2008 + tomcat + MySql/Oracle/ + Java

· Linux + Python + uwsgi + Nginx + MySQL

 

(3)分析测试点

性能测试点的选取

* 发生频率非常高的(例如:某邮箱核心业务系统中的登录、收发邮件等业务,它们在每天的业务总量中占到90%以上)

* 关键程度非常高的(产品经理认为绝对不能出现问题的,如登录等)

* 资源占用非常严重的(导致磁盘I/O非常大的,例如某个业务进行结果提交时需要向数十个表存取数据,或者一个查询提交请求时会检索出大量的数据记录)

对性能需求点的描述 

  • 准确

如**系统必须在不超过 10 秒的响应时间内,处理 20 起登录任务。再如发邮件时间最大不超过5秒以及平均时间在2秒以内。

  • 一致

用户和性能测试工程师对有关术语的理解要一致,如:并发用户数、在线用户数、注册用户数: 

  • 特定

性能测试的需求一定是有条件的。

检查系统后台关键业务数据10G、操作数据量为20K,1500 个用户、500 个并发用户运行的负载下,连续运行12小时过程中,业务操作是否满足性能需求。

一般性能需求描述

1、Web首页打开速度5s以下,Web登陆速度 15s以下。

2、邮件服务支持50万个在线用户

3、计费话单成功率达到99.999%以上。

4、在100个并发用户的高峰期,邮箱的基本功能,处理能力至少达到10QPS(TPS).          QPS(TPS)--每秒钟请求/事物 数量

5、系统能在高于实际系统运行压力1倍的情况下,稳定的运行12小时。

6、这个系统能否支撑200万的VU(每天登录系统的人次)          VU--Virtual user(虚拟用户) 

 

(4)选择测试工具

(5)测试计划

(6)搭建测试环境

(7)执行测试

1、准备测试数据

2、使用测试工具模拟测试点,回放OK

3、根据测试策略,使用不同的虚拟用户和测试组合 运行测试。

4、监控系统CPU、内存、中间件,数据库的性能,收集数据。

5、重复3、4。

 

(8)性能调优

步骤一:确定问题

应用程序代码:在通常情况下,很多程序的性能问题都是写出来的,因此对于发现瓶颈的模块,应该首先检查一下代码。

数据库配置:经常引起整个系统运行缓慢,一些诸如oracle 的大型数据库都是需要DBA进行正确的参数调整才能投产的。

操作系统配置:不合理就可能引起系统瓶颈。

硬件设置:硬盘速度、内存大小等都是容易引起瓶颈的原因,因此这些都是分析的重点。

网络:网络负载过重导致网络冲突和网络延迟。

步骤二:分析问题

当确定了问题之后,我们要明确这个问题影响的是响应时间吞吐量,还是其他问题?是多数用户还是少数用户遇到了问题?如果是少数用户,这几个用户与其它用户的操作有什么不用?系统资源监控的结果是否正常?CPU的使用是否到达极限?I/O 情况如何?问题是否集中在某一类模块中? 是客户端还是服务器出现问题? 系统硬件配置是否够用?实际负载是否超过了系统的负载能力? 是否未对系统进行优化?

通过这些分析及一些与系统相关的问题,可以对系统瓶颈有更深入的了解,进而分析出真正的原因。

步骤三: 确定调整目标和解决方案

得高系统吞吐量,缩短响应时间,更好地支持并发。

步骤四:测试解决方案

对通过解决方案调优后的系统进行基准测试。(基准测试是指通过设计科学的测试方法、测试工具和测试系统,实现对一类测试对象的某项性能指标进行定量的和可对比的测试)

步骤五:分析调优结果

系统调优是否达到或者超出了预定目标?系统是整体性能得到了改善,还是以系统某部分性能来解决其他问题。调优是否可以结束了。

 

转载于:https://www.cnblogs.com/molrang/p/11132466.html

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
C语言是一种广泛使用的编程语言,它具有高效、灵活、可移植性强等特点,被广泛应用于操作系统、嵌入式系统、数据库、编译器等领域的开发。C语言的基本语法包括变量、数据类型、运算符、控制结构(如if语句、循环语句等)、函数、指针等。下面详细介绍C语言的基本概念和语法。 1. 变量和数据类型 在C语言中,变量用于存储数据,数据类型用于定义变量的类型和范围。C语言支持多种数据类型,包括基本数据类型(如int、float、char等)和复合数据类型(如结构体、联合等)。 2. 运算符 C语言中常用的运算符包括算术运算符(如+、、、/等)、关系运算符(如==、!=、、=、<、<=等)、逻辑运算符(如&&、||、!等)。此外,还有位运算符(如&、|、^等)和指针运算符(如、等)。 3. 控制结构 C语言中常用的控制结构包括if语句、循环语句(如for、while等)和switch语句。通过这些控制结构,可以实现程序的分支、循环和多路选择等功能。 4. 函数 函数是C语言中用于封装代码的单元,可以实现代码的复用和模块化。C语言中定义函数使用关键字“void”或返回值类型(如int、float等),并通过“{”和“}”括起来的代码块来实现函数的功能。 5. 指针 指针是C语言中用于存储变量地址的变量。通过指针,可以实现对内存的间接访问和修改。C语言中定义指针使用星号()符号,指向数组、字符串和结构体等数据结构时,还需要注意数组名和字符串常量的特殊性质。 6. 数组和字符串 数组是C语言中用于存储同类型数据的结构,可以通过索引访问和修改数组中的元素。字符串是C语言中用于存储文本数据的特殊类型,通常以字符串常量的形式出现,用双引号("...")括起来,末尾自动添加'\0'字符。 7. 结构体和联合 结构体和联合是C语言中用于存储不同类型数据的复合数据类型。结构体由多个成员组成,每个成员可以是不同的数据类型;联合由多个变量组成,它们共用同一块内存空间。通过结构体和联合,可以实现数据的封装和抽象。 8. 文件操作 C语言中通过文件操作函数(如fopen、fclose、fread、fwrite等)实现对文件的读写操作。文件操作函数通常返回文件指针,用于表示打开的文件。通过文件指针,可以进行文件的定位、读写等操作。 总之,C语言是一种功能强大、灵活高效的编程语言,广泛应用于各种领域。掌握C语言的基本语法和数据结构,可以为编程学习和实践打下坚实的基础。
该资源内项目源码是个人的课程设计、毕业设计,代码都测试ok,都是运行成功后才上传资源,答辩评审平均分达到96分,放心下载使用! ## 项目备注 1、该资源内项目代码都经过测试运行成功,功能ok的情况下才上传的,请放心下载使用! 2、本项目适合计算机相关专业(如计科、人工智能、通信工程、自动化、电子信息等)的在校学生、老师或者企业员工下载学习,也适合小白学习进阶,当然也可作为毕设项目、课程设计、作业、项目初期立项演示等。 3、如果基础还行,也可在此代码基础上进行修改,以实现其他功能,也可用于毕设、课设、作业等。 下载后请首先打开README.md文件(如有),仅供学习参考, 切勿用于商业用途。 该资源内项目源码是个人的课程设计,代码都测试ok,都是运行成功后才上传资源,答辩评审平均分达到96分,放心下载使用! ## 项目备注 1、该资源内项目代码都经过测试运行成功,功能ok的情况下才上传的,请放心下载使用! 2、本项目适合计算机相关专业(如计科、人工智能、通信工程、自动化、电子信息等)的在校学生、老师或者企业员工下载学习,也适合小白学习进阶,当然也可作为毕设项目、课程设计、作业、项目初期立项演示等。 3、如果基础还行,也可在此代码基础上进行修改,以实现其他功能,也可用于毕设、课设、作业等。 下载后请首先打开README.md文件(如有),仅供学习参考, 切勿用于商业用途。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值