使用QTP统计页面加载时间(加载IE对象)

转自http://www.51testing.com/?uid-31621-action-viewspace-itemid-80418

 

QTP 是一款功能自动化测试 工具,而页面加载时间或响应速度应该是性能测试 的事情,其实QTP也可以实现对页面加载时间的统计功能。因为QTP使用 的是VBS脚本,VBS脚本的强大之处在于它可以调用任何windows的COM组件和对象。那么问题解决的思路就很简单了,就是我们要利用VBS获取 IE网页,并统计网页加载 的时间。5b(kD(Z8h`8ht0

})C7@0`!f(](u t"A0 分析很简单,但是在实现上却有几个技术 问题:一、如何使用VBS分析网页。我们知道网页技术是基于DOM模型的(也不知道这么说是不是准确),那么 只要我们能用VBS调用DOM下的document对象,那么我们就可以使用document的方法来实现我们的要求;二、如果能实现对DOM的调用,我 们如何统计页面加载的各个阶段的时间,通过查阅资料可以知道,在document中有一个readystate方法,该方法共有五个返回值,分别对应网页 初始化到网页加载完毕五个阶段,我们可以利用该方法实现我们的要求。51Testing软件测试网{y`eVqi

51Testing软件测试网L u^]4Y0sk

实现的思路如下:51Testing软件测试网jh3GZy

51Testing软件测试网3g.B+y$`? w

1、利用createobject创建一个IE的实例,以访问document对象;

b'U~`q8tbI0 51Testing软件测试网+c!x9{?vZ.E$w6_

2、利用document对象的readystate属性获取网页加载时各个阶段的时间;

' 在loadrunner脚本中,把要访问的url做参数化,变量名为SITEURL 51Testing软件测试网'y p/z+wF3`
'
timeCount方法返回一个字符串,字符串的内容是统计各个阶段发生的时间
N F7R0xS&K`A0 '
可以使用各种方法查看result的内容 51Testing软件测试网)n$Z)@)NMNA
SITEURL  =   " www.sina.com.cn " ' 设置要进行访问的URL
"KqH|.])JqRv-t�C0
result  =  timeCount(SITEURL) ' 返回运行结果 51Testing软件测试网0B9w ^*a T?(JF s
MsgBox  result  ' 输出运行结果,在loadrunner中可以将该行注释掉
v2?[PE*_0

sw%| l b0
' 方法定义开始 51Testing软件测试网5K/z�X!qV'I(?
Public   Function  timeCount(url)51Testing软件测试网s*z?3J WB
Set  dom  =   CreateObject ( " InternetExplorer.Application " )   ' 创建一个IE的对象 51Testing软件测试网+JfJl/Z'@'D@5`
dom.Navigate(url)   ' 打开指定的URL 51Testing软件测试网s~?WE9l$E7`!S"X
time_start  =   Now () ' 获取统计开始时的时间 51Testing软件测试网pJ"uQG
timer_start  =   timer () ' 获取当前时间的毫秒数 51Testing软件测试网V4y gF#c7An C1e p
'
a = dom.ReadyState'获取当前IE的状态值,将使用该状态值判断IE的当前状态 51Testing软件测试网S,B*I.r6S&XR `H/h
dom.visible  =   True   ' 设置IE可见 51Testing软件测试网9q"H aQ6@I7jU
While  dom.busy  or  (dom.readyState <> 4 ) ' 当IE处于BUSY状态或者加载未完成时(readystate不等于4)时,根据IE的状态统计时间,每毫秒统计一次 51Testing软件测试网}G c&cd
wscrīpt.sleep  1   ' 时间间隔1毫秒,如果时间间隔比较长的话,很有可能会取不到状态值 51Testing软件测试网mc4nNW0o|2e
Select   Case  dom.readystate  ' 判断dom.readystate的值
iF mor#}0
51Testing软件测试网`"tg8p6O5y/S(d1H
Case   0   ' IE未初始化,其实在该方法,readystate=0无意义,因为循环至少是从1开始的. 51Testing软件测试网b6xY4L#`1EGa
time0  =   Now ()51Testing软件测试网G L![7p"x3Q9z
timer0 
=   timer ()
;}r!y[]1Do9w0
Z N(m1Z)o0
Case   1   ' "正在发送请求" 51Testing软件测试网J�ej{-z ~'w
time1  =   Now ()
s{j#G{0 timer1 
=   timer ()51Testing软件测试网Qy0B7{J7/3xTH
51Testing软件测试网lNr.}8Qgh iV
Case   2   ' "请求已经发送完成" 51Testing软件测试网Tf k"JUi
time2  =   Now ()51Testing软件测试网2Sc0nmXo
timer2 
=   timer ()
7v*E'w5u6J;G0
N0A ^w3P-W|0
Case   3   ' "可以接收到部分响应数据" 51Testing软件测试网 W,N?+^h#Jj*k
time3  =   Now ()51Testing软件测试网X.h'p8iGw-}
timer3 
=   timer ()51Testing软件测试网? _!fz-R)^ q
51Testing软件测试网ZT$d*QA
Case   4   ' "页面加载完成" 51Testing软件测试网5{6sE*DA
time4  =   Now ()51Testing软件测试网)`*gJ I8ww,tQ@S;k
timer4 
=   timer ()51Testing软件测试网?#@Qh*af%wQ~9Uq7|

4{T+fV*sXE i w0
End   select
Q;y ]%yEP0
wend
'H},m#H Ad0 time_end 
=   Now ()  ' 统计结束时间 51Testing软件测试网l]4Rs3E5Mq-x
'
MsgBox "开始时间是:" & time1 & ";结束时间是"&time2
x:M}%y`Lp0

;CN,d hr0 timeCount 
=   " 统计开始时间: " & start_time & vbcrlf & " time0: " & time0 & vbcrlf & " time1: " & time1 & vbcrlf & " time2: " & time2 & vbcrlf & " time3: " & time3 & vbcrlf & " time4: " & time4 & vbcrlf & " 完成IE的初始化并发送请求: " & (timer1 - timer_start) & " " & vbcrlf & " 发送完成并接受服务端部分响应数据: " & (timer3 - timer1) & " " & vbcrlf & " 100%接收并完成HTML内容解析: " & (timer4 - timer3) & " " & vbcrlf & " 总共花费: " & (timer4 - timer_start) & " " 51Testing软件测试网,tW4v1slF1fr
End Function  
w/a PP$T0
YSyJPv,Q0

V c-B'By r]0 代码中的SITEURL就是我们要进行测试的页面.51Testing软件测试网:KX:/!~]:zb]

51Testing软件测试网M!]%GRCu4ROo5}

