针对我们前一篇说到的概念,我们在这里展开来在逐个解释。

场景

所谓场景,就是指系统运行的剖面。对应我们前面建立的三维模型,我们常说的场景就是指在时间轴上的剖面,由L轴和O轴确定,即场景有负载量和负载对象两个属性。

 负载量

负载量,主要用来描述当前系统压力的量化标识,包含用户量、业务量、吞吐量、PV等;

我们进行负载量的分析统计时,就是为了获取我们场景中某个负载对象的负载量,如针对整个系统,我们要统计在某个时间点上整个系统当前的用户量是多少,业务量是多少,系统的吞吐量是多少等等。根据于此,我们可以得出,我们的测试模型中该有多少人参与负载,这样人预期对系统的压力应该有多大等信息。

 负载对象

负载对象,包含功能模块、页面、页面组件、接口等,主要是用来描述系统的压力分布;负载对象在我们建模的过程中是以树形结构来进行分析的。如下图所示:

wKiom1cZffWhvq_IAABnCWXHe50335.jpg

对负载对象的分析就是主要分析在某个负载量下,各个不同的负载对象上的负载压力是多少,根据于此,来确定最终我们测试的用户该如何分配。

运行

所谓运行,即系统运行的剖面在时间轴上的状态变化。这里面涉及到两个关键词,一个是时间轴,另外一个是剖面的状态变化。

首先,作为时间轴,我们在选取的时候自然可以选择某一个时间点,也可以选择某一个时间段。但由于绝对的时间点难以穷举,而且粒度过细的话也失去了统计意义上的代表性。因此,通常来说,我们都是选择某一个时间段作为剖面变化的标度。

而对于剖面的状态变化,正如我们前面所说:一个系统运行的剖面包含两个属性,负载量和负载对象,根据我们观察的属性不同,对于系统的运行情况就有了两个不同的观察角度,即负载量在时间上的状态变化和负载对象在时间轴上的状态变化。

负载量在时间轴上的状态变化,我们称为负载变化趋势;而负载对象在时间轴上的状态变化,我们称之为用户行为趋势。

负载变化趋势

前面已经给出了负载变化趋势的定义,即负载量在时间轴上的状态变化。对于时间轴的解释也给出了通常使用的标准,即某一个时间段。

对于时间段的选择,我们首先定义一个标准,就是以分钟作为最原子的分析标度,即每分钟的负载量作为一个取样点。该取样点我们定位为系统的瞬时负载,也就是我们通常所说的绝对并发。我们称之为OT1。该时段选择取样的结果主要用于判断在执行测试时的真实并发用户是否与实际生产系统的压力相符。对于一个相对并发的测试执行过程,就是总用户*并发率= OT1;对于一个绝对并发的测试执行过程,就是并发用户= OT1

在进行状态变化的分析中,以小时作为一个变化分析的最原子的分析标度,即至少是一个小时内的60个取样点描述出来的负载变化曲线才作为一个有意义的负载变化分析样本。而一个小时的总负载量我们定义为系统的在线负载,也就是我们通常所说的相对并发。我们称之为OT0。该时段选择取样的结果主要用于决定测试执行过程中的用户量。

用户行为趋势

用户行为趋势就是指负载对象在时间轴上的状态变化,即某一个时间段内的负载量分解到不同的负载对象分别是多少,以及每个负载对象的负载量变化曲线。

从该概念中我们可以看出,用户行为趋势的取样至少包含以下两个角度:

一个角度是负载变化,即某一个负载对象产生负载持续的时间,如一个用户使用系统中的某个对象的访问周期(会话生存时间)和不同对象间的负载衔接顺序(用户操作流程)、再譬如登录功能随时间变化其负载量的变化曲线;该角度的取样决定执行测试时每一个测试用例实例化的脚本该包含哪些操作、执行时间(该设置多大的思考时间)、操作周期(迭代间隔)。

另外一个角度的取样是负载分布,即在某一个时间点上的负载量,分别有哪些负载对象,每个负载对象的负载为多大,更通俗的说法就是功能分布。该角度的取样决定执行测试时要关注哪些功能的测试用例、以及各个测试用例实例化的脚本该分配多少比例的用户。