事半功倍:学会WEB性能测试用例设计模型

2489 篇文章 33 订阅
1785 篇文章 18 订阅

性能测试用例设计通常不会一次设计到位,是一个不断迭代完善的过程,即使在使用过程中,也不是完全按照设计好的测试用例来执行,需要根据需求的变化进行调整和修改。

WEB性能测试用例设计模型是一个内容全面比较容易组织和调整的模型架构。

预期性能指标测试用例

指一些十分明确的,在系统需求设计阶段预先提出的,期望系统达到的,或者向用户保证的性能指标。

针对每个指标都要编写一个或者多个测试用例来验证系统是否达到要求,预期性能指标测试用例主要参考需求和设计文档,把里面十分明确的性能要求提取出来,指标中通常以单用户为主。

如:对于普通的客户端,系统上传5MB以内的文件,速度不低于2MB/S。

  • 输入动作:选择1-5MB的文件并上传,用秒表计时。
  • 期望的性能:上传的时间小于等于2.5S。
  • 实际性能:上传的时间2.29秒。

这类用例通常以手工的方式执行。

用户并发性能测试用例

用户并发测试主要通过逐渐增加用户数量来加重系统负担,并通过测试工具对应用系统,各种服务器资源进监控,用户并发测试可以是正常数量用户和特殊数量用户进行并发,用户并发测试是系统性能测试的核心部分,涉及压力测试、负载测试、强度测试等多方面的内容。

独立业务性能测试实际就是核心业务模块的某一业务的并发性能测试,可以理解为单元性能测试。

组合业务的性能测试是一个或者多个模块的多个业务同时进行并发性能测试,可以理解为集成性能测试,单元性能测试和集成性能测试两者紧密相连合并称为用户并发性能测试。

用户并发测试要求选择有代表性的关键的业务来设计测试用例,以便更有效的评测系统性能。其测试用例设计文档的基本的编写思想是按照系统的体系结构进行编写。

独立核心模块用户并发性能的测试用例设计

完全一样功能的并发测试:主要检查系统的健壮性,从技术角度讲就是检查程序对同一时刻并发操作的处理。

完全一样操作的并发测试:基本要求是在同一时刻进行完全一样的操作,这类测试的目的是验证核心模块在大量用户使用同一功能时是否正常工作。

相同/不同功能的子功能并发:每个不同的子功能都模拟一定的用户数量,通过工具来控制并发情况。

如发送与接收邮件模块的一个测试用例:

功能:当在线用户达到高峰时,发送和接收普通邮件正常,保证2000个以内用户可以同时访问邮件系统,能够正常发送和接收邮件。

目的:测试系统2000个以内的用户同时在线时能否正常发送邮件。

方法:采用LOADRUNNER的录制工具录制一个邮件发送过程测试,要监视数据库服务器和WEB服务器的性能,其中发送的邮件为普通邮件,附件大小不超过1MB。

并发用户数与事务执行情况:并发用户数、事务平均响应时间、事务最大响应时间、平均每秒处理事务数、事务成功率、每秒点击率、平均流量。

并发用户数与数据库主机:并发用户数、CPU利用率、MEM利用率、磁盘I/O参数、DB参数。

并发用户数与应用服务器的关系表:并发用户数、CPU利用率、MEM利用率、磁盘I/O参数。

组合模块用户并发性能测试的用例设计

组合模块的性能测试是最能反映用户实际使用情况的测试,它把前面系统中具有耦合关系的模块组合起来进行测试,可以理解为集成性能测试。

组合模块并发测试可以真实反映用户使用系统的情况,可以从需求、设计文档、现场调查、系统采集数据获取用户场景。

具有耦合关系的核心模块进行组合并发测试:主要测试在多用户并发条件下,一些存在耦合关系或者数据接口的模块是否正常运行。

彼此独立的,内部具有耦合关系的核心模块组的并发测试:这类测试的对象是多个模块组,每个组相关的模块具有一定的耦合关系,组与组之间关系相互独立,主要站在用户的角度考虑问题。

基于用户场景的并发测试:选择用户的一些典型场景进行测试,测试对象不限制于核心模块或非核心模块。

组合模块用户并发性能测试的前两种类型仍然是针对核心模块的同时也关注用户场景,这样做的原因是大多数的性能问题都是由用户经常使用的核心模块一起的。

可以看出,组合模块的用户并发性能测试既关注功能测试,也关注性能测试,通过发现一些接口和综合性能方面的问题,使系统更加稳定的运行。

如下某OA系统组合模块的一个测试用例:

功能:在线用户数达到高峰时,用户可以正常使用系统,目标是满足500个以内用户同时在线使用系统。

目的:测试500个以内用户同时在线时能否使用比较常见的模块:公文系统、电子公告、网上论坛。

方法:采用LOADRUNNER的录制工具录制三项业务:

业务1,在公文系统内进行打开、修改等操作;

业务2,在电子公告系统内察看发布公告;

业务3,在网上论坛系统内发布帖子、查看文章;

每项业务分配一定数量的用户,利用LOADRUNNER来完成。

并发用户数与事务执行情况:

业务1、业务2、业务3事务平均响应时间;

业务1、业务2、业务3事务最大响应时间;

业务1、业务2、业务3平均每秒事务数;

业务1、业务2、业务3平均成功率、每秒点击率、平均流量。

