不谋万世者,不足谋一时;不谋全局者,不足谋一域。君子敏于事而慎于言 新浪微薄:土司阿哈

qtp总结(三)

上一篇 / 下一篇  2008-04-28 16:18:56 / 个人分类:qtp

1208328177
  • 自动化测试:
  • 测试文档:
51Testing软件测试网G!T*U/_!Y)z7WF:h%S s

1、拆分语句split
PSWB{w@"W&G0例:取得当前日期后拆分51Testing软件测试网+h-g:F([5q)T:n i{
riqi=date()
5b%q)K:i_D0PoC0    my=split(riqi,"-")
&c/B`I,c6{d#R.u'r0    riqi=my(1)&"月"&my(2)&"日"
RNh c^/A0    datatable("riqi",DtGlobalSheet)=riqi
~S&S3mA4]0    本地表:DataTable("a", dtLocalSheet)51Testing软件测试网[b#][|V*P
riqi= year(date)& "-" & Right("0"& month(date),2) & "-"&Right("0"&   Day(Date),2)51Testing软件测试网&r0}hb*w}7o(c

4C _XsO3GWR02、取得表格中某行某列的值GetCellData
\#FmV4ng e0例:飞机票取票价51Testing软件测试网j3H.jtl;lM%[c-g/P
shuA=Browser("Welcome:MercuryTours").Page("Book a Flight: Mercury").WebTable("New York to Zurich").GetCellData(3,3)
{V'Q*R]Q051Testing软件测试网Z:__]&q)hA

%?_5@1[wd03、取距某年某月某日的天数datediff51Testing软件测试网9|Pw};A|K,@
例:计算距2008-08-08奥运天数51Testing软件测试网hQ4b~sA&?;T~1{.N0g#?
datediff("d",now,"2008-8-8")
7K+Ny$DjXhLa0
dJBf3gh6L:\?051Testing软件测试网i0iA6A,F7d+H
4、描述性编程text:=51Testing软件测试网m7AJ+ZT:b&p
例:取得某页面上某文字的链接
+_Eaz5d7f0Browser("").Page("").Link("text:=娱乐").Click
3k^Q tos#L"S0     或
5aq&b~.QvuV2t C0     neirong="娱乐"51Testing软件测试网4r0m/r9fm/Ox
     Browser("").Page("").Link("text:="&neirong).Click
7`@']V,Or.Q051Testing软件测试网%k,E%R$p-|)CZ'Z

