Web性能测试实例设计分析

首先,为什么要进行性能测试?

性能不佳的应用通常无法实现企业预期利益,花费了大量时间和金钱,但是却在用户中失去了信誉。

相比功能测试和验收测试,性能测试容易被忽略,往往在发布之后碰到性能和扩展性问题才意识到重要性。

Web性能测试实例设计分析

某网站性能测试用例分享

某网站提供会员模板下载、上传、购买、支付等功能,目前进入性能测试阶段,通过性能需求可以了解到主要有以下几个性能指标需要进行测试:● 产品页面刷新性能● 产品上传性能● 产品下载性能  目前给出的指标为:  延迟:  测试项 响应时间 抖动 备注  产品页面刷新 <
5秒 <
2秒  产品下载相应时间 <
4秒 <
2秒  吞吐量:  编号 项 吞吐量Perf.T.1 所有登录用户在线状态更改频率 每10分钟1次Perf.T.2 每日页面平均访问量 60000次Perf.T.3 每日下载量 50000Perf.T.4 平均每日新增会员数量 500Perf.T.5 高峰同一模板下载量 100用户并发下载Perf.T.6 高峰不同模板下载量 150用户并发下载  容量:  编号 项 容量Perf.C.1 用户数 <
=100万Perf.C.2 活动用户数 10000Perf.C.3 模板中心总用户数 <
=25万  根据如上性能需求及数据我们该如何设计性能测试用例及场景呢?(可以说给出的性能需求很垃圾,没有丝毫价值,但没办法还是点做啊)  首先,我不去在乎它要求的性能是什么,我只需要去做在一定的测试环境下对系统进行压力测试,找到各个性能指标的临界点就好了,至于是否达到性能指标,在和性能需求对照编写测试报告即可。  所以,针对这几个需要进行性能测试的页面,我们做一下分析,如何设计场景才能尽可能准确地体现出系统的性能:  先说一下搜索页面  搜索页面根据对项目的了解,搜索后,将所有符合条件的结果遍历出来,显示在前台,每页的显示数量是一定的,超出的部分分页显示。根据上面的描述我们可以看出搜索结果是在将符合条件的所有结果集均发送到前台页面,对于页面显示对性能的消耗我们可以忽略不计,主要的压力来自数据的传输、sql的执行及应用服务器的处理过程,所以我可以从两个方面设计场景:a、虚拟用户一定,不同数据库数量级的情况下,搜索的性能  如何确定虚拟用户的数量成为一个关键,我们可以让客户提供一个常规情况下每天访问用户数(如果没有实际数据可参考,可以根据产品方案中期望的用户数来代替),我们就用这个用户数来进行测试;再来分析一下不同的数据库数量级,如果系统运营1年的产品数据量是5万条,那么我们就根据这个值分别取1W条、3W 条、5W条、10W条、20W条数据量来进行测试(具体的分法可以根据实际情况而定),所以对于这个测试目标,我们可以设计5个场景进行:  虚拟用户数数据库数量级录制页面并发用户数执行时间思考时间100 10000 搜索页面随机产生30分钟加入思考时间100 30000 搜索页面随机产生30分钟加入思考时间100 50000 搜索页面随机产生30分钟加入思考时间100 100000 搜索页面随机产生30分钟加入思考时间100 200000 搜索页面随机产生30分钟加入思考时间b、一定数据库数量级,不同量虚拟用户的情况下,搜索的性能  我们定下来一个常规的数据库数据量,在数据量不变的情况下逐步增加虚拟用户数,测试一下不同虚拟用户压力下系统的性能  虚拟用户数数据库数量级录制页面并发用户数执行时间思考时间50 50000 搜索页面随机产生30分钟加入思考时间80 50000 搜索页面随机产生30分钟加入思考时间100 50000 搜索页面随机产生30分钟加入思考时间120 50000 搜索页面随机产生30分钟加入思考时间150 50000 搜索页面随机产生30分钟加入思考时间产品上传  影响上传性能的主要因素有上传文件的大小和上传的请求数,所以我们就从这两个方面设计用例。a、虚拟用户数一定,上传不同大小的文件  虚拟用户数上传文件大小录制页面并发用户数执行时间思考时间50 100k 上传页面随机产生30分钟取消思考时间50 300k 上传页面随机产生30分钟取消思考时间50 500k 上传页面随机产生30分钟取消思考时间50 800k 上传页面随机产生30分钟取消思考时间50 1M 上传页面随机产生30分钟取消思考时间b、上传文件大小一定,不同量的虚拟用户  虚拟用户数上传文件大小录制页面并发用户数执行时间思考时间20 300k 上传页面随机产生30分钟取消思考时间50 300k 上传页面随机产生30分钟取消思考时间80 300k 上传页面随机产生30分钟取消思考时间100 300k 上传页面随机产生30分钟取消思考时间产品下载  影响下载性能的主要因素有下载文件的大小和下载的请求数,所以我们就从这两个方面设计用例a、虚拟用户数一定,下载不同大小的文件  虚拟用户数下载文件大小录制页面并发用户数执行时间思考时间50 100k 下载页面随机产生30分钟取消思考时间50 300k 下载页面随机产生30分钟取消思考时间50 500k 下载页面随机产生30分钟取消思考时间50 800k 下载页面随机产生30分钟取消思考时间50 1M 下载页面随机产生30分钟取消思考时间b、下载文件大小一定,不同量的虚拟用户  虚拟用户数下载文件大小录制页面并发用户数执行时间思考时间20 300k 下载页面随机产生30分钟取消思考时间50 300k 下载页面随机产生30分钟取消思考时间80 300k 下载页面随机产生30分钟取消思考时间100 300k 下载页面随机产生30分钟取消思考时间



