linux资源使用统计指南,指南:工作量分析文档

指南:工作量分析文档

wrkloadm.gif

工作量分析文档

工作量分析文档用于在不同的性能测试中确定要使用的变量并定义变量值,利用这些性能测试可以模拟主角特征、最终用户业务功能(用例)、负载和容量。

主题

top.gif

软件质量要从不同的维度来进行评估,其中包括可靠性、功能和性能(请参见)。创建工作量分析文档(请参见)是为了识别并定义不同的变量,这些变量会影响应用程序或系统的性能,并会影响到评估性能所需的评测。工作量分析文档由以下角色使用:测试设计员(请参见)使用工作量分析文档来为不同的性能测试生成测试用例

测试员(请参见)使用工作量分析文档来更好地了解测试的目标并正确地实现该目标

用户代表(请参见)使用工作量分析文档来评估在进行性能评估时所执行的工作量、测试用例和测试的适当性。

工作量分析文档中包括的信息侧重于以下主要变量的特征和属性:要在性能测试过程中执行和评估的用例(请参见)

要在性能测试过程中模拟/仿真的主角(请参见)

负载 - 同时参与的主角的数量和类型、被执行的用例的数量和类型以及时间或吞吐量百分比。

将用来执行并评估性能测试的部署系统(实际的、模拟的或仿真的)(请参见,部署视图)

如其名称所示,性能测试是为了评测和评估测试对象的性能特征或行为而执行的。为了成功地设计、实施和执行性能测试,需要确定并使用代表实际情况的变量值,以及这些变量的例外值。

top.gif

可以为性能测试确定并使用两种类型的用例:- 在性能测试中所评测和评估的用例

- 可能对关键用例的性能行为产生影响的非关键用例

并非在测试对象中实施的所有用例都是性能测试的对象。关键用例是那些将成为性能测试重点的用例,这意味着它们的性能行为将得到评测和评估。

要确定关键用例,可确定用例是否符合一条或多条以下标准:用例需要评测和评估性能

用例被一个或多个主角频繁执行

用例表现出较高的系统使用率百分比

用例需要使用重要的系统资源

列出关键用例,以将其包括在性能测试中。

在确定并列出关键用例的同时,应检查事件的用例流。特别是,应开始确定当执行用例时在主角(类型)和系统之间的特定事件序列。

另外,还需确定(或核实)以下信息:用例的前提条件,如数据的状态(什么样的数据应/不应存在)和测试对象的状态

可能是常量(相同量)的数据,或从一个用例实例到下一个用例实例必须不同的数据

该用例与其他用例之间的关系,例如在执行该用例时必须遵循的顺序

用例的执行频率,例如同时执行的用例实例的数量,或用例占系统总负载的百分比

与关键用例不同,关键用例是性能测试的重点,而重要用例是那些可能影响关键用例性能行为的用例。重要用例包括符合一条或多条以下标准的用例:用例必须在执行关键用例之前或之后执行

用例被一个或多个主角频繁执行

用例表现出较高的系统使用率百分比

用例需要使用重要的系统资源

用例在执行关键用例的同时在部署系统上定期执行,如电子邮件或后台打印。

在确定并列出重要用例的同时,应检查事件的用例流和附加信息(类似于上面对关键用例进行的检查)。

top.gif

成功的性能测试不仅需要确定执行关键用例和重要用例的主角,还必须模拟/仿真主角行为。也就是说,一个主角实例在执行与另一个主角实例相同的用例和事件用例流的同时,可以与测试对象进行不同的交互(响应提示、输入不同数据值等活动需要更长的时间)。可考虑以下的简单用例:

tstcs002.gif

一台 ATM 机器的主角和用例。

主角“顾客”在用例执行的第一个实例中是一位有经验的 ATM 用户,但在另一个主角实例中却是一位没有经验的 ATM 用户。有经验的 ATM 主角迅速浏览 ATM 用户界面,他几乎不会花时间来阅读每条提示,而是按照记忆按动按钮。但没有经验的 ATM 主角则要阅读每条提示,并且在作出响应之前要用较多的时间来理解信息。符合实际的性能测试反映了这种差异,从而可确保准确地评估在部署测试对象时的性能行为。

首先确定以上列出的各个用例的主角。然后确定可能执行各个用例的不同主角原型。在上面的 ATM 示例中,可能有以下主角原型:有经验的 ATM 用户

没有经验的 ATM 用户

ATM 用户的帐户位于该 ATM 的银行网络“之内”(用户的开户银行为拥有该 ATM 的银行)

