测试技能分享:Web性能测试用例设计实践_web性能测试实践-程序员宅基地

技术标签: 自动化测试  性能测试  软件测试  功能测试  测试工程师  接口测试  

随着网络技术的迅速发展,尤其是WEB及其应用程序的普及,各类基于WEB的应用程序以其方便、快速,易操作等特点不断成为软件开发的重点。与此同时,随着需求量与应用领域的不断扩大,对WEB应用软件的正确性、有效性和对WEB服务器等方面都提出了越来越高的性能要求,今天我就来跟大家分享一个性能测试用例,以便帮助你更好的进行性能测试!

 

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

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

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

某网站性能测试用例分享

某网站提供会员模板下载、上传、购买、支付等功能,目前进入性能测试阶段,通过性能需求可以了解到主要有以下几个性能指标需要进行测试:
● 产品页面刷新性能
● 产品上传性能
● 产品下载性能
  目前给出的指标为:
  延迟:
  测试项 响应时间 抖动 备注
  产品页面刷新 <5秒 <2秒
  产品下载相应时间 <4秒 <2秒
  吞吐量:
  编号 项 吞吐量
Perf.T.1 所有登录用户在线状态更改频率 每10分钟1次
Perf.T.2 每日页面平均访问量 60000次
Perf.T.3 每日下载量 50000
Perf.T.4 平均每日新增会员数量 500
Perf.T.5 高峰同一模板下载量 100用户并发下载
Perf.T.6 高峰不同模板下载量 150用户并发下载
  容量:
  编号 项 容量
Perf.C.1 用户数 <=100万
Perf.C.2 活动用户数 10000
Perf.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分钟取消思考时间

总结:

一个网站优化的目的即是,最大限度的利用好服务器硬件资源提升资源利用率,减少用户请求的响应时间,提高系统吞吐量,提高系统并发数。

上面是我收集的一些视频资源包

对于软件测试的的朋友来说应该是最全面最完整的备战仓库了,为了更好地整理每个模块,我也参考了很多网上的优质博文和项目,力求不漏掉每一个知识点,很多朋友靠着这些内容进行复习,拿到了BATJ等大厂的offer,这个仓库也已经帮助了很多的软件测试的学习者,希望也能帮助到你!

关注我的微信公众号【程序员二黑】免费获取
 

版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://blog.csdn.net/weixin_53519100/article/details/115735723

智能推荐

Kernel panic – not syncing: Attempted to kill init 解决_(4) kernel panic – not syncing:attempted to kill i-程序员宅基地

文章浏览阅读1.2k次。因为业务需要关闭了selinux,系统重启后就出现 Kernel panic – not syncing: Attempted to kill ini。解决办法: 系统启动的时候,按下‘e’键进入grub编辑界面,编辑grub菜单,选择“kernel /vmlinuz-2.6.23.1-42.fc8 ro root=/dev/vogroup00/logvol00 rhgb qui_(4) kernel panic – not syncing:attempted to kill init !

[9] ADB 查看设备信息_adb display_id-程序员宅基地

文章浏览阅读2.5k次,点赞6次,收藏5次。查看设备信息型号电池状况屏幕分辨率屏幕密度显示屏参数android_idIMEIAndroid 系统版本IP 地址Mac 地址CPU 信息内存信息更多硬件与系统属性型号adb shell getprop ro.product.model我这使用的是锤子手机做测试:电池状况adb shell dumpsys battery其中 scale 代表最大电量,level 代表当前电量。上面的输出表示还剩下 90% 的电量。屏幕分辨率adb shell wm size屏幕密度adb s_adb display_id

如何使用ChatGPT快速构建一个网站模板,你花了多久弄明白架构设计-程序员宅基地

文章浏览阅读814次,点赞19次,收藏17次。关于ChatGPT这个AI工具,它可以实现的事情,远不止实现一个网站页面模板,它可以做的事情还非常多,ChatGPT的出现,算是AI领域的一个重大突破,为啥这样说,因为,它的语言模型更加接近人类语言,不会像一个机器人那样死板,它会有所变通,如果你也喜欢AI,热爱机器学习的话,可以自行下载安装一个来体验一下,在使用的过程种,用英文语言跟它交流会比用中文更加友好。当然,并不是说不可以用中文,中文也一样可以的,它做了大量的训练,支持很多国家的语言。

vue点击选中图片并以base64格式传向后台_vue将base64上传给后端nodejs-程序员宅基地

文章浏览阅读1.5k次。input标签中的写法&amp;lt;input type='file' class=&quot;uploadphoto&quot; @change=&quot;uploadphoto($event)&quot; ref=&quot;inputer&quot; multiple accept=&quot;image/png,image/jpeg,image/gif,image/jpg&quot;&amp;gt;函数中_vue将base64上传给后端nodejs