并发用户数与数据库主机:CPU利用率、MEM利用率、磁盘I/O情况、DB参数。

并发用户数与应用服务器的关系:CPU利用率、MEM利用率、磁盘I/O情况。

疲劳强度与大数据量测试

疲劳强度测试:主要特点是长时间对目标测试系统加压,目的是测试系统的稳定性,持续时间一般在1小时以上。

疲劳强度测试属于用户并发测试的延续,因此核心内容仍然是核心模块用户并发和组合模块用户并发,在编写测试用例时需要编写不同参数或者负载条件下的多个测试用例,可以参考用户并发性能测试用例的设计内容,通常修改相应的参数就可实现所需要的测试场景。

如下疲劳强度测试用例:

  • 极限名称:200个用户同时使用系统的3个模块。
  • 前提条件:测试客户端要有足够的资源。
  • 运行时间:连续运行16小时。
  • 测试方法:采用LOADRUNNER录制3个任务,然后开始对系统加压。
  • 输入动作:

任务1、任务2、任务3;

持续时间:任务1,20小时;任务2,21小时;任务3,16小时;

用户数量、现象。

大数据量测试:主要针对对数据库有特殊要求的系统进行的测试,如电信业务系统的手机短信业务。

可以分为实时大数据量,主要目的是测试用户较多或者某些业务产生较大数据量时,系统能否稳定运行。极限状态下的测试,测试系统使用一段时间即系统累计一点量的数据时能否正常运行业务。

前面两种的结合,测试系统已经累计了较大数据量时,一些实时产生较大数据量的模块能否稳定工作。

如下大数量测试用例:

  • 功能:数据库中的短信息表可以保存所有不能及时发送的短信息,用户上线后又能及时发送已经保存的信息。
  • 并发用户数与事务执行情况:输入说明、事务平均响应时间、事务最大响应时间、平均每秒处理事务数、事务成功率、每秒点击率、平均流量。

网络性能测试

基于硬件的测试:主要是通过各种软件工具,仪器等测试整个系统的网络运行环境,一般由系统集成人员负责。

基于应用系统的测试:主要测试用户数目与网络带宽的关系,通过测试工具准确展示带宽、延迟、负载和端口的变化是如何影响用户响应时间的。

网络性能测试的用例设计主要针对后一种类型,可以独立进行测试,也可以和用户并发性能测试,疲劳强度与大数据量测试结合起来,在原有的基础上采用工具来调整网络设置,从而达到监视网络性能的目的。

如下网络性能测试用例;

  • 目的:测试系统运行在不同网络带宽条件下的性能情况,以及与并发用户数量的关系。
  • 方法:在不同的广域网带宽下使用LOADRUNNNER录制邮件系统的相关事务操作脚本,然后以不同的带宽和并发用户数进行压力测试,并记录在各种用户条件下各种事务的响应情况,同时记录路由器端口的流量和其他数据。

服务器性能测试

服务器性能测试主要是对数据库、WEB服务器、操作系统的测试,目的是通过性能测试找出服务器的瓶颈,为系统扩展,优化提供相关的依据。

分为:

  • 高级服务器性能测试:在特定的硬件条件下,由数据库、WEB服务器、操作系统相应领域的专家进行的性能测试。
  • 初级服务器性能测试:在系统运行前面的性能测试时,通过测试工具对数据库、WEB服务器、操作系统的使用情况进行监控,然后进行综合分析,找出系统瓶颈。

性能测试的主要目的是在软件功能良好的前提下,发现系统瓶颈并解决,而软件和服务器是产生瓶颈的两大来源,因此服务器测试一定要和前面的测试结合起来进行。

在进行用户并发性能测试、疲劳强度与大数据量性能测试时,可以完成对服务器的监控并对服务器性能进行评估。这类部分的测试用例一般不必单独编写。

软件测试工程师自学教程:

这才是2022最精细的自动化测试自学教程,我把它刷了无数遍才上岸字节跳动,做到涨薪20K【值得自学软件测试的人刷】

接口性能测试 — 软件测试人必会618实战场景分析

软件测试工程师月薪2W以上薪资必学技能 — Python接口自动化框架封装.

美团面试真题_高级测试25K岗位面试 — 软件测试人都应该看看

测试开发之全面剖析自动化测试平台 — 软件测试人的必经之路

软件测试必会_Jmeter大厂实战 — 仅6步可实现接口自动化测试

Jmeter实战讲解案例 — 软件测试人必会

最后: 可以在公众号:伤心的辣条 ! 自行领取一份216页软件测试工程师面试宝典文档资料【免费的】。以及相对应的视频学习教程免费分享!,其中包括了有基础知识、Linux必备、Shell、互联网程序原理、Mysql数据库、抓包工具专题、接口测试工具、测试进阶-Python编程、Web自动化测试、APP自动化测试、接口自动化测试、测试高级持续集成、测试架构开发测试框架、性能测试、安全测试等。

我推荐一个【Python自动化测试交流群:746506216】,大家可以一起探讨交流软件测试,共同学习软件测试技术、面试等软件测试方方面面,助你快速进阶Python自动化测试/测试开发,走向高薪之路。

喜欢软件测试的小伙伴们,如果我的博客对你有帮助、如果你喜欢我的博客内容,请 “点赞” “评论” “收藏” 一 键三连哦!

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值