Web性能测试方案.docx

上传人:hw****26 文档编号:2128525 上传时间:2019-04-30 格式:DOCX 页数:17 大小:956.61KB
下载 相关 举报
Web性能测试方案.docx_第1页
第1页 / 共17页
Web性能测试方案.docx_第2页
第2页 / 共17页
Web性能测试方案.docx_第3页
第3页 / 共17页
Web性能测试方案.docx_第4页
第4页 / 共17页
Web性能测试方案.docx_第5页
第5页 / 共17页
点击查看更多>>
资源描述

1、Web 性能测试方案1 测试目的此处阐述本次性能测试的目的,包括必要性分析与扩展性描述。性能测试最主要的目的是检验当前系统所处的性能水平,验证其性能是否能满足未来应用的需求,并进一步找出系统设计上的瓶颈,以期改善系统性能,达到用户的要求。2 测试范围此处主要描述本次性能测试的技术及业务背景,以及性能测试的特点。编写此方案的目的是为云应用产品提供 web 性能测试的方法,因此方案内容主要包括测试环境、测试工具、测试策略、测试指标与测试执行等。2.1 测试背景以云采业务为例,要满足用户在互联网集中采购的要求,实际业务中通过云采平台询报价、下单的频率较高,因此云采平台的性能直接决定了业务处理的效率,

2、并能够支撑业务并发的压力。例如:支撑 100 家企业用户的集中访问,以及业务处理要求。2.2 性能度量指标响应时间(TTLB)即“time to last byte”,指的是从客户端发起的一个请求开始,到客户端接收到从服务器端返回的响应结束,这个过程所耗费的时间,响应时间的单位一般为“秒”或者“毫秒”。响应时间网络响应时间+应用程序响应时间。响应时间标准:序号 时间度量标准 结果1 小于 2s 优2 介于 2s-5s 良3 介于 5s-8s 一般4 大于 8s 差事务能力 TPS(transaction per second)服务器每秒处理的事务数;一个事务是指一个客户机向服务器发送请求然后服

3、务器做出反应的过程。客户机在发送请求时开始计时,收到服务器响应后结束计时,一次来计算使用的时间和完成的事务个数。它是衡量系统处理能力的重要指标。并发用户数同一时刻与服务器进行交互的在线用户数量。吞吐率(Throughput )单位时间内网络上传输的数据量,也可指单位时间内处理的客户端请求数量,是衡量网络性能的重要指标。吞吐率=吞吐量 /传输时间资源利用率这里主要指 CPU 利用率(CPU utilization) ,内存占用率。3 测试内容此处对性能测试整体计划进行描述,包括测试内容以及关注的性能指标。Web 性能测试内容包含:压力测试、负载测试、前端连接测试。3.1 负载测试负载测试是为了测

4、量 Web 系统在某一负载级别上的性能,以保证 Web 系统在需求范围内能正常工作。负载级别可以是某个时刻同时访问 Web 系统的用户数量,也可以是在线数据处理的数量。例如:Web 应用系统能允许多少个用户同时在线?如果超过了这个数量,会出现什么现象?Web 应用系统能否处理大量用户对同一个页面的请求?负载测试应该安排在 Web 系统发布以后,放在 Internet 上接受负载测试。3.2 压力测试在一定饱和状态下系统的处理能力,在负载测试的基础上,继续加压到一定阶段即是压力测试。压力测试通常设定 cpu 使用率达到 75%以上,内存使用率达到 70%以上,用于测试系统在压力环境下的稳定性。进

