软件性能测试知识汇总[通俗易懂]

软件性能测试知识汇总[通俗易懂]一软件性能概述1.软件性能的概念:软件性能是与软件功能相对应的一种非常重要的非功能特性,表明了软件系统对时间及时性及资源经济性的要求。2.不同角色对软件性能的理解(1)从系统用户角度看软件性

大家好,又见面了,我是你们的朋友全栈君。如果您正在找激活码,请点击查看最新教程,关注关注公众号 “全栈程序员社区” 获取激活教程,可能之前旧版本教程已经失效.最新Idea2022.1教程亲测有效,一键激活。

Jetbrains全系列IDE使用 1年只要46元 售后保障 童叟无欺

一   软件性能概述

1.软件性能的概念:

软件性能是与软件功能相对应的一种非常重要的非功能特性,表明了软件系统对时间及时性及资源经济性的要求。

2.不同角色对软件性能的理解

(1)从系统用户角度看软件性能:                  

影响因素:                                                                  

1、功能粒度                                                                 

2、客户端网络情况                                                      

3、服务器当前忙闲情况                                                

4、……                                                                         

(2)从系统运维人员角度看软件性能:

   影响因素: 

1、功能升级  

2、用户量增加 

3、服务器硬件磨损 

4、数据量增加

5、 ……

(3)从开发人员角度看软件性能:

影响因素:

1、机构设计

2、数据库设计

3、内存使用方式

4、线程同步方式

5、资源竞争

6、 ……

3.常用性能指标:响应时间、并发用户数、吞吐量、服务器性能计数器

4.软件性能的影响因素:

(1)硬件设施(部署结构、机器配置)

(2)网络环境(客户端带宽、服务器端带宽)

(3)操作系统(类型、版本、参数配置)

(4)中间件(类型、版本、参数配置)

(5)应用程序(性能)

(6)并发用户数(系统当前访问状态)

(7)系统数据量(系统数据量大小)

5.软件性能生命周期模型
软件性能测试知识汇总[通俗易懂]

(1)性能需求分析:根据系统的业务特点制定明确的性能需求,为系统设计和性能测试提供依据

(2)概要设计:针对系统性能要求,从数据库结构、软件架构、部署结构等方面进行系统设计工作

(3)详细设计:从单元粒度、算法逻辑复杂度、变量定义等方面进行系统的设计工作

(4)性能测试:对应不同的设计阶段,可以将性能测试分解为单元性能测试、集成性能测试和系统性能测试

6.性能需求分析方法:响应时间、最大并发用户数、吞吐量、资源利用率

7.软件性能模型
软件性能测试知识汇总[通俗易懂]

二  软件性能测试基础

1.软件性能测试定义:

狭义的软件性能测试指为验证软件性能指标、评估系统服务能力、推荐系统软硬件配置、完成系统性能优化等而开展的测试活动,这也是一般意义上人们对软件性能测试的理解。

广义的软件性能测试指在测试过程中需要相关性能测试方法配合完成的系统测试活动,包括可靠性测试、可恢复性测试、稳定性测试、兼容性测试、可扩展性测试等。

2.软件性能测试的目标

  • 能力验证
  • 缺陷发现
  • 能力规划
  • 性能优化

3.常用性能测试方法

(1)基准测试:通过设计科学的测试方法、测试工具和测试系统,实现对一类测试对象的某项性能指标进行定量的和对比的测试。主要目的是检验系统性能与相关标准的符合程度。

(2)压力测试:通过对软件系统不断施加压力,识别系统性能拐点,来获得系统提供的最大服务级别的测试活动。主要目的是检查系统处于压力情况下,应用的表现。

(3)负载测试:通过在被测系统上不断施加压力,知道达到性能指标极限要求。主要目的是找到特性环境下系统处理能力的极限。

(4)并发测试:指当测试多用户并发访问同一个应用、模块、数据时是否发生隐藏的并发问题,如内存泄露、现成锁、资源争用问题。主要目的并非为了获得性能指标,而是为了

发现并发所引起的问题。

(5)疲劳测试:通过让软件系统在一定访问量情况下长时间运行,以检验系统性能在多长时间后会出现明显的下降。主要目的是验证系统运行的可靠性。

(6)数据量测试:通过让软件在不同数据量情况下运行,以检验系统性能在各种数据量情况下的表现。主要目的是找到支持系统正常工作的数据量极限。

