WEB 性能测试用例设计以及总结

  WEB 性能测试用例设计模型是设计性能测试用例的一个框架,在实际项目中,需要对其进行适当的剪裁,从而确定性能测试用例的范围和类别。剪裁的依据是性能测试策略和测试范围,在测试用例主要框架确定后,接下来就是如何设计各类性能测试用例中具体数据。

  基于用户的测试多在用户现场进行,为了测试目的而进行的测试多在开发环境即开发团队的内部进行。为了测试目的而设计的测试用例场景主要根据测试设计人员的经验来进行,但是仍要参考用户的实际场景,用户实际使用场景是设计所有测试用例的依据。

  性能测试用例设计首先要分析出用户现实中的典型场景,然后参照典型场景进行设计。

  比较常见的用户场景有如下三种

  一天内不同时段的使用场景

  系统运行不同时期的场景

  不同业务模式下的场景

  各类测试用例设计的细节

  1. 确定用户使用系统情况的方法

  确定用户对系统的使用情况是设计用例具体数据的基础,后面并发用户数据设计,疲劳强度设计以及各种场景设计都要依赖对用户使用系统情况的分析,分析用户使用情况经常采用现场调查和分析系统日志两种方法:

  用户现场调查:通过和用户进行沟通,可以确定用户的人员组成情况,这类方法适用于用户群体固定且目标测试系统没有投产前的情况。

  分析系统日志:当用户比较分散,现场调查比较困难时,可以采用对系统日志进行分析的方法,作为对用户现场调查的补充。

  2. 并发用户数量设计

  设计并发用户数量前,首先要了解确定系统最大并发用户数量的方法可,以根据系统的最大使用人数或者最大在线数量来评估最大并发用户数量的方法:

  极限法:取最大在线用户数作为最大并发数,这种方法适用于系统已经投产目标用户群体不确定的门户网站,可以通过分析日志来进行测试,也可以使用系统已经注册的用户数量作为系统的用户数量,按照经验公式来估算最大用户数量。

  用户趋势分析:对软件生存周期内的用户未来走势进行分析,预测系统可能达到的最大使用用户数目,从而估算系统的最大并发用户数目,这种方法多用于用户数目逐渐增多的情况。

  经验评估法:多用于系统的使用用户数目相对稳定而且比较明确的系统。

  并发用户数量的设计基本是按照最大并发用户的数量的百分比来设计的,对于某一特定的用例,需要注意:

  一、按照各类用户同时递增的方式来设计用户数量,是为了按照由浅入深的方法来发现系统的瓶颈;

  二、并发用户的最大值一般不会超过前面计算的最大并发用户数量的 20% ,除非是为了测试系统能支持的最大并发用户数量;

  三、设计用户数量时要考虑成本,因为每组用户数都意味着至少执行一次测试;

  3. 系统不同时间段场景的设计

  不同时间段的场景更接近用户使用情况,它也是设计核心模块和组合模块并发性能测试用例的基础,不同时间段场景分析的数据主要是前面的需求分析和日志分析结果。

  不同时间段场景的设计基本原则有两个:一是选择典型的场景进行测试,尤其要选择场景中并发用户数目较大的场景;二是要覆盖全面,设计出的用例要覆盖到压力可能较大的时间段,用户场景的设计一般与后面的业务模式结合起来进行。

  4. 业务模式的设计

  业务模式的设计是不同时间段场景设计的特例,也是设计核心模块和组合模块并发性能测试用例的基础,设计业务模式的目的是专注于某些功能模块的组合,按时间段来设计场景通常会涉及很多模块,如果系统存在的由应用软件引起的瓶颈则很难定位,所以才抽象一些特定的业务模式来进行用例的设计。

  按照业务模式和时间段的场景来设计性能测试用例时,会涉及到如何设计每个模块并发用户数目的问题,通常会取各个相关模块在24小时内最大的并发用户数目进行组合。

  5. 大数据量测试用例的设计

  历史数据相关的大数据量测试设计与并发用户的测试设计很类似,首先要确定系统数据的最长迁移周期,确定了系统的最大数据量后,接下来选择一些前面的核心模块或者组合模块的并发用户测试用例作为其主要内容即可。

  运行时大数据量测试主要根据模拟系统运行时可能产生的大数据量来进行测试,这类测试用例通常根据实际情况去分析设计。

  6. 一些特定测试用例的设计

  疲劳强度测试,最大用户测试,容量测试等一些特殊的测试用例设计,根据用户的需求进行,这类用例的相关要求通常十分明确。

  性能测试用例最重要的是注意用例间的关系,孤立的设计各类用例只能增加测试成本,浪费人力。性能测试用例设计人员应该追求设计既能覆盖性能测试需求,又能以较低的成本来执行测试用例。

  总结

  1. 测试用例可用性总结

  对于一个比较完善的性能测试项目,经常会有一些测试用例不能执行,因此测试完成后应该分析哪些用例不能执行以及不能执行的原因,这样可以为下次测试打好基础。

  2. 用例执行效果分析

  通过对用例执行效果进行分析,可以为升级或者开发新的性能测试用例提供有利的参考,不是所有的用例都能导致系统瓶颈的出现,因此应该分析哪些用例能够发现系统问题,那些用例执行时没有太大效果。

  分析那些设计好的用例不但有助于以后设计用例,还可以为再次执行提供参考,当下次测试进度压力较大时可以先执行重要的用例,跳过那些尝试性的,不容易发现问题的用例。

  3. 用例执行时间分析

  分析用例的执行时间是为下次规划性能测试提供参考,由于很多用例执行时间不是特别确定,导致性能测试计划也具有一定的不确定性,通过分析用例的执行时间可以为以后的制定测试计划提供参考。

  总之,性能测试用例的设计是需要通过不断分析总结才能做好,不但要分析性能测试用例的可用性、执行效果、执行时间,还应该分析用例的设计方法、设计思路等。

