测试技能分享: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

智能推荐

已解决(selenium操作火狐浏览器报错)TypeError: __init__() got an unexpected keyword argument ‘firefox_options‘-程序员宅基地

文章浏览阅读1.6w次,点赞8次,收藏18次。已解决(selenium操作火狐浏览器报错)TypeError: __init__() got an unexpected keyword argument ‘firefox_options‘_typeerror: __init__() got an unexpected keyword argument 'chrome_options

python方差_Python编程:方差、标准差、均方差、均方根值、均方误差、均方根误差...-程序员宅基地

文章浏览阅读315次。python实现代码# -*- coding: utf-8 -*-import mathdef get_average(records):"""平均值"""return sum(records) / len(records)def get_variance(records):"""方差 反映一个数据集的离散程度"""average = get_average(records)return sum(..._pycharm方差计算代码

jmeter接口测试实例(五)对cookies的自动管理,实现登录后修改用户信息_jmeter中post请求如何更改每次的用户名-程序员宅基地

文章浏览阅读902次。一、前提:cookie是保存在本地,用来记录用户信息,最典型的作用是判断用户是否已经登录。如果一个接口,需要用户登录后,才能进行操作,如下,修改用户信息那么这时候,就需要用到cookie去识别这个登录的用户,因为要修改的是这个登录的用户的信息。二、使用1、jmeter.properties 中 将CookieManager.save.cookies 设置为true。完成后重启jmet..._jmeter中post请求如何更改每次的用户名

python新建项目没有venv_pycharm配置venv虚拟环境-程序员宅基地

文章浏览阅读7.5k次,点赞2次,收藏2次。虚拟环境的好处:搭建独立的python运行环境,不与其他产生冲突虚拟环境有助于包的管理和防止版本冲突3.删除卸载方便虚拟环境的搭建:1.进入python的Scripts下,执行:pip3 install virtualenv2.选择建立虚拟环境的文件夹,我这边是直接在D盘software下面创建了一个virtualenv,如图:image.png3.创建虚拟环境:virtualenv --no-s..._pycharm没有venv怎么办

M1芯片的Mac在开发iOS项目时遇到的问题汇总(模拟器无法运行,Cocoapods错误等)_oc cocospods 安装依赖库之后不能使用模拟器了-程序员宅基地

文章浏览阅读2.3k次。--pod install时报错,且错误提示中有“ffi”字眼,提示错误:/Library/Ruby/Gems/2.6.0/gems/ffi-1.15.3/lib/ffi/library.rb:275: [BUG] Bus Error at 0x00000001042fc000 ruby 2.6.3p62 (2019-04-16 revision 67580) [universal.arm64e-darwin20]解决方案:juejin.cn/post/698064…--pod repo upd_oc cocospods 安装依赖库之后不能使用模拟器了

编辑器VSCode使用心得-程序员宅基地

文章浏览阅读540次。工欲善其事必先利其器,趁手的工具会使我们开发事半功倍。市面上的编辑器我用过许多,编辑器使用经历Notepad++,(开源)这个应该是最轻量级的吧,查看代码还好,编辑代码就算了官网地址:https://notepad-plus-plus.org/Brackets,(开源)这个也不错,github-star:30k了,上次发布版本是6月..._vscode nextick

随便推点

西部数码mysql怎么用织梦_[原创]织梦程序(DeDeCms)常见问题集锦-程序员宅基地

文章浏览阅读95次。前言:织梦程序是最知名的cms程序,使用广泛,但很多朋友对织梦还不太熟悉,通过工单分析得知,经常容易出现本文中的问题,本次统一整理出来,希望对新手朋友有帮助,本文写的非常详细,请仔细阅读,一、描述:“dedecms错误警告:连接数据库失败,可能数据库密码不对或数据库服务器出错”如图:分析:用织梦程序制作的站点做迁移服务器后容易出现这个问题,原因是程序中设置的数据库连接信息有误连接不到数据库,解决方..._西部数码支不支持织梦的程序

免安装mysql启动3534错误处理_mysql 免安装版本启动时 3534出错_mysql-程序员宅基地

文章浏览阅读295次。上午在win7下安装MYSQL,只到“net start mysql”这一步报错:3534的错误:于是在百度中搜索关键字“mysql服务无法启动3534”。参考以下两个链接中的方法,解决了3534启动失败的问题:mysql服务无法启动3534错误。http://jingyan.baidu.com/article/219f4bf7e978fcde442d38a9.htmlhttp://blog.cs..._免安装mysql启动失败

评测了10款画流程图软件,这4款最好用!(完全免费)_好用的流程图软件免费-程序员宅基地

文章浏览阅读5.1w次,点赞58次,收藏295次。最近在做项目和复习的时候,用了不少流程图软件给我帮了大忙,所以今天就来分享分享你在网上搜索一下流程图软件,能找到很多很多:但这些软件多数并不是专门绘制流程图的软件,它可能是一些思维导图软件、或者说一些产品交互原型图软件,使用时或多或少有些麻烦。而且,普遍这些软件缺点也很多,比如:只有在线版:ProcessOn(https://www.processon.com)导出功能收费:迅捷流程图软件体积庞大:VISIO就没有一款简单易用、绿色免费的流程图软件吗?阿虚花了不少时间,挨着_好用的流程图软件免费

在CentOS6.9安装Azkaban3.50.0_centos6.9 azkaban-程序员宅基地

文章浏览阅读1.4k次。cd /data/install_pkgwget https://github.com/azkaban/azkaban/archive/3.50.0.tar.gztar -zxvf 3.50.0.tar.gzvi /data/install_pkg/azkaban-3.50.0/azkaban-common/src/main/java/azkaban/utils/EmailMessage..._centos6.9 azkaban

Java项目基于ssm+vue.js的学生宿舍维修服务平台附带文章和源代码设计说明文档ppt-程序员宅基地

文章浏览阅读586次,点赞23次,收藏30次。博主介绍:CSDN特邀作者、985计算机专业毕业、某互联网大厂高级全栈开发程序员、码云/掘金/华为云/阿里云/InfoQ/StackOverflow/github等平台优质作者、专注于Java、小程序、前端、python等技术领域和毕业项目实战,以及程序定制化开发、全栈讲解、就业辅导、面试辅导、简历修改。精彩专栏 推荐订阅2023-2024年最值得选的微信小程序毕业设计选题大全:100个热门选题推荐2023-2024年最值得选的Java毕业设计选题大全:500个热门选题推荐。

ultralytics的YOLOv8改为自用版本_from ultralytics.utils.plotting import annotator, -程序员宅基地

文章浏览阅读944次。由于需要用pyqt给yolov8做一个界面,而ultralytics一层嵌一层,不是很好用,所以对它的这个源码进行精简,具体代码我放到了这里,ultralytics使用的版本是8.0.54。具体代码如下,需要根据自己的情况来修改data的配置文件以及权值文件,在代码的49和50行。_from ultralytics.utils.plotting import annotator, colors, save_one_box modul

推荐文章

热门文章

相关标签