5、行压力测试是指实际破坏一个 Web 应用系统,测试系统的反映。压力测试是测试系统的限制和故障恢复能力,也就是测试 Web 应用系统会不会崩溃,在什么情况下会崩溃。黑客常常提供错误的数据负载,直到 Web 应用系统崩溃,接着当系统重新启动时获得存取权。 3.3 前端连接测试用户连接到 Web 应用系统的速度根据上网方式的变化而变化,他们或许是电话拨号,或是宽带上网。当下载一个程序时,用户可以等较长的时间,但如果仅仅访问一个页面就不会这样。如果 Web 系统响应时间太长(例如超过 5 秒钟),用户就会因没有耐心等待而离开。 另外,有些页面有超时的限制,如果响应速度太慢,用户可能还没来得及浏览内容,

6、就需要重新登陆了。而且,连接速度太慢,还可能引起数据丢失,使用户得不到真实的页面。以上需要关注的前端性能指标,主要包含以下三个指标:3.3.1 加载时间指标a.Time to First Impression表示从用户在浏览器键入 URL 按下回车键一刻开始,到页面开始有反应(用户可以在页面中看见一点点内容)为止。直观信号就是网页开始显示title。b.Time to onLoad Event表示从页面开始显示内容,到浏览器开始触发 OnLoad 函数(开始执行js)这一时间段。只有当初始的文本和所引用的对象加载完成,浏览器才开始触发 OnLoad 函数c.Time to Fully Load

7、ed表示从上一时间段末到整个网页完全加载完成(所有 OnLoad 函数以及相关的动态资源加载完成)。3.3.2 资源情况指标网页由初始的 html 文本中嵌入图片以及通过 XHR 或者修改 dom 树动态加载的内容组成,css 负责样式,js 负责行为。a. Total Number of Requests包括 html 网页请求,css、js 资源下载及其它网络请求。优化的目标之一是要尽量减少请求数。b. Total Number of HTTP 300s/400s/500s表示返回状态为 300(重定向)、400(客户端错误)、500(服务器端错误)的 http 请求。尽量避免这些请求,以

8、提高页面 load 的时间。造成这些状态的原因经常是服务器的实施、配置和部署问题。c. Total Size of Web Site构成网页元素总的大小。图片或者 js 库的增加都会对下载时间造成重要的影响。d. Total Size of Images/CSS/JSimage、css、js 在网页元素大小中占主要比例。e. Total Number of XHR(XMLHttpRequest) Requests通过 js 异步从服务器端获得数据的请求数。一些 js 框架提供了跟服务器端的更新机器,就是 XHR 请求。通过配置可以减少 XHR 请求的数目。3.3.3 网络连接指标浏览器底层的网

9、络连接对资源的下载速度有很大影响。资源的下载过程分为很多阶段。下面介绍这些阶段以及浏览器、网络、请求如何影响这些阶段的时间。a. DNS Timedns 查询的时间。网页请求会产生一次寻找该网页资源所在主机的 dns 查询。在同个域名进行网页切换不会造成新的 dns 查询。b. Connect Time指浏览器和服务器之间建立 tcp/ip 连接的时间,对于 ssl 连接包括握手的时间。网络连接过慢、使用 ssl、使用短连接而非常连接都是造成 connect time 较多的原因。c. Server Time指收到请求后服务器逻辑处理的时间,d. Transfer Time这一指标与浏览器和服

10、务器之间的连接速度相一致,通过减小传输内容或使用 cdn 来降低 Transfer Time。e. Wait Time等待时间和同一个域中服务资源的数量直接相关。每个域的浏览器的物理网络的限制,导致资源等待可用的连接。减少资源的数量,或将资源散布在不同的域,能将这一时间降低。平均等待时间的大小更能反映等待时间是否需要注意。f. Number of Domains / Single Resource Domains部署网站资源的域主机数量是很重要的,因为它影响的 DNS,连接和等待时间。专门用户资源下载的域是必要的,他将直接减少等待时间。应避免单一的资源域,否则你将为 dns 查询以及资源下载付