这段代码虽然不长,但是却花了我整整4个小时的时间。一开始碰到的难题就是不知道VBS如何去调用document方法,在网上查了无数资料,大多 是讲如何在HTML代码中进行调用,很少说到如何使用标准VBS去调用,其实到最后才明白,VBS调用访问document无非就是这样的一句代码:51Testing软件测试网4_�OzK%Wcr h

Set  dom  =   CreateObject ( " InternetExplorer.Application " )

-mBXr m]6{h0 虽然简单,但是却花了我一个小时才明白。51Testing软件测试网 WE1{e$}

51Testing软件测试网.`$x8Z3R;{/Z;{Go

通过这样的一段代码时间,我现在清楚了两件事,第一:VBS作为脚本语言,它的强大之处在于它调用windows的COM能力,而VBS本身并没有什么复杂的技术和体系。第二:QTP永远只是一款工具,它能做什么取决于我们如何去使用。

$]5i2qA@tO5A0

1、资源项目源码均已通过严格测试验证,保证能够正常运行; 2、项目问题、技术讨论,可以给博主私信或留言,博主看到后会第一时间与您进行沟通; 3、本项目比较适合计算机领域相关的毕业设计课题、课程作业等使用,尤其对于人工智能、计算机科学与技术等相关专业,更为适合; 4、下载使用后,可先查看README.md或论文文件(如有),本项目仅用作交流学习参考,请切勿用于商业用途。 5、资源来自互联网采集,如有侵权,私聊博主删除。 6、可私信博主看论文后选择购买源代码。 1、资源项目源码均已通过严格测试验证,保证能够正常运行; 2、项目问题、技术讨论,可以给博主私信或留言,博主看到后会第一时间与您进行沟通; 3、本项目比较适合计算机领域相关的毕业设计课题、课程作业等使用,尤其对于人工智能、计算机科学与技术等相关专业,更为适合; 4、下载使用后,可先查看README.md或论文文件(如有),本项目仅用作交流学习参考,请切勿用于商业用途。 5、资源来自互联网采集,如有侵权,私聊博主删除。 6、可私信博主看论文后选择购买源代码。 1、资源项目源码均已通过严格测试验证,保证能够正常运行; 2、项目问题、技术讨论,可以给博主私信或留言,博主看到后会第一时间与您进行沟通; 3、本项目比较适合计算机领域相关的毕业设计课题、课程作业等使用,尤其对于人工智能、计算机科学与技术等相关专业,更为适合; 4、下载使用后,可先查看README.md或论文文件(如有),本项目仅用作交流学习参考,请切勿用于商业用途。 5、资源来自互联网采集,如有侵权,私聊博主删除。 6、可私信博主看论文后选择购买源代码。
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值