ATM 用户的帐户位于该 ATM 的银行网络之外(其他竞争银行)

对于每个主角原型,需确定主角属性的不同值,例如:思考时间 -主角响应测试对象的各项提示所用的时间

按键速度 -主角与接口交互的速度

请求速度 - 主角向测试对象提出请求的速度

重复次数 - 按顺序重复用例或请求的次数

交互方法 -主角所使用的交互方法,例如使用键盘输入值、切换到某个子段、使用快捷键等,或使用鼠标“指向并单击”、“剪切并粘贴”等。

此外,对于每个主角原型,应确定它们的工作简档,并指定它们要执行的所有用例和流程,以及执行用例的主角所用时间的百分比或工作量的比例。这些信息可用于确定和创建符合实际的负载(请参见下面的“负载和负载属性”)。

top.gif

另外,还必须确定唯一标识环境的部署系统特定属性和变量,因为这些属性也会影响性能的评测和评估。这些属性包括:物理硬件(CPU 速度、内存、磁盘缓存等)

部署构架(服务器的数量、处理活动的分布等)

网络属性

可以与测试对象同时安装和执行的其他软件(和用例)

确定并列出性能测试中可以包括的系统属性和变量。该信息可以从多处获得,其中包括:软件构架文档(请参见,部署视图)

前景文档(请参见)

涉众请求(请参见)

top.gif

前面已经提到过,负载是影响测试对象的性能行为的因素之一。负载的定义为:“模拟的最终用户与测试对象进行交互的实例,以及影响系统使用和性能的变量”

准确地确定将被用来执行和评估性能行为的负载是很关键的。一般情况下,性能测试要在不同的负载下执行多次,每种负载都是下列属性的一种变形:与测试对象同时进行交互的主角数量

与测试对象进行交互的主角类型(以及每个主角所执行的用例类型)

各个关键用例的执行频率,及其按顺序执行的频率(重复频率)

对于用于评估测试对象性能的每种负载,应确定以上各变量的值。各个变量在不同的负载中所使用的值可以从业务用例模型(请参见)中获得,或通过观察和访问主角获得。至少应获得三种负载:最佳 - 反映最佳可能部署条件的负载,例如,只有一个或少数几个主角与系统进行交互、只执行关键用例,这种负载在测试过程中很少执行或根本不执行额外的软件或用例。

额定 - 反映当前部署条件的负载。

峰值 - 反映最差部署条件的负载,例如,最大数量的主角、执行最大数量的关键用例,这种负载要同时执行许多或所有额外的软件和用例。

如果性能测试包括强度测试(请参见和)时,应确定几种额外的负载,每种负载都针对于一个系统或负载变量,并将其设置到部署系统的正常预期容量之上。

top.gif

只有在对测试进行评测并对性能行为进行评估后,性能测试才能获得成功。在确定性能评测和标准时,应考虑以下因素:要进行哪些评测?

在执行测试对象或用例的过程中,关键的评测点在哪里/是什么?

判断性能行为是否可以接受的标准是什么?

性能评测

在执行测试的过程中可以进行多种不同的评测。要确定将进行的最重要的评测,并证明它们为什么最重要。

下面列出了所监测或捕获到的最常见的性能行为:测试脚本状态或状况 - 以图形化方式描述测试执行过程的当前状态、状况或进度

响应时间/吞吐量 - 评测(或计算)响应时间或吞吐量(通常表述为每秒钟处理的事务数)。

统计性能 - 使用统计方法(如平均数、标准偏差和百分位数)对响应时间/吞吐量进行评测性(或计算性)的描述。

追踪 - 捕获执行期间主角(测试脚本)与测试对象之间的来往消息或会话,或者数据流和/或流程。

有关详细信息,请参见。

关键性能评测点

在上面的“用例和用例属性”部分中已经提到,不必为性能测试执行所有用例。同样,不必为每个被执行的用例进行所有性能评测。通常会有一个(或几个)特定的用例流程专门用于评测。或者,在特定的事件用例流中可能存在特定序列的事件,这些事件将为评估性能行为而进行评测。应谨慎地为性能行为的评测选择最重要的起“点”和终“点”。它们通常是最显而易见的事件序列,或者是我们可以通过更改软件或硬件来直接影响的点。

例如,在上面提到的 ATM - 提款用例中,从主角进行提款操作的起点到该用例结束的终点(即主角收到他的银行卡而 ATM 准备接受另一张卡),我们可以评测整个用例的性能特征,如下图中黑色的“总计花费时间”所示:

md_wlmd1.gif