11、出昂贵的代价。4 测试执行此处包含性能测试的软硬件环境准备,所需测试工具与测试步骤。4.1 环境与数据准备4.1.1 负载测试主机 数量 配置详情 操作系统 数据库 中间件 测试工具 监控工具4.1.2 压力测试主机 数量 配置详情 操作系统 数据库 中间件 测试工具 监控工具4.1.3 前端连接测试略4.2 测试步骤与测试结果输出4.2.1 负载测试4.2.1.1 测试工具JmeterApache JMeter 是 Apache 组织开发的基于 Java 的压力测试工具,用于对软件做压力测试,它最初被设计用于 Web 应用测试,但后来扩展到其他测试领域。 它可以用于测试静态和动态资源,例如静

12、态文件、Java 小服务程序、CGI 脚本、Java 对象、数据库、FTP 服务器等等。4.2.1.2 测试步骤1.建立测试计划启动 jmeter 后,jmeter 会自动生成一个空的测试计划,用户可以基于该测试计划建立自己的测试计划。2.添加线程组一个性能测试请求负载是基于一个线程组完成的。一个测试计划必须有一个线程组。测试计划添加线程组非常简单。在测试计划右键弹出下拉菜单(添加Threads(Users)-线程组)中选择线程组即可。jmeter 中 每个测试计划至少需要包含一个线程组,当然也可以在一个计划中创建多个线程组,那么多个线程组之间又会怎样的顺序执行(串行还是并行)?在测试计划下面

13、多个线程是并行执行的,也就是说这些线程组是同时被初始化并同时执行线程组下的 Sampler 的。线程组主要包含三个参数:线程数、准备时长(Ramp-Up Period(in seconds)、循环次数。线程数:虚拟用户数。一个虚拟用户占用一个进程或线程。设置多少虚拟用户数在这里也就是设置多少个线程数。准备时长: 设置的虚拟用户数需要多长时间全部启动。如果线程数为 20 ,准备时长为 10 ,那么需要 10 秒钟启动 20 个线程。也就是每秒钟启动 2 个线程。循环次数:每个线程发送请求的次数。如果线程数为 20 ,循环次数为 100 ,那么每个线程发送 100 次请求。总请求数为 20*100

14、=2000 。如果勾选了“永远”,那么所有线程会一直发送请求,一到选择停止运行脚本。设置合理的线程数对于能否达到测试目标有决定性的影响。在本例中,要求得到网站首页在 20 QPS 负载情况下的响应时间,如果如果线程数量设置的过小,则很可能无法达到设定的 QPS 要求。另外,设置合理的循环次数也很重要,除了上面介绍的固定循环次数与永远外;也可以灵活的选择设定测试运行时间。勾选“调度器”,进行调度器配置。3. 添加 HTTP 请求添加完成线程组后,在线程组上右键菜单(添加-Sampler-HTTP 请求)选择 HTTP 请求。对于 jmeter 来说,取样器(Sampler)是与服务器进行交互的单元。一个取样器通常进行三部分的工作:向服务器发送请求记录服务器的响应数据记录相应时间信息4.设置 QPS 限制本次性能测试的目的是“了解云采首页在负载达到 20 QPS 时的响应时间”,因此需要控制向云采首页发送请求的负载为 20QPS。QPS : Query Per Second 每秒查询率。是一台查询服务器每秒能够处理的查询次数。在因特网上,作为域名系统服务器的机器的性能经常用每秒查询率来衡量。4.2.2 压力测试4.2.2.1 测试工具UAPRunnerUAPRunner 是一款面向树形数据结构,模拟用户(UAPRunner 中表示为

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 教育教学资料库 > 课程笔记

Copyright © 2018-2021 Wenke99.com All rights reserved

工信部备案号浙ICP备20026746号-2  

公安局备案号:浙公网安备33038302330469号

本站为C2C交文档易平台,即用户上传的文档直接卖给下载用户,本站只是网络服务中间平台,所有原创文档下载所得归上传人所有,若您发现上传作品侵犯了您的权利,请立刻联系网站客服并提供证据,平台将在3个工作日内予以改正。