P-}]R tW}05、网页中HTML编辑器的录制
,ry.Z!c i H8d0功能:验证126邮箱的发信功能正确
d C\[4a7WO#`3i0操作步骤:51Testing软件测试网o4E A-~s+`@x
      a.录制脚本,动作包括整个发信的过程。
nHy{0m%A [5|J0      b.修改脚本,在输入信件主题代码后加wait 10语句51Testing软件测试网 Ur)U#O.`4M%T+B
       c.回放脚本,观察在邮件正文中输入的内容,回放时QTP是否写入
m]Q{+_4^"eoa0      d.重新修改脚本,保证回放时QTP在邮件正文中写入内容
PR+loa } BHR5uP#R051Testing软件测试网o$HRt I+|Np
英文解决方案:
,?SN)\O6x,?HG0    Browser("网易126免费邮--你的专业电子邮局").Page("网易电子邮箱 - xueqinzhaoqing@126.co").Frame("indexFrame").WebEdit("subject").Click
doE!x n(ek9y0    wait 1
R{u0O:u{#bS0     Setting.WebPackage( "ReplayType")=2      '配置使用浏览器事件或鼠标运行鼠标操作的'方式.1 - 使用浏览器事件运行鼠标操作,2 - 使用鼠标运行鼠标操作。
@-L0q/k#N/G5vX0     Set ōbj=createobject("wscrīpt.shell")
Fk1h/H@2{[\0     obj.sendkeys "{TAB}"51Testing软件测试网[&yy&Jkv\q
     wait 2
H;nAA)bwC!F0     obj.sendkeys "abc1111"51Testing软件测试网)Z].p0ge[?
     wait 151Testing软件测试网4G~T%P3{4jf
     Setting.WebPackage( "ReplayType")=151Testing软件测试网K;JPRW ^#U"[4S d
中文解决方案
(za\ |c2?051Testing软件测试网tU${A5`X[]o5S6^E!A
strCopy = "软件测试." 
!u[I)}!rn~3i0Set ōbjIE = CreateObject("InternetExplorer.Application") 
j`,]"F@4D_0objIE.Navigate("about:blank") 
~|/?}uA0objIE.document.parentwindow.clipboardData.SetData "text", strCopy 
RM| }Rn0objIE.Quit
w y@7[%o h0
6]\2AT P&@{+]$s+S0wait 151Testing软件测试网U.dZ5Z,t%~
Setting.WebPackage( "ReplayType")=251Testing软件测试网Pj/~I2j*pt
Set ōbj=createobject("wscrīpt.shell")51Testing软件测试网"Sw&Jsu
obj.sendkeys "{TAB}"51Testing软件测试网 Ft3\4eq-O%_
wait 2
9HXq5I:z`0obj.sendkeys "^v"51Testing软件测试网c r6Z$fp7?0C6c
wait 151Testing软件测试网9r(q lt&T _6z
Setting.WebPackage( "ReplayType")=151Testing软件测试网%[$N3bv9gM'q

mdm#H'y.Ra8EPw,C06.使用MultiTestManager添加文件时可以直接往里拖的哦。51Testing软件测试网wIA!VdIX ^*g
51Testing软件测试网N!i:Dl }l };B}4V
7.函数:新建记事本,改名为public.vbs例:51Testing软件测试网9mzhG{RK2f
   function ZHIRSS51Testing软件测试网*uN!q h{ Xe
ZHIRSS="RSS行业资讯分类维护"
]8TKk|D0end function
8d!s9d%A \ ]0  使用语句executefile "d:\zhaopin\case\denglu.vbs"或设置QTP test/settings/resources/+函数目录
e"?!m/z d.Z;G)]ny0
.uEHBa"R1Q D`B08.设置动作循环:右击/actiong call properties/run on all rows51Testing软件测试网 v}(y mT[z8}!|F5B7~
51Testing软件测试网%}jIc2w
9.设置动作允许被调用:右击/action properties/general/reusable action打勾51Testing软件测试网H$Y0[~{+J1}-@^
51Testing软件测试网M%P,XGi5mzSd
10.QTP与MTM连接:Tools/option/run/allow other mercury products to run...51Testing软件测试网:q'JO&u#v6kp

J/Sy%yew*b5r011.插入已存在的动作1)insert/call to copy of action...复制可修改51Testing软件测试网cx9@|ZR~X
                   2)insert/call to existing of action...复制不可修改51Testing软件测试网D~,@/X } jHM4p

;Xm4z)BS|v012.QTP报告自动跳出设置:Options>Run>View results when run session ends
eR4f9i?l;hn051Testing软件测试网;[8{ BMN\(Y1|Y
13.判断表格是否存在:
"nd D%F:v0If Browser("数商3.0后台管理系统").Page("Page").Frame("main_5").WebTable("标题").Exist then
:bJe it'G:FE0reporter.ReportEvent 0,"pass","系统显示了所有的资讯列表!"
9\0^)W6Xq$r,sp0else51Testing软件测试网5TQ"?'V[C\
  reporter.ReportEvent 1,"fail","系统没有显示资讯列表!"51Testing软件测试网A0MHf,n p+oL|B%Q3r
end if51Testing软件测试网T8LL'p1|%{
51Testing软件测试网Q"hK6w!j9?$Ah:P#A
14.获取表格行数:Browser("数商3.0后台管理系统").Page("Page").Frame("main_5").WebTable("标题").RowCount51Testing软件测试网;W0ho&CGpF)h
51Testing软件测试网A8m+D x G
15.注释脚本存在位置:qtp/dat/ActionTemplate.mst51Testing软件测试网w/eO#fR)l6I%r
51Testing软件测试网 V-a0x'VJ1x"r
16取本地文件名称Function ShowFileList(folderspec)51Testing软件测试网 Z'|rw1S"R
   Dim fso, f, f1, fc, s
0b$cwW"y*P*Y+m0   Set fso = CreateObject("scrīpting.FileSystemObject")
|/]q pF8Q9C0   Set f = fso.GetFolder(folderspec)
$ZEf4H U0   Set fc = f.Files51Testing软件测试网!p;]3GvQ+W
   For Each f1 in fc51Testing软件测试网P N.]x:R Xl
      s = s & f1.name