Web应用程序的性能可以决定一个企业的成功或失败。所以,Web性能测试对于企业应用程序非常重要。本文将重点介绍Web性能测试实例设计和分析。
第一部分:测试前的准备工作
在开始Web性能测试之前,需要进行确保应用程序的一些准备工作。这里提供一些关键点:
1.明确测试目标:确定测试将覆盖的功能以及要达到的性能指标。
2.测试方案设计:选择测试工具、数据集、测试脚本、服务器和网络环境等。
3.测试环境准备:模拟一个实际生产环境,包括硬件、软件和网络。
第二部分:分析测试结果
通过分析测试结果,可以更好地了解Web应用程序的性能,包括哪些是优秀的,哪些需要改进。下面按照简单测试工具和高级测试工具为两个角度分析结果。
1.简单测试工具,如curl和LoadRunner
简单测试工具是很多人使用的工具,对于这类工具的测试结果,应该着重关注以下几点:
- 响应时间:确定每个请求的响应时间,并对慢的请求和响应时间进行调查。
- 吞吐量:确定每秒钟处理的请求数量,并尝试在给定的时间段内打破记录。
- 错误率:确定错误率并检查错误日志。
2.高级测试工具,如JMeter和Gatling
高级测试工具一般具有更完整的测试环境和报告分析,使用这类工具测试结果的分析方式应该更全面化和针对性。这里的分析思路将包括下面的几个途径:
- 通过View Results Tree了解请求的每一个详细信息。
- 使用聚合报告并按时间段进行修改,以确定吞吐量和响应时间。
- 使用图表和直方图查看相对于其他指标的响应时间分布。
- 设置阀值并过滤到达或超过这些阀值的结果。
第三部分:性能优化
分析测试结果之后,我们需要根据分析结果进行性能优化,建议从以下几个方面入手。
1.数据库优化:使用索引和开启慢查询日志等方式。
2.缓存优化:在查询结果和Web页面中缓存重复的数据,如域名、图片和脚本。
3.网页设计优化:简化页面和脚本,将页面分成区块或页面片。
结论
Web性能测试可以帮助企业找到并纠正性能问题,提高客户的满意度。本文以实例的方式介绍了Web性能测试的设计和分析过程,希望对读者在Web开发和性能测试方面有所帮助。