LoadRunner-总结(二)
目录
- 1、事物的响应时间
- 2、关联函数详解
- 3、90 Percent(用户感受百分比)
1、事物的响应时间
事务得到的系统响应时间是由非常多的部分组成的,一般来说响应时间由网络时间、服务器处理时间、网络延迟三大部分组成。先来看看当一个客户端发出请求到服务器返回需要经历哪些路径。
(1)网络时间
客户端发出请求首先通过网络来到Web Server上(消耗时间为N1);然后Web Server将处理后的请求发送给App Server(消耗时间为N2);App Server将操作数据指令发送给Database (消耗时间为N3);Database服务器将查询结果数据发送回App Server(消耗时间为N4);App Server将处理后的页面发给Web Server(消耗时间为N5);最后Web Server将HTML转发到客户端(消耗时间为N6)。这里的Nx都是网络传输上的时间开销,没有计算业务处理所需要花费的时间。
(2)服务器处理时间
另外一个方面还要考虑各个服务器处理所需要的时间WT、AT、DT。
(3)网络延迟
除上面两种时间开销外,还要考虑网络延迟的问题。
所以最终的响应时间组成为:
响应时间 = 网络延迟时间 WT AT DT (N1 N2 N3) (N4 N5 N6) WT AT DT
也可以简单认为响应时间由网络开销(前端)和服务器端开销(后端)两大部分组成
影响网络的因素一般包括以下内容:
(1)前端Network
DNS Lookup
Time to connect
Time to first buffer
Network Time
Download Time
SSL handshake
FTP authentication
Client Time
Error Time
网络延迟
(2)后端服务
Web Server
Servlet Time
Method Time
静态动态压缩
Web Application Server
EJB Time
Method Time
JNDI Lookup
Database Server
JDBC Time
Connect Time
Execute Time
2、关联函数详解
关联函数web_reg_save_param_ex()
(1)Parameter Name
此处设置存放参数的名称,关联出来的内容将会存放在该参数中。这里受到Ordinal选项的影响。
例如:
设置Parameter Name为temp,当对应的Ordinal选项是任意一个数字的时候,只会关联一个匹配的记录,关联值将会存放在temp这个参数中。当Ordinal是All的时候,关联成功后的值将会依次存放在“temp_数字”这样的参数数组中,并且还会添加一个temp_count的参数存放关联出来的记录条数。
(2)Left Boundary
此处设置左边界,这里是用来填写关联对于数据处理的左匹配内容规则。在左边界中存放的是一个字符串,例如,填写的内容为“左边界”会被转换成以下形式:
代码语言:javascript复制web_reg_save_param_ex(
"ParamName=test",
"LB=左边界",
"RB=",
SEARCH_FILTERS,
LAST);
注意:
如果输入的内容里面有双引号,那么需要通过转义符来进行处理,例如:
代码语言:javascript复制web_reg_save_param_ex(
"ParamName=test",
"LB="左边界",
"RB=",
SEARCH_FILTERS,
LAST);
(3)Match case
默认情况下边界是Match case的,也就是检查大小写的,可以取消下面的选项来忽略大小写检查,会看到函数变为以下形式:
代码语言:javascript复制web_reg_save_param_ex(
"ParamName=test",
"LB/IC=左边界",
"RB=",
SEARCH_FILTERS,
LAST);
(4)Binary data
如果需要关联的内容是非ASCII字符的,那么需要使用该选项。选中该选项后可以看到函数变为以下形式:
代码语言:javascript复制web_reg_save_param_ex(
"ParamName=test",
"LB/BIN=\x3F\xDD",
"RB=",
SEARCH_FILTERS,
LAST);
(5)Regular expression
在LR11中关联函数提供了使用正则表达式的功能,但是在LR11 Patch3中取消了web_reg_save_param_ex函数对该功能的支持,而该功能由函数web_reg_save_param_regexp实现。
(6)Right Boundary
此处设置右边界,这里是用来填写关联时对于数据处理的右匹配内容规则,选项同左边界。
(7)Ordinal
这个关键字在很多函数里面都有应用,在这里可以填写任意一个整数,也可以填All。如果填写数字,那么说明从返回的记录中取出对应顺序的值,而填写All将会返回所有的内容。
(8)Save Offset
设置关联的内容偏移量,从第几位开始进行关联操作。
(9)Save Length
关联出来的内容所需要保存的长度。
(10)Warm if text was not found (Default is Error)
如果关联的对象不存在,又该如何进行处理呢?默认值为Error,默认情况下如果没有关联到任何内容则提示错误。而选择该项,则只会简单提示没有抓到内容,不会产生错误。
(11)Filters
下面的选项都是帮助关联返回限定的,通过这些设置可以进一步减少返回的范围。
(12)Scope
该项设置关联查询的范围,在LR11中和以前的范围做了一些调整,应该算是更加强大,这里Scope提供了4个选项:Body、Headers、Cookies、All。
1)ALL
比较容易理解,就是让服务器的返回所有内容作为需要关联的目标来处理。
2)Headers/Body/Cookies
这3个选项都从请求返回的所有内容进行关联处理,包括图片、JavaScript脚本等。区别在于对返回信息的分隔方式。
3)Header
指所关联的内容是所有服务器返回请求的HTTP头部分内容。可以通过查看服务器返回内容来了解,Body之前的内容都属于Header。
4)Body
就是服务器返回在Body以后的内容。
5)Cookie
指Header部分关于Cookie定义的部分内容。
(13)Request URL
这里提供了针对URL地址的过滤方式来减少关联范围,例如,我们可以填写*.php来说明只对PHP页面进行过滤。
(14)Content Type
在网站应用中,我们要关联的内容一般都存放在HTML页面中,所以这里我们通常都是用text/html来作为Content Type过滤规则的。
(15)Frame ID
这个选项是专门针对框架结构的网站设计的,有些时候需要关联的内容是在某个框架中的,这时就需要说明所关联的页面是框架中的哪一个。
(16)Ignore Redirection
在某些情况下系统会使用HTTP 3xx的重定向操作来完成页面跳转,该选项是用来忽略跳转页面信息的。如果选中该选项,通过这种重定向技术的页面将不会被关联。
3、90 Percent(用户感受百分比)
在测试报告中经常可以看到这个统计值:90 Percent(用户感受百分比)
这个值说明的采样数据中有90%的数据比它小,有10%的数据比它大。
举例如下:
假设有一组数据(1、3、4、6、5、7、8、2、9、10),从小到大排序之后为(1、2、3、4、5、6、7、8、9、10),在这10个数字中第九大的数字是9,所以90 Percent的结果就是9。
它的主要作用就是来了解在某个响应时间内有百分之多少的用户。当然这个90%是可调整的,在Analysis中通过View菜单中Summary Filter下的Transaction Percentile选项来调整。