O E7p2LLSoqc0      s = s &   "  "
-y;eb1A\ ^4JM+I(I0   Next
#b u+V;~5t+]4[ @9O0   ShowFileList = s51Testing软件测试网0G XCq8r(A[
End Function51Testing软件测试网O#b9FE:j9}"xM
wenjian=ShowFileList("D:\下载\本地下载1\")51Testing软件测试网@ hc%Lp4v/_wi'T5vL
51Testing软件测试网;fs~'Y+Pj
17.取本地文件删除:del= DeleFile("D:\下载\本地下载1\")
%\L.L!N%fg1BJ0Function DeleFile(folderspec)51Testing软件测试网wa m.Taix
   Dim fso, f, f1, fc, s51Testing软件测试网(C [h'AgW
   Set fso = CreateObject("scrīpting.FileSystemObject")
t Xn+^{'`0   Set f = fso.GetFolder(folderspec)51Testing软件测试网2n0NMi"E6pjA
   Set fc = f.Files51Testing软件测试网 R;}i[+E@ p/F
   For Each f1 in fc51Testing软件测试网%r-K|5?+@{bR
         f1.delete51Testing软件测试网A&m-r7\W5ev
   Next51Testing软件测试网t:N$]X$G`G
End Function51Testing软件测试网+mB8L5q)R k\

^ t:d%[+vJ@A7r.p0i3W018.sousuo2=Browser("Browser").Page("Page_4").Check (CheckPoint("2007-11-08 14:21"))51Testing软件测试网'Hc'@Gy.x cU(d
If (sousuo2)eqv(true) Then
8i;akdo1r ]o!l(|g0    reporter.ReportEvent 0,"",""
"Pay;\@G rT0else
i m4A0P6U,N'd0   reporter.ReportEvent 1,"",""51Testing软件测试网v!|Supk~v
End If51Testing软件测试网oU X VO/p_
51Testing软件测试网/R#HyNd*P6| i
19.取参数化数据的行数,只在某几行进执行某些语句
K9o ef8NI-p4{3k0row=datatable.GetSheet(3).getcurrentrow
I9e5Ch(D1Y&d0If row = 3 Or row = 4 Then51Testing软件测试网H'NpP$V6^o}:Q
51Testing软件测试网%}2QTEC/TM P
20.单选框置灰zhihui=Browser("下载中心--新增下载文件").Page("下载中心--新增下载文件_4").WebRadioGroup("downloadType").GetROProperty("disabled")
Q?7Y/Nv'~'|,C0If  zhihui=1 Then
OTEPk0End If
[4E0a7j_/kH5W0
B#HB o~1T&n;D7B1ip029.取树结构51Testing软件测试网1p\6p'YO,^wgC$Gg
Set Desc=descrīption.create
P(J']_!P3PU:Dg0Desc("micclass").value="WebTable"
b1I"Kk8H.Aq#R0Set List=Browser("Browser").Page("Page").Frame("main").ChildObjects(Desc)51Testing软件测试网;Rqr!TXXN(X
yuqi=List(0).GetROProperty("innertext")
t cZ k&V"j0msgbox yuqi51Testing软件测试网$e!B't,iM z.uD'B
yuqi=split(yuqi," ")51Testing软件测试网:P)Y k|ckw/sT
msgbox yuqi(1)
)gmh,F Av:A0
d l7Od3W*Y]T#m5g030.关闭所有IE
#p-QB2SoXC0SystemUtil.CloseProcessByName("iexplore.exe")
qs}s3\]8v9\UR051Testing软件测试网j n5[d%kh `
31.创建action template.
&^Iei6Fii1QB0    当希望在每一个新建action时都增加一些头部说明,比如作者、创建日期、说明等,用action template
#@1P(Z!Cy0    来实现最简单快捷。
T5?&J-e |0    方法:用记事本等文本编辑器,输入如下类似的内容:51Testing软件测试网wD4KS H |
          'Company: xxxx51Testing软件测试网\jO+|L ~
          'Author: xxx51Testing软件测试网zxDcTJ s E
          'Product: xxx51Testing软件测试网1C0X&Tl rH%[!V
          'Date: xx
"S#T b&be-m3m#h0         然后将文件保存为ActionTemplate.mst,并存放到QTP安装目录下的dat目录。
U:Az(tEY{ b]0
4By(y B*n5Xz.Iud C032.启动IE的语句:SystemUtil.Run "iexplore.exe", "http://www.***.com"51Testing软件测试网f0`9OOgQ.[$s
   关闭IE或其他程序的语句:SystemUtil.CloseProcessByName "app.exe"
`Lc8aL-` Zb9S;d+\0     or  SystemUtil.CloseProcessByWndTitle "Some Title"
6d$^,w2{!I#^s _2{n]051Testing软件测试网0i0}4t$[o
33.获取图片的名称
F~ o@.R[ a Sxh0ObjectName = Browser(…).Page(…).Image("Find").GetProperty("Name")51Testing软件测试网 nD*yA)gr~J:@;{"U
51Testing软件测试网7S0o\#A`O3N ey W
34.检查某个对象是否存在,如果存在弹出对话框说明对象存在。51Testing软件测试网aPG'B$h q W"M'K
If Browser("Browser").Page("Page").Applet("login.html").JavaEdit("username").Exist Then51Testing软件测试网B)|p Kn4]
MsgBox("The object exists.")51Testing软件测试网+f#wM/k |!C-R
End if51Testing软件测试网LXUG:m z2kF+u\n
51Testing软件测试网/~Q B6?fO%~&xK3n
35.同步点51Testing软件测试网[m7\1_p6j
Browser("数商3.0制作平台").Dialog("Microsoft Internet Explorer").WaitProperty "visible", True, 120000
Q6K[bvR0设置test/test settings/object synchronizationg timeout 一致
lW;}1c#| G+AYA^051Testing软件测试网d#k"Y'K7S"{FW'X
36.视图框显示为乱码时:调整原页面编码,在QTP/tools/change active screen51Testing软件测试网~:DK y)B ]V

~i!_p^%YcZ%[037.添加附件:
fQ.x+H hMM r0   Browser("**").Page("**").WebFile("filePath").Click
D |A"xp8}"s0Browser("**").Dialog("**").WinEdit("文件名(N):").Set "D:\**.jpg"
l4j6I-`j3t0Browser("下载中心--新增下载文件").Dialog("选择文件").WinButton("打开(O)").Click
n C P9QE%r'e0添加相应的对象

1u'@Q9z#^I0

1n[-{~0zP051Testing软件测试网OCE,`)m.Fc
38.在图片上右击添加:tools/web event recording configuration/custom settings
t5Dt!{-^xa8zQ0webedit/event/add/onblur,onchange,onfocus,onpropertychan,onsubmit
;P8BR| @QT3i0webdlement/event/add/onclick,onmousedown,onmouseup/listen always51Testing软件测试网v8`i)uh\"t
51Testing软件测试网p'Ma8["c @K
39.数据执行保护
Kp,kI(^&?#`ES0  方法一、右击我的电脑/高级/性能/设置/数据执行保护/为除下列选定程序之外的所有程序和服务启用DEP/添加被保护的程序。
2?M M(D-o[q&m0  方法二、C:/BOOT.INT修改noexecute=alwaysoff51Testing软件测试网X:L)C3dJ:rK

4y\$P @?040.在图片上右击添加:tools/web event recording configuration/custom settings51Testing软件测试网}V!d#tD7{r
webedit/event/add/onblur,onchange,onfocus,onpropertychan,onsubmit
~G v G`1gU0webdlement/event/add/onclick,onmousedown,onmouseup/listen always51Testing软件测试网eU M'N SR+q2_

3p#@o8{,N&x"HuS041.去掉前后空格51Testing软件测试网!i1e7VjZf
If trim(mingcheng)=trim(yuqi) Then
q/E0PiN6v1@051Testing软件测试网2~.R#j%psH
42.分类树问题解决
L|C/]%ilHX0Set Desc=descrīption.create51Testing软件测试网Zv&vPil7{;{
Desc("micclass").value="WebTable"
&NurG5V0Set List=Browser("Browser").Page("Page").Frame("main").ChildObjects(Desc)51Testing软件测试网f QDR9_
yuqi=List(0).GetROProperty("innertext")
$Cst on:e0msgbox yuqi
O$Vb_._D7J0yuqi=split(yuqi," ")
eFO'z-b/u*a+Q0msgbox yuqi(1)
D(` oyt!Y0
S|&c4YY,{$^]g051Testing软件测试网Fh&}8pf&l
43.引用自定义环境变量51Testing软件测试网:u6t7{X_9A^
Environment.LoadFromFile "D:\询价\case\环境\huiyuan.xml"
)]3e8cH J_K2q+x0c051Testing软件测试网X }&D"?/C/G OQhV
44.环境变量有2种,一种是QTP的内置变量,一种是用户自定义的变量。内置变量是可以直接就可以用,自定义环境变量需要在菜单中选择“文件”——>“设置”——>“环境”,在变量类型中选择“用户自定义”,然后进行添加,可以对添加的变量全部导出,导出的文件为.xml格式的文档。既然可以导出,那么必然可以导入.xml文件,你可以在该对话框中的选中“从外部文件导入”,然后添加其文件路径即可。(当然这些操作都可以直接使用脚本来实现,如:Environment.LoadFromFile(“FileName”))
fj ~d+S8GH(zq0例如:在桌面建立一个Var.xml,如下
aTq4o`0-<Environment>    //以这个开始的内部都是定义环境变量,直到以</Environment>结束51Testing软件测试网#P#r'{9}R)l/Ii
- <Variable>                           // 变量定义起始标识51Testing软件测试网|uFH o|
                 <Name>aa</Name>               // 变量名称
&CIn7l\*Bu/lE0                 <Value>11</Value>               // 变量值
!k{ E3\n\}0        </Variable>                            // 变量定义结束标识
%^9hFg#z h]0- <Variable>
_a^2Cmy0                 <Name>bb</Name>
;s4C*A^$mB$` i0                 <Value>22</Value>
.S eSv YxoQ^P%A0        </Variable>
2sPK#cfn0E f;a v+^z0- <Variable>51Testing软件测试网CC*Ur$W"e
                 <Name>cc</Name>
6^ d:ND@nv0                 <Value>33</Value>51Testing软件测试网wH/b\sM5k#H:h
              </Variable>51Testing软件测试网4o7g/Ow?,V
  </Environment>51Testing软件测试网.V&B&G1l3nGPX
然后导入本测试的环境变量文件中,在专家视图里编写下面的脚本代码:51Testing软件测试网U)J8@&BR9bSB
Dim aParam351Testing软件测试网!F*b GWW9e@O
aParam3=Environment.Value(“aa”)          // 调用环境变量51Testing软件测试网o#s X.C)W rnI P
msgbox aParam3
;E:}RR9k:x0运行测试,会输出”11”51Testing软件测试网 Q\ H\F0V"og/E3s

z3{Czn$w0M045.在HTML编辑器中写入数据
W4t*wj-{n7{0r0用低水平录制写入编辑器过程,增加编辑部器前的对象,加入click事件,再用TAB51Testing软件测试网$m)a6^"s|:Z ]'G:h
例如:51Testing软件测试网;Eqix3sxJhi
Browser("广告管理").Page("广告管理").WebEdit("descrīption").Click
*?Z!r)o:b0Window("Microsoft Internet Explorer").WinObject("Internet Explorer_Server").Type mictab
4{ R#VKm}8q }0Window("Microsoft Internet Explorer").WinObject("Internet Explorer_Server").Type "aaa"51Testing软件测试网a_lW}6xn;uP

)],TB i{Fv#Fo046.Browser("creationtime:=1").close
$L4U U3}w!xt#T1w1p$I0   两个页面title相同无法识别时使用描述必编辑51Testing软件测试网/fi(k4@0wI2ht
    Browser("creationtime:=1").page(title:=****).WebEdit("name:=***").Set "***"
c7H-Po(~l7j0    或Browser("creationtime:=1").page(index:=1).WebEdit("index:=0").Set "***"51Testing软件测试网&er`(tpP#Z

s(D-~i]E047.场景恢复:51Testing软件测试网/H8d]A{
   当某些提示框会在不定期时有提示时,如果自动点击确定或某些按钮
#r%V5sO&v/Cm|2k0   1、tools/recovery scenaril manager,制作相应的提示框和要点击的按钮,并保存51Testing软件测试网4e"_-J9{ \3FQ
   2、test/settings/recovery,添加刚保存的.qrs51Testing软件测试网,vRjDL ~
51Testing软件测试网`X)F P/?`,z
48.输入验证码,先提示一个输入框,在输入框内输入验证码,点击[确定],把输入的验证码框51Testing软件测试网 Eln+_;ru
   Dim a51Testing软件测试网Z+N-rx[V
  a = InputBox("输入名字")51Testing软件测试网 @ y-\-Jek2d

~UJ\,z%RjQu049.对象库中对象名称不分为_2,_3...设置:tool/options/web/page/fram options/
G;X_ y r'sd0     crate a new page test object for为different test object descrīptons51Testing软件测试网 W"F`a0| Yr Xl
     crest a new frame test object for为different test object descrīptions51Testing软件测试网 K,T\jF iC
51Testing软件测试网4`;S#o A6T7z ^@
50.验证测试输入框输入的最大允许字数功能的正确51Testing软件测试网*a:ar!Q0oT4J:i[

_ M2M.s b0QTP脚本代码中编写51Testing软件测试网O r;R,x/GK vB0K
Set aa=Browser("Browser").Page("Page").Frame("main").WebEdit("PayTypeName")
_{"IA\%hCo0if konglen(aa,20) eqv true then51Testing软件测试网c6`YV^)n7}!l0m
reporter.ReportEvent 0,"添加支付方式,支付方式输入框允许输入的最大字符功能正确",""
^|q{|t5Q7Vtm9t0else51Testing软件测试网?2n9}P4I1^1{-n
reporter.ReportEvent 1,"添加支付方式,支付方式输入框允许输入的最大字符功能错误",""51Testing软件测试网I&R J0ib8U J7^6g
end if51Testing软件测试网fV-L}L4sqEp
51Testing软件测试网G+s+d8QM [;DG9U
此函数的功能为:验证测试输入框输入的最大允许字数功能的正确,函数可写在public.vbs中51Testing软件测试网XLf Z7n{7RF!v
Function konglen(duixiang,guifanshu)
]5P7GA4j5j6G0duixiang.Click
t9k _ x3H*h#om0wait 151Testing软件测试网 dY2_[5f%b+ft
Setting.WebPackage( "ReplayType")=2
O"j+uYz4A0Set ōbj=createobject("wscrīpt.shell")51Testing软件测试网,CdZe.}
i=0
-p E"Y4uv J0ōld="a"
CacL0h[){ej5BL0xin="b"51Testing软件测试网6NT [R.i
while old<>xin
.rA tB l,y0ōld=duixiang.GetROProperty("value")
E&j!s)x1rQ0Z0i=i+151Testing软件测试网X^Q,_d9e
wait 0,2051Testing软件测试网CmXO7Ec ^@
obj.sendkeys "1"
DX~(A;X`0wait 0,2051Testing软件测试网UB gv{z7H
xin=duixiang.GetROProperty("value")
s^*N9B0if_\0wend51Testing软件测试网P K|&iy Sl
'msgbox i51Testing软件测试网 n#u:wv8uyg{
If i-1=guifanshu Then51Testing软件测试网9ZFR)u-h!D;Z
konglen=true51Testing软件测试网-b9@E7a&g7I0\`/o7^*dY
else
)L3vY\1R}0konglen=false
n_Hk!{Uc\b0End If51Testing软件测试网v#?1E6WJnc
     Setting.WebPackage( "ReplayType")=151Testing软件测试网 { T3Y'e2[r/y&~
End Function
G juo;M051Testing软件测试网;jf`&hD/H[7L;ZIj
51.超时设置:Setting("DefaultTimeout") =100000051Testing软件测试网`k r |\3jy _

x"bOd]z,e052.共享对象库:Set App = CreateObject("QuickTest.Application")51Testing软件测试网9V/j9b8G,_S4YqQ3mw
App.Test.Settings.Resources.ObjectRepositoryPath = "path"51Testing软件测试网:lyE2z3\*bDO)C
51Testing软件测试网y+amIW0zg
53.取颜色   browser("b").page("p").Object.currentStyle“:.color51Testing软件测试网v*S#}6H'HF,k ?
54.显示行号设置:Tools- --> Editor Options...-->General-->Show line number,

VU9x1fQL6_\S051Testing软件测试网+jz0_#E/b SE.p


1N/vPQIl0以上内容源自与网络

%A G`"M8fsO0l0

TAG: QTP qtp

 

评分:0

我来说两句

Open Toolbar