性能测试总结与分享材料
开篇语
作为一个测试人员,专门挖掘别人缺陷的人,手里没有几把铲子,恐怕干起活来不是那么利索吧。俗话都有说,工欲善其事,必先利其器。这里我就通过一个工具LoadRunner的基本使用,给大家分享下性能测试的小小心得体会。
性能测试到底是什么?
我认为性能测试其实是我们对被测系统的一种质量要求。一辆车可以跑是功能,要跑得多快,能跑多少年还能跑,这就是车子的性能。好吧,既然是一种要求,那么有可能有很多系统是不需要做性能测试的,如果要测试的话,肯定需要一些性能指标,这些指标下面会略略描述,其实就是我们对系统的要求要量化的意思。
性能测试要测什么?
性能测试不是功能测试,不需要所有功能都测试,只测试关键位置。如小车的发动机,防撞能力,并不会去关心椅子舒不舒服。再说我们的测试系统,要测试什么,首先我们需要分析我们的系统数据流是怎样子的,程序的架构是怎样子的才能分析出关键位置!
我们的程序架构都是什么样子的呢?
从我们用户使用的角度来看,无非是“浏览器或app”---》“服务器”---》“浏览器或app”,
从HTTP交互上看,专业一点的人会说是如下图描述的:
从程序的部署上看,其实大概是如下图描述这样子的:
(题外知识点)WEB服务器与应用服务器是什么?
(百度百科)通俗的讲,Web服务器传送(serves)页面使浏览器可以浏览,然而应用程序服务器提供的是客户端应用程序可以调用(call)的方法(methods)。确切一点,你可以说:Web服务器专门处理HTTP请求(request),但是应用程序服务器是通过很多协议来为应用程序提供(serves)商业逻辑(business logic)。
常见WEB服务器:Apache Nginx IIS
常见应用服务器:Apache的Tomcat、IBM的websphere、Caucho Technology的Resin、Macromedia的JRun、NEC WebOTX Application Server、JBoss Application Server、BEA的WebLogic等
我的理解是,web服务器其实就是做负载均衡的一个小插件,而应用服务器就是部署解析应用程序的一个容器。很多应用服务器都自带有web服务器功能,根本不用额外部署web服务器,同样可以工作。
性能测试分类
-
负载测试:强调处理能力,测试服务器的性能指标是否在用户的要求范围内。
-
压力测试:强调在极端情况下的稳定性。
-
容量测试:关心how much。
-
并发测试:通过模拟多个用户并发操作,测试是否存在死锁,数据错误等故障。
-
配置测试:
-
基准测试:
性能指标
-
响应时间:反映完成某个业务所需要的时间。
-
吞吐量(TPS,每秒事务数):反映单位时间内能够处理的事务数目。
-
服务器资源占用:CPU占用率,内存使用率,查询Cache命中率等。
(必须保证<5s,满意<2s<可以接受,略有不满<5s,无法接受>10s)
举个例子,一般指标有下面说法:
1.HP Web Tours必须能够处理10家旅行社的并发操作
2.HP Web Tours必须能够处理10个并发操作的机票预订操作,且响应时间不能超过90秒。
3.HP Web Tours必须能够处理10家旅行社的并发航班路线查看操作,且响应时间不能超过120秒。
4.HP Web Tours必须能够处理10家旅行社的并发登录和注销操作,且响应时间不能超过10秒。
性能测试基本流程
从一张图展开我们对性能测试基本流程的认识
LoadRunner 工具使用流程
下面,从工具入手,简单的介绍下性能测试的一个实际测试过程,各位读友觉得肤浅勿喷
前提:安装性能测试工具LoadRunner
安装文档见 《LoadRunner 11 安装破解》
LR的使用步骤如下图:
对应上图,LR这工具主要由三个重要部分组成:Virtual User Generator,Controller,Analysis,下面的实际操作也是分别在这三个组件上面进行展开。
-
Virtual User Generator:录制用户业务流程并创建自动化性能测试脚本。
-
Controller:组织,驱动,管理并监控负载测试。
-
Load Generator:通过运行Vuser产生负载。
-
Analysis:用于查看,剖析和比较性能结果。
********************废话一箩筐,分享一下实践案例********************
【实例演示1-LR自带实例】
【实例演示2-微信指令礼包活动】
【实例演示3-游币服务器接口脚本】
【实例演示4-竞拍压测报告】
***微信扫一扫,关注“python测试开发圈”,了解更多测试教程!***