DC-DC低压升高压线性控制可调输出模块电源12V24V48V转0-500V/1000V/1100V/1500V/2000V/3000V/4000VDC控制信号0-5V/0-10V/0-3.3V-程序员宅基地

文章浏览阅读899次,点赞30次,收藏19次。该模块电源的输入电压分为: 10~18V、18~36V及36~72VDC标准(2:1)宽输入电压范围(宽电压输入模块电源是指输入电压可以允许在很宽的范围内变化)。输出最高电压:500V、1000VDC、1100VDC、1500VDC、2000VDC、2500VDC、3000VDC、4000VDC等,具有功率密度大,输出功率高,应用范围广等优点。DC/DC直流升压线性可调高压电源模块12V24V转0-1000V/2000V/3000VDC。输出电压Vout:0-1000VDC;0%~100%负载范围。

elastic-job的elastic-job-lite-console部署_elastic job console进行任务配置-程序员宅基地

文章浏览阅读237次。环境准备:jdk,maven,elastic-job源码elastic-job官网地址http://elasticjob.io/index_zh.html源码github地址:https://github.com/elasticjob/elastic-job想要安装运行elastic控制台你要做的有以下几步:1.首先在github上拉取源代码到你本地2.然后运行cmd命令,切换..._elastic job console进行任务配置

随便推点

Qt 根据PCM获取分贝 并自动调节电脑音量_qt audio分貝-程序员宅基地

文章浏览阅读2.2k次。需求:根据现场环境,自动调节音量一,思路用一个线程不停采集PCM数据,并转化为分贝数。根据事先设定好的分贝区间,来实时检测现场的分贝数,并动态调整电脑的音量。二,参考(1)https://blog.csdn.net/weixin_38416696/article/details/98953072Qt采集PCM数据(2)https://blog.csdn.net/zoul..._qt audio分貝

sql server management studio 2012(ssms)-连接多个数据库_ssms记录多个连接-程序员宅基地

文章浏览阅读5.6k次。sql server management studio 2012(ssms)-连接多个数据库: ip,端口号_ssms记录多个连接

PyQt(Python+Qt)学习随笔:键盘焦点和逻辑焦点(Logic Focus与Keyboard Focus )_keyboard focusable定位-程序员宅基地

文章浏览阅读1.6k次。老猿Python博文目录专栏:使用PyQt开发图形界面Python应用老猿Python博客地址Qt中的焦点有键盘焦点和逻辑焦点(Logic Focus与Keyboard Focus )的区分,键盘焦点就是整个操作系统桌面上可以响应键盘输入的地方,整个桌面在某个时刻只有一个地方能接受键盘的输入,因此整个桌面在某个时刻只可能有一个键盘焦点。逻辑焦点并不是真正的焦点,它只是在桌面上某个范围内..._keyboard focusable定位

react国际化文字图片样式配置,最好有redux基础在看_import intlmessageformat-程序员宅基地

文章浏览阅读678次。因为所做项目需要应用国际化,语言包用的是intl-messageformat的插件,自己根据需求又修改的,这样文字的问题配置js就可以解决了。Intl对应的文件内容:import IntlMessageFormat from 'intl-messageformat';import zh from '../locales/zh-CN';import en from '../loca..._import intlmessageformat

IOS引用三方framewrok的头文件出现'xxxxx/xxxx.h' file not found问题解决方法_ios ***.h' file not found-程序员宅基地

文章浏览阅读8.1k次。IOS引用三方framewrok的头文件出现'xxxxx/xxxx.h' file not found问题解决方法例如:xxxxxx'MAMapKit/MAMapKit.h' file not found我们平时添加三方framework一般会这么设置。小伙伴们,如果你遇到了上面说的错就看一下下面这张图是否做了同样的设置。_ios ***.h' file not found

CCleaner怎么清理软件缓存 CCleaner清理要勾选哪些 ccleanerfree下载-程序员宅基地

文章浏览阅读536次,点赞5次,收藏9次。步骤一:打开CCleaner软件,点击【自定义清理】,在文件栏中勾选出缓存文件,然后点击【运行清理程序】(其中cookie、session、application、cache、redis都是缓存文件)。步骤六:点击【自定义清理】,在其中勾选文件,然后点击【运行清理程序】。步骤二:清理后CCleaner会将这些文件从PC端删除,如果想要恢复这些文件,可以点击工具栏中的【工具】。步骤一:依次点击【工具】,【卸载】,选中平时不需要的文件,点击【卸载(I)】,可以把软件及其配件一同卸载。图一:自定义清理功能展示。_cclean

推荐文章

热门文章

相关标签