QTP

/Tag: QTP

QTP中:使用VBS调用Excel截图功能

因为需要将测试截图存储于Execl中,但是网上找到的代码都是只能截一张图的,如果截多张会导致所有图都在第一排。而QTP自带的那个截图软件事实上只能得到一张图片,还得自己想办法将图导入到Excel。 搜寻几个小时无果之后,决定自己写一个,虽然有些麻烦,总算是搞出来了。下列代码给用得到的朋友做个参考: 注意:因为用到了capturebitmap这个方法,还有获得一些参数,此段代码只可以在QTP中使用。 ''''''''''''''Capture Screenshot''''''''' Dim oExcel,ExcelBook Dim IntCaptureCount,LngTotalRowinExcel,j Dim [...]

By |2012-05-07T02:19:38+08:00五月 7th, 2012|技术流|2 Comments

用Excel VBA连接QC,并下载Test Case的代码

事实上,这样的功能在安装了QC的Excel插件后,会自动安装到Excel根目录下面一个下载工具,在excel 的add-in里可以看到. 但是由于种种原因,导致很多朋友无法正常使用该功能,在此将代码附加如下,仅供参考(实测可用) Option Explicit Public QCConnection 'Return the TDConnection [...]

By |2019-06-22T23:42:53+08:00五月 3rd, 2012|数字货币|1 Comment

QTP error:Object Required:”WScript”

在QTP执行中,有这样一个有趣的问题,下列代码: Set WshShell=Wscript.CreateObject("WScript.Shell") WshShell.Run "notepad" 将此段代码保存与txt中,再重命名为*.vbs是可以正常执行的,打开一个记事本程序。 但是放在QTP中,就无法正常执行,报错为:Object Required:"Wcript" 解决方案:只要将Wcript去掉就可以了:Set WshShell=Wscript.CreateObject("WScript.Shell") [...]

By |2012-04-26T02:42:00+08:00四月 25th, 2012|技术流|0 Comments

QTP中OptionalStep的用法

在使用QTP时候,经常遇到的问题就是,在经过了某些操作之后,程序将出现一个岔口。A岔口将弹出窗口,而B岔口则无弹出窗口。 面对这样的问题,最常见的解决办法是使用Exist方法。判定窗口或控件是否存在,存在则点击。 在这里,我跟大家介绍另外一个方法:OptionalStep 具体语法如下:OptionalStep.Browser("Browser").Dailog("Security Warning").Winbutton("Yes").Click 在这里,问题所在是有个偶尔会弹出的安全窗口,用Exist则需要配上If进行判断,而用OptionalStep则只需要一步,即有该窗口即点击Yes,无则跳过,同时在执行报告中生成一个报告。 经实测,如果对象存在,则optionalstep的执行速度与正常语句几乎相等;如果对象不存在,则需要45秒的时间来跳过这一步。 从时间上讲,Optionalstep对比exist并没有优势,仅有的优势在于更简短的代码。但在某些特定的环境中,optionalstep却又能有着exist不可比拟的优势。所以可以作为Exist的一种辅助语句,应用与程序之中。

By |2013-12-10T22:18:56+08:00二月 16th, 2011|技术流|0 Comments

在QTP中取出数据表(Datatable)中的行数和列数

columnCount = DataTable.GetSheet("Global").GetParametercount  '取得Global表单中的总列数(所谓总列数指的是所有有参数的列),返回一个整数 rowCount = DataTable.GetSheet("Global").GetRowCount      '取得Global表单中的总行数(总行数指的是所有所有数据的行),返回一个整数 DataTable.Value ("Parm")="Good" '运行时将列Parm的值设置为Good,需要注意的是此值只在运行时有效,若想将其一直保存则需在代码中添加Export相关的操作。

By |2013-12-10T22:19:39+08:00一月 19th, 2011|技术流|0 Comments

QTP中getTOProperties的用法

getTOProperties是获取属性数量,例如一个对象,在对象库中已添加的属性有name, type, class三种,则该对象返回值为3。 请看如下例子(测试前请将Google首页加入对象库) Set oWebEdit=Browser("Google").page("Google").webedit("q") '首先设置对象 Set TOProps=oWebEdit.getTOProperties() '把这个对象的所有属性设置到TOProps之中。 [...]

By |2013-12-10T22:19:52+08:00一月 17th, 2011|技术流|0 Comments

QTP工程的核心

QTP工程的核心在哪里呢?不同的QTP开发人员可能会给出不同的答案,我自然也有一个答案,但是可以肯定的是,这个答案不是VBS代码,因为遍布互联网的VBS解决方案已经可以解决你遇到的99%的技术问题。和所有程序一样,到真正高端的应用,所考验的,还是你对代码的理解,和你头脑中的逻辑能力。QTP是一种常用于回归测试的软件,其技术核在于对对象的识别。这种识别能力将以往需要自己编写代码实现的过程通过可视化完成了。可以说这是软件自动化测试的一个飞跃。 与开发不同的是,QTP是一种测试用软件,如果说开发一款软件是在平地上建造大厦的话,那么QTP就是一个质检员,在大厦建成(或者正在建造)的时候,对大厦应该为业主提供的每一个功能进行检查——这些检查的细节可以参考大厦建造方提供的图纸和说明书,而现实中往往这些东西都非常难读懂。但为了工作,你又必须懂得他,于是,我们开始真正的接触到QTP工程的核心:沟通和理解。 你必须从天书一般的说明书中找到你想要的信息,然后尽量从那些如同甲骨文一样难懂的信息中提取出一些你想要的信息,然后去找任何一个可能了解这个大厦内部结构的人,从蛛丝马迹开始,一步步地找到你想要的东西,期间过程痛苦,但对人的锻炼非常巨大。可以说其难度已经超过了手工测试——这也许就是为什么QTP开发人员的薪水要比同等级的手工测试人员高一些的原因。 所以,我的答案就是,QTP工程的核心,不在VBS技术,只在你对程序的解读——也就是沟通与理解能力。

By |2013-12-10T22:22:49+08:00十一月 25th, 2010|技术流|0 Comments

QTP的工具书太少了!

因为工作需要,想更深入地了解一下QTP的知识。在当当等网上书城搜了一下,发现QTP相关的书籍只有有数的几本,而且……内容大同小异,更有甚者,将QTP自带的英文手册翻译整理一下,就是一本QTP指导类书籍了。比起琳琅满目的Java类书籍,QTP资料可谓少得可怜——不过比起07年时候可是多了5倍以上,因为我记得那时候全网只能搜到2本。 在英文网站上搜了搜,发现一本印度老兄写的QTP相关的书,非常受好评。是全英文版的,要49美金,加上邮费,一共要人民币接近500块!没有中文翻译版……可见国内的软件自动化测试要落后国外太多——明显是需求跟不上,导致书出来了连翻译的人都没有! QTP虽然有着自动化测试不可避免的缺点,但是也无可否认其在回归测试中的卓越表现,所以,我认为在软件测试市场日趋成熟的中国,QTP终究会得到大家的支持。 纠结啊,究竟买不买那本书呢?这本《QuickTest Professional Unplugged》的确是鼎鼎大名啊。 有需要的朋友可以到亚马逊书城找到这本书的具体信息:http://www.amazon.com/QuickTest-Professional-Unplugged-Tarun-Lalwani/dp/0578025795/ref=sr_1_2?ie=UTF8&qid=1290265291&sr=8-2

By |2013-12-10T22:22:42+08:00十一月 20th, 2010|互联网&IT|1 Comment

QTP生成随机字符(纯字母)的VBS语句

想用QTP生成个随机字符,在网上搜了一下,找到一个前辈写的函数,复制过来发现不好用,看了一下,发现这个函数是用时间生成随机字符,字符可能是任何数字,字符或字母。且其中定义了一个函数内未声明的变量,不知此变量导致了该函数的无法运行。而我的项目要求此随机字符必须是数字。又在网上找了半天,没找到合适的,纠结了一下,心想算了,还是我自己写吧。 于是自己写了一个,用ASCII码随机出来,可以生成纯字母的随机字符串,感觉甚是和谐。 参数N为随机字符的长度,此函数仅仅能生成包含字母的字符,如果要包含数字,修改 sTemp = stemp + 65行内容(具体参照ASCII码相关信息) Dim i, [...]

By |2013-12-10T22:22:28+08:00十一月 16th, 2010|技术流|0 Comments

QTP 中的exist方法与do…loop的配合使用

使用QTP录制内容时经常会遇到如下问题:在前一个页面点击了‘提交’,需要到下一个页面查看提交后的结果,但是,有时由于系统反应迟缓或数据量太大的原因,导致在下一个页面尚未刷出之前,qtp就开始进行检查,这样,就会造成无法找到对象的错误,使程序意外终止。 其实,qtp内置了解决这种问题的一个语句‘exist’,用法如下: Browser("Internet Explorer").Page("搜索引擎亲和度查询 (我要啦提供)").Link("SEO 数据").exist(3) 其中,括号里的3表示等待的时间,即三秒后查询名叫‘SEO数据’的连接是否存在,当然,这个方法要配合if then 一起使用才有效,如下: if [...]

By |2013-12-10T22:22:21+08:00十一月 2nd, 2010|技术流|0 Comments