(7)配置测试:通过被检测系统的软/硬件环境的调整,了解各种不同环境对系统性能的影响程度,从而找到系统各项资源的最优分配原则。主要目的是了解各种不同因素对系统性能影响的程度,从而判断出最值得进行的调优操作。

三  性能测试过程模型

1.

软件性能测试知识汇总[通俗易懂]

2.HP性能测试过程

软件性能测试知识汇总[通俗易懂]

3.制订性能测试计划:

(1)明确测试范围

(2)制订时间(进度)计划

(3)制订成本计划

(4)制订环境计划

(5)测试工具规划

(6)测试风险分析

4.设计测试用例

5.搭建性能测试环境

(1)搭建硬件环境

(2)搭建软件环境

(3)搭建测试工具环境

(4)准备数据环境

6.执行性能测试

(1)脚本录制与开发

(2)场景设置

(3)测试执行

(4)测试监控

四  性能分析与性能优化

1.性能分析方法分类:

(1)指标达成法:用于验证性能指标

(2)最优化分析法:用于能力验证型测试

2.常用性能分析方法:

(1)快速瓶颈识别:

①硬件上的性能瓶颈        ②应用软件上的性能瓶颈     ③应用程序上的性能瓶颈  

④操作系统上的性能瓶颈    ⑤网络设备上的性能瓶颈

(2)性能下降曲线:单用户区域、性能平坦区、压力区域、性能拐点

(3)内存分析方法   (4)处理器分析方法   (5)磁盘IO分析方法      (6)进程分析方法   (7)网络分析方法

五  HP LoadRunner基础

1.LoadRunner通过模拟实际用户的操作行为和实施实时性能检测,来帮助用户更快地确认和查找问题的所在。

2.确认系统选择协议方法

(1)可以直接确认。

(2)通过研发人员了解被测系统使用了什么样的协议。

(3)使用常用的数据监听工具进行数据包分析。

(4)万能协议Winsocket协议。

3.LoadRunner工具组成
(1)三个前台功能模块

  • VuGen(虚拟用户脚本生成器)
  • Controller(测试控制器)
  • Analysis(结果分析器)

(2)两个后台功能模块

  • LG(负载生成器)
  • Proxy(用户代理)

软件性能测试知识汇总[通俗易懂]

4.LoadRunner 中的关键概念

(1)虚拟用户:Virtual User简称Vuser,性能测试过程中执行VU脚本以模拟真实用户对系统访问的执行实体。

(2)VU脚本:Script,记录了用户执行系统业务的操作过程,是Vuser执行的对象。

  LoadRunner支持的脚本语言有:Java、C、Visual Basic、VB Script等,默认的脚本生成语言为C语言。

(3)场景:Scenario,一次性能测试执行内容的定义,用来模拟真实用户是如何产生压力的。(手工场景和面向目标场景)

场景由所要执行的脚本、虚拟用户、负载生成器、运行过程配置、实时监控五方面构成。

(4)事务:Transaction,提供一种端对端的测量方法,用于测量一个业务流程中执行一个或多个步骤所花费的时间。(可理解为一个计时单位)

(5)检查点:Check Point,提供了一种执行结果正确性验证机制,保证了测试工具对执行通过判断的准确性。

(6)思考时间:Think Time,提供了一种让VU脚本暂停执行(等待一段时间)的机制,用来模拟实际用户在不同操作之间等待时间,以便更加真实地反映用户访问系统的行为规律。

(7)集合点:Rendezvous,集合点提供了一种用户并发访问机制,用来模拟多用户对系统的并发访问。

六 HP LoadRunner脚本的录制于开发

1.创建测试脚本流程

软件性能测试知识汇总[通俗易懂]

 

软件性能测试知识汇总[通俗易懂]

2.两种录制模式:
(1) HTML-based script (基于HTML的脚本)录制模式是loadrunner的默认模式,单独步骤

(2)URL-based script (基于URL的脚本),每个请求

3. LoadRunner提供两种注释方法:

(1)单行注释。在代码行的后面,添加“//”,“//”的后面直到本行结束的内容为注释内容。

(2)块注释。一个注释块是以“/*”开头,并以“*/”结尾的串。在“/*”和“*/”之间的即为注释。

4.设置步长(多久迭代一次脚本):Pacing

5.Run Vuser as a process:以一个进程运行虚拟用户
   Run Vuser as a thread:以一个线程运行虚拟用户

6.动态验证是需要做关联