但请注意,有很多事件序列会影响总计花费时间。我们可以控制某些事件序列(例如阅读卡中信息、核实卡类型、开始与银行系统的通信等,如上图中的 B、D 和 E 项),但却无法控制其他序列(例如主角在输入他们的提款金额之前输入他们的 PIN 或阅读提示,如上图中的 A、C 和 F 项)。在上例中,除了评测总计花费时间外,还要评测序列 B、D 和 E 的响应时间,因为这些事件的响应时间对主角来说最为显而易见(并且我们可以通过用于部署的软件/硬件来影响这些响应时间)。

性能评测标准

一旦确定了关键性能评测和评测点,就要检查性能标准。性能标准在补充规约(请参见)中列出。如有必要,应修订该标准。

性能评测通常要使用两项标准:响应时间或吞吐率

百分位数

按秒评测的响应时间或按所处理的事务(或消息)量评测的吞吐率是主要的标准。

例如,在“提款”用例中,所规定的标准为“每个 B、D 和 E 事件(参见上图)都必须在 3 秒钟之内发生(合并后总计为 9 秒)”。如果在测试过程中,我们注意到每个被确定为 B、D 或 E 的事件所花费的时间超过了规定的 3 秒标准,就要记录一项失败。

百分位数评测可以同响应时间和/或吞吐率结合使用,它们用于“在统计上忽略”在规定标准以外的评测。例如,现在规定的用例性能标准为“B、D 或 E 事件的 90% 都必须在 3 秒钟之内发生...”。在测试执行过程中,如果我们评测到所有性能评测中的 90% 都发生在规定标准之内,就不记录失败。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/496139.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

linux 下修改日期和时间

我们一般使用“date -s”命令来修改系统时间。比如将系统时间设定成2009年11月13日的命令如下。 #date -s 11/13/09 将系统时间设定成下午1点12分0秒的命令如下。#date -s 13:12:00 ---- 注意,这里说的是系统时间,是linux由操作系统维护的。 ---- 在系统…

Linux 输入输出重定向 2>/dev/null和>/dev/null 2>1和2>1>/dev/nul

From:https://www.cnblogs.com/520playboy/p/6275022.html 2>/dev/null 和 >/dev/null 2>&1 和 2>&1>/dev/null :https://blog.csdn.net/zhongqi2513/article/details/78613768 连接远程机器执行 shell 命令的一个使用示例&…

c语言向指定文件写入程序,C语言同时向不同的文件写入不同的数据

C语言同时向不同的文件写入不同的数据这个我写了好久才写出来的,之前不知道是什么原因总是不能同时一起写,而且写完一个程序就死了,后来在网上查到一篇文章 http://blog.csdn.net/feixiaoxing/article/details/7237649通过修改变成以下代码。…

Effective Java~44. 坚持使用标准的函数接口

在 java.util.Function 中有 43 个接口。不能指望全部记住它们,但是如果记住了六个基本接口,就可以在需要它们时派生出其余的接口。基本接口操作于对象引用类型。 Operator 接口表示方法的结果和参数类型相同。 Predicate 接口表示其方法接受一个参数并…

SQL Server 执行 字符串

EXEC (字符串或变量) 例: EXEC (SELECT * FROM Orders) 或 DECLARE sql nvarchar(50)SET sqlSELECT * FROM OrdersEXEC (sql)转载于:https://www.cnblogs.com/duwx/archive/2009/11/19/1606152.html

Python爬取大量数据时防止被封IP

From:http://blog.51cto.com/7200087/2070320 基于scrapy框架的爬虫代理IP设置:https://www.jianshu.com/p/074c36a7948c Scrapy: 针对特定响应状态码,使用代理重新请求:http://www.cnblogs.com/my8100/p/scrapy_middleware_aut…

c语言错误c4430,声明*C某类::Getdocument();(已声明,不兼容)

创建了一个CRightWindow类,基类为CScrollView,在.h文件中如下:public:CMy2015Doc* GetDocument(); // error C2143: 语法错误 : 缺少“;”(在“*”的前面)// error C4430: 缺少类型说明符 – 假定为 int。注意: C 不支持默认 int在…

CollapsiblePanel控件

CollapsiblePanel 控件属性将被初始化如下面的示例代码所示&#xff0c;斜体属性为可选属性。 <ajaxToolkit:CollapsiblePanelExtender ID"cpe" runat"Server"TargetControlID"Panel1"CollapsedSize"0"ExpandedSize"300"…

Effective Java~45. 谨慎使用Stream