WEB 性能测试用例设计以及总结的更多相关文章

  1. WEB性能测试用例设计

    性能测试用例主要分为预期目标用户测试,用户并发测试,疲劳强度与大数据量测试,网络性能测试,服务器性能测试五大部分,具体编写测试用例时要根据实际情况进行裁减,在项目应用中遵守低成本,策略为中心,裁减,完 ...

  2. [Tommas] ERP系统测试用例设计1(转)

    问题: 1.如何进行ERP系统测试用例设计? 2.ERP系统测试用例设计过程? 3.ERP系统测试用例设计的方法? ERP系统本身是一种业务流程很复杂,单据报表众多,逻辑性很强的系统,质量保证方面很难 ...

  3. Web信息架构——设计大型网站(第3版)(久负盛名经典再现,信息架构设计领域基石之作!)

    Web信息架构——设计大型网站(第3版)(久负盛名经典再现,信息架构设计领域基石之作!) [美]]Peter Morville(彼得·莫维尔)  Louis Rosenfeld(路易斯·罗森菲尔德) ...

  4. 黑盒测试用例设计方法&理论结合实际 -> 等价类划分

    一. 概念 等价类划分法是把程序的输入域划分成若干部分(子集),然后从每个部分中选取少数代表性数据作为测试用例.每一类的代表性数据在测试中的作用等价于这一类中的其他值. 二. 等价类划分的应用 等价类 ...

  5. [liu yanling]测试用例设计综合策略

    Myers提出了使用各种测试方法的综合策略: 1)    在任何情况下都必须使用边界值分析方法,经验表明用这种方法设计出测试用例发现程序错误的能力最强. 2)    必要时用等价类划分方法补充一些测试 ...

  6. [liu yanling]黑盒测试用例设计方法

    1. 概述 黑盒测试用例设计方法包括等价类划分法.边界值分析法.错误推测法.因果图法.判定表驱动法.正交试验设计法.功能图法等. 2. 等价类划分法 2.1.          概念 等价类划分法是把 ...

  7. [转] 《高性能HTML5》读后整理的Web性能优化内容

    读后感 先说说<高性能HTML5>这本书的读后感吧,个人觉得这本书前两章跟书的标题完全搭不上关系,或者说只能算是讲解了“高性能”这三个字,HTML5完全不见踪影.个人觉得作者应该首先把HT ...

  8. 前后端分离之Web前端架构设计

    架构设计:前后端分离之Web前端架构设计 在前面的文章里我谈到了前后端分离的一些看法,这个看法是从宏观的角度来思考的,没有具体的落地实现,今天我将延续上篇文章的主题,从纯前端的架构设计角度谈谈前后端分 ...

  9. Web 性能优化:21 种优化 CSS 和加快网站速度的方法

    这是 Web 性能优化的第 4 篇,上一篇在下面看点击查看: Web 性能优化:使用 Webpack 分离数据的正确方法 Web 性能优化:图片优化让网站大小减少 62% Web 性能优化:缓存 Re ...

随机推荐

  1. 设置Mac 终端走代理

    1.打开终端执行:export http_proxy=socks5://127.0.0.1:1080 这个只能在当前终端执行一次退出后就需要重新设置 如果需要开机自动设置,把上面的代码加到~/.bas ...

  2. C#冒泡排序算法(简单好理解)

    我对冒泡排序算法的理解: 把最大的往后,从最后一个与前一个对比,然后互换位置,直到全部换好. 目标:从小到大排序 源代码如下: namespace net冒泡排序{ class Program { s ...

  3. Feign源码解析

    1. Feign源码解析 1.1. 启动过程 1.1.1. 流程图 1.1.2. 解释说明 Feign解析过程依赖Spring的初始化,它通过实现ImportBeanDefinitionRegistr ...

  4. Pytorch中torch.autograd ---backward函数的使用方法详细解析,具体例子分析

    backward函数 官方定义: torch.autograd.backward(tensors, grad_tensors=None, retain_graph=None, create_graph ...

  5. 【视频】ASP.NET Core MVC 2.* 入门

    比较初级的入门教程,网址在B站:https://www.bilibili.com/video/av33728783/ 内容如下: 1. ASP.NET Core 简介和开发工具 2. ASP.NET ...

  6. nodejs 使用 ethers创建以太坊钱包

    创建钱包创建钱包流程: 生成随机助记词 => 通过助记词创建钱包=>钱包信息和加密明文(私钥和密码加密) 导入钱包通过插件提供方法,根据助记词|keyStore|私钥,找到钱包信息(地址和 ...

  7. 【ASP.NET Core快速入门】(三)准备CentOS和Nginx环境

    基本软件 VMware虚拟机 centos:http://isoredirect.centos.org/centos/7/isos/x86_64/CentOS-7-x86_64-Minimal-170 ...

  8. Linux之用户和权限

    自从我大微软终于放下身段,决定给开源社区一个迟来的拥抱,追随多年的拥趸们像是突然得到了女神的垂青,各种茫然失措.痛哭流涕.欢欣鼓舞,纷纷唱了起来:“等了好久终于等到今天,梦了好久终于把梦实现……”唱完 ...

  9. SAMBA服务和FTP服务讲解(week3_day1)--技术流ken

    samba服务 Smb主要作为网络通信协议; Smb是基于cs架构: 完成Linux与windows之间的共享:linux与linux之间共享用NFS 第一步:安装samba [root@ken ~] ...

  10. EasyUI List<T>转tree数据格式

    using System; using System.Collections; using System.Collections.Generic; using System.Linq; using S ...