7.四种日志类型

  • 执行日志
  • 编译日志
  • 产生日志
  • 录制日志

七  HP LoadRunner测试场景管理

1.场景主要是用来模拟真实用户向被测试系统产生压力,是一种用来模拟大量用户操作的技术手段。

2.Controller(中央控制器):负责设计与执行性能测试用例场景的组件。

3.测试场景类型:
(1)Manual Scenario:手工场景
(2)Goal-Oriented Scenario:面向目标的场景

4.负载发生器是一个可以独立部署并运行脚本的负载引擎。

5.手工场景:

(1)Scenario模式:

①Real-world schedule(真实场景模式)

②Basic Schedule(基础模式)

(2)Group模式

6.SLA(服务水平协议)是您为负载测试场景定义的具体目标。

7.面向目标的场景5种类型目标

(1)Vuser数

(2)每秒点击次数(仅Web Vuser)

(3)每秒事务数

(4)每分钟页面数(仅Web Vuser)

(5)场景的事务响应时间

8.系统参数监控

(1)场景用户状态

(2)场景运行状态

(3)计数器管理

①监控Windows、SQL Server、IIS

②Windows监控Linux/UNIX

③监控AIX     ④监控Oracle    ⑤监控Weblogic     ⑥监控Apache

八  HP LoadRunner测试结果分析

1.功能:系统性能测试的目的是查找系统的性能问题,然后找出这些问题的根源。

2.Analysis测试结果分析方法

(1)从分析Summary的事务执行情况入手

(2)查看负载发生器和服务器的系统资源情况

(3)查看虚拟用户与事务的详细执行情况

(4)查看错误发生情况

(5)查看Web资源与细分网页

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。

发布者:全栈程序员-用户IM,转载请注明出处:https://javaforall.cn/167562.html原文链接:https://javaforall.cn

【正版授权,激活自己账号】: Jetbrains全家桶Ide使用,1年售后保障,每天仅需1毛

【官方授权 正版激活】: 官方授权 正版激活 支持Jetbrains家族下所有IDE 使用个人JB账号...

(0)


相关推荐

  • idea2021.10 激活码mac版本-激活码分享

    (idea2021.10 激活码mac版本)2021最新分享一个能用的的激活码出来,希望能帮到需要激活的朋友。目前这个是能用的,但是用的人多了之后也会失效,会不定时更新的,大家持续关注此网站~IntelliJ2021最新激活注册码,破解教程可免费永久激活,亲测有效,下面是详细链接哦~https://javaforall.cn/100143.html…

  • 产品需求管理[通俗易懂]

    产品需求管理[通俗易懂]第三课需求管理1需求管理是什么1.1需求挖掘:看四块,自己行业,总体趋势,未来方向,商业模式。最直接的需求一定来源于用户,用户访谈,用户反馈,调查问卷,社交平台。1.2需求匹配:需求挖掘解决发现

  • 【第01题】A + B | 基础输入输出,开启学习C语言打卡的序章

    【第01题】A + B | 基础输入输出,开启学习C语言打卡的序章难度:★☆☆☆☆,开启学习C语言打卡的序章

  • SpringBoot集成Redis,并自定义对象序列化

    SpringBoot集成Redis,并自定义对象序列化SpringBoot项目使用redis非常简单,pom里面引入redis的场景启动器,在启动类上加@EnableCaching注解,项目启动会自动匹配上redis,这样项目中就可以愉快地使用了,使用方法:要么使用@Cacheable一类的注解自动缓存,要么使用RedisTemplate手动缓存。(前提是你的本机或者是远程主机要先搭好redis环境)虽然SpringBoot好用,但这里也有好多…

  • 局域网文件传输软件[通俗易懂]

    局域网文件传输软件[通俗易懂]在公司实习了一个周,虽然很累,但也感觉有所得,此次项目是做一个局域网两台计算机之间的文件传输。我用的主要控件为winsock控件,用其TCP协议。至于用此控件连接两台计算机书上都有介绍,我主要介绍一下我传送文件的思想和方法:首先,将要传送的文件分成指定大小的N个包,大小不能超过8K因为TCP每次最多发送8K数据,最后一个包可能会小于其它包。然后在每个包加个包头,因为接收端需要通过包头知道传送过来的

  • Golang语言快速上手到综合实战高并发聊天室[通俗易懂]

    Golang语言快速上手到综合实战高并发聊天室

发表回复

您的电子邮箱地址不会被公开。

关注全栈程序员社区公众号