在 Java 8 中添加了 Stream API&#xff0c;以简化顺序或并行执行批量操作的任务。 该 API 提供了两个关键的抽象&#xff1a;流(Stream)&#xff0c;表示有限或无限的数据元素序列&#xff0c;以及流管道 (stream pipeline)&#xff0c;表示对这些元素的多级计算。 Stream 中的…

shell 中 $(( )) 与 $( ) 还有 ${ } 的区别

From&#xff1a;http://blog.chinaunix.net/uid-14351756-id-2820651.html $( ) 与 (反引号) 在 bash shell 中&#xff0c;$( ) 与 (反引号) 都是用来做命令替换用(command substitution)的。 所谓的命令替换与我们第五章学过的变量替换差不多&#xff0c;都是用来重组命…

最近发包给朋友,搞定软件小活儿、解决小功能模块的感受

有时候也想&#xff0c;所有的事情都靠自己解决&#xff0c;太辛苦了太累了&#xff0c;在不差钱的这个年代&#xff0c;有些能让别人做的事情&#xff0c;就让别人做吧&#xff0c;但是一直找不到合适的人&#xff0c;什么叫合适的人&#xff1f;我简单的说几下&#xff0c;不…

c语言数列偶数在奇数前面,奇数

奇偶校验2021-05-19 15:03:06奇偶校验(Parity Check)是一种校验代码传输正确性的方法。根据被传输的一组二进制代码的数位中“1”的个数是奇数或偶数来进行校验。采用奇数的称为奇校验&#xff0c;反之&#xff0c;称为偶校验。奇偶校验需要一位校验位&#xff0c;即使用串口通…

利用自定义web-font实现数据防采集

From&#xff1a;https://blog.csdn.net/fdipzone/article/details/68166388 完整源码&#xff1a;https://download.csdn.net/download/fdipzone/9798142 web-font介绍 web-font 是 CSS3 中的一种标记 font-face&#xff0c;在 font-face 声明里&#xff0c;你可以声明一种字…

数字证书~证书链

来源&#xff1a;客户端认证https服务端证书过程详解——证书链_huzhenv5的博客-CSDN博客_证书链认证过程 基本概念 证书 首先&#xff0c;我们看看在wikipedia上对证书的定义&#xff0c;In cryptography, a public key certificate (also known as a digital certificate o…

修改Netbeas的注释结构

Eclipse修改注释的方法&#xff1a;  窗口-》首选项-》java-》代码样式-》代码模板-》注释-》方法-》确定&#xff0c;下面就可以修改了  Netbeans修改注释的方法&#xff1a;  工具->模板 打开 看见那一排列表没有 展开Java 选择Java类 点击 在编辑器中打开 …

c语言assign用法,object-c语言的nonatomic,assign,copy,retain的区别

nonatomic&#xff1a;非原子性访问&#xff0c;不加同步&#xff0c;多线程并发访问会提高性能。如果不加此属性&#xff0c;则默认是两个访问方法都为原子型事务访问。(atomic是Objc使用的一种线程保护技术&#xff0c;基本上来讲&#xff0c;是防止在写未完成的时候被另外一…

反反爬技术,破解猫眼网加密数字

From&#xff1a;https://blog.csdn.net/qq_31032181/article/details/79153578 From&#xff1a;http://www.freebuf.com/news/140965.html 利用自定义web-font实现数据防采集&#xff1a;http://blog.csdn.net/fdipzone/article/details/68166388 利用前端字体文件(.ttf)混…

数字签名,数字证书,证书链原理

来源&#xff1a;数字签名&#xff0c;数字证书&#xff0c;证书链原理&#xff08;图文详解&#xff09;_Ruby丶彬的博客-CSDN博客_证书链验证原理 数字签名&#xff0c;数字证书&#xff0c;加密简述 数字签名&#xff1a;谈及数字签名&#xff0c;就如小时候老师叫把卷子或…

成都信息工程c语言题库,成都信息工程学院C语言考试题及答案

}in 0;while (sum < im) { }sum - in; in--;printf(\sum%d\\n\in , sum); return 0;in; sum in;编写一程序P215.C实现以下功能求S1/1&#xff01;1/2&#xff01;1/3&#xff01;…1/N&#xff01;并输出结果(显示时小数部分占16位&#xff0c;计算时要求从第1项开始往后累…

转--javascript 数组

较为上篇更为深刻 原文&#xff1a;http://blog.csdn.net/jaylongli/archive/2009/03/20/4007823.aspx 数组有四种定义的方式 使用构造函数&#xff1a; vara newArray(); varb newArray(8); varc newArray("first", "second", "third"); 或者数…