与您一起分享在测试过程中的快乐与辛酸...

发布新日志

  • 在QC上远程执行QTP问题总结

    2010-06-25 16:20:23Top 3 Digest 3

    根据自己的实际操作,并结合网上给定的一些方法,终于搞定了在QC上远程执行QTP脚本的问题。

    出现“RPC服务器不可用”或“The RPC server is unavailable”这种问题,请仔细检查以下各种情况:

    1.需要加入域!服务器和客户端都需要加入同个域,但是我这边经过实际操作,发现客户端系统如果是Win7不加入域也能执行,WinXP系统必须加入域!(注:用的是win 7企业版,其它版本有待验证)

    2. 启动服务器RPC服务。方法:控制面板-管理工具-服务-“Remote Procedure Call(RPC)”,启动一下(自动),服务状态“启动”;同时要保证执行机中的Server和Workstation服务已启动。

    3.服务器端IIS没装。解决:安装IIS。以2000系统为例,控制面板-添加删除程序-添加删除windows组件-“Internet 信息服务(IIS)”打一下勾,下一步……

    4.服务器里的QTP,需要设置为允许其他调用。

    5.关闭防火墙

    6.设置QC的代理服务(SystemTest Agent),用户名、密码和域,其中用户名和密码就是服务器的登录帐号和密码。

    7.DCOM配置,开启服务器中的“DCOM Server Process Launcher”服务,设置启动类型为“自动”,需要重新启动系统。

    (1)运行 -> dcomcnfg.exe -> 组件服务 -> 计算机 -> 我的电脑,右键“属性”,选中“COM 安全”选项卡,将“访问权限”和“启动和激活权限”设置添加Everyone用户,并设置远程启动和远程激活权限为允许。
    (2)然后分别右键打开DCOM配置下面的AQTRmtAgent、QuickTest Professional Automation和TlpRmtServer组件属性,将身份验证级别设置为“无”,将“安全”选项卡下面的“访问权限”和“启动和激活权限”自定义,添加Everyone用户,并设置远程启动和远程激活权限为允许。在身份“标识”选项卡下面选择“交互式用户”。

    8.NT的GUEST用户不能禁用

    9.如果执行状态出现“未指定的错误”,这是由于交互式用户,QTP远程桌面登录过服务器引起的,需要重新注销服务器,然后不要用远程桌面登录服务器,需要在服务器本机上登录系统。

    10.如果执行状态出现“拒绝访问.”,请仔细查看服务器日志事件信息,例如我这边出现过“应用程序-特定 权限设置未将 COM 服务器应用程序(CLSID 为
    {6108A56C-6239-41F6-8C0F-94D9CE0D4B61}
    )的 远程 激活 权限授予用户 NT AUTHORITY\ANONYMOUS LOGON SID (S-1-5-7)。”这样的错误只要找到DCOM组件下面的{6108A56C-6239-41F6-8C0F-94D9CE0D4B61},将“安全”选项卡下面的“访问权限”和“启动和激活权限”自定义,添加ANONYMOUS LOGON和NETWORK SERVICE用户,并设置远程启动和远程激活权限为允许。如果DCOM组件显示灰色无法编辑,去注册表找到这个CLSID并更改所有者权限。

    总之一句话,出现问题查看系统日志,根据提示信息去解决问题。

  • 【转】QTP插件破解方法

    2010-03-11 15:33:21Top 3 Digest 3

    -----------方法如下:

    第一步:完成安装.net插件,这是,插件界面会显示出.net和WPF插件,并且有14天的测试license

    第二步:正常使用,等14天过完之后,也就是插件的状态变为 no license 之后,将HKEY_LOCAL_MACHINE\SOFTWARE\Mercury Interactive备份

    第三步:找到HKEY_LOCAL_MACHINE\SOFTWARE\Mercury Interactive\QuickTest Professional\Add-In Manager\WPF,将名称为“默认”的键值修改为“QTCoreAddin”,再将“ProgID”的键值修改为“Mercury.AddinBaseObj”

    第四步:同理,找到HKEY_LOCAL_MACHINE\SOFTWARE\Mercury Interactive\QuickTest Professional\Add-In Manager\WinForms,将将名称为“默认”的键值修改为“QTCoreAddin”,再将“ProgID”的键值修改为“Mercury.AddinBaseObj”

    第五步:关闭注册表,重启软件,.net插件和WPF插件的状态都已经变成了licensed状态

    可以通过这个方法再尝试破解JAVA等其他插件! 呵呵~大家自由发挥吧!

  • [转]QTP10.0破解方法

    2009-02-22 20:33:41Top 3 Digest 1

    QTP10的破解方法与之前版本类似!
    一、从HP官方网上下载QTP10.0并安装。
    二、安装成功后,在C:\Program Files\Common Files\Mercury Interactive下创建文件夹:License Manager
    三、将破解工具mgn-mqt82.exe复制到C:\Program Files\HP\QuickTest Professional\bin下。
    四、运行mgn-mqt82.exe,ok,关闭。
    五、用记事本打开License Manager下的lservrc文件,将第一行#前的代码Copy。
    六、将代码复制到license向导中的license输入的地方,点击完成就可以了。
       恭喜成功了!

    附:
    破解软件:
    mgn-mqt82.rar(235 KB)

  • QTP相关问题及解决方法

    2014-09-02 14:54:40

    1、在QTP中LINK是弹出的新窗口,回放过程中焦点没有显示在新窗口中?

    解决方法:Tools-Web-Advanced-Run setting,把Replay type类型改为Mouse即可!


    2、解决ExcuteFile执行命令时出现“无效字符”的问题

    解决方法:在QTP中执行类似:ExecuteFile "c:\regress\vbs\data.vbs" 这样的语句时会出现“无效字符”的提示错误,这是因为QTP对字符集的处理能力非常弱,只要把data.vbs这个文件另外存为"ANSI"编码就可以了


    3、QTP配置ODBC数据库,需要用到mysql驱动,安装"mysql-connector-odbc-5.3.4-win32.msi" 时报错
    Error 1918. Error installing ODBC driver MySQL ODBC 5.3 ANSI Sriver, ODBC error 13........
    解决方法:运行vcredist_x64 或 vcredist_x86,重新安装Mysql驱动即可
  • QTP已停止工作解决办法

    2014-05-07 13:27:20

    QTP连接QC操作过程中,突然QTP崩溃了,提示已停止工作,
    查看系统应用程序日志,错误如下:

    解决办法:
    在C:\Windows\SysWOW64下面找到了ykframe.dll,直接删除,提示不能删除,已被ALM-Client应用,关闭QC客户端连接页面,删除并清空回收站。在打开QTP,问题解决!
     
  • QTP不同测试环境中要注意的一些事情

    2014-04-12 23:25:32

    问题1:win7,xp系统不同导致引入excel文件的时候报无端的错误。

    错误信息:Data Table.ImportSheet.操作失败 文件无效!

    很简单,不同的系统的问题。

    解决方法:将对应的你所运行的系统环境下,打开对应的你需要导入的excel文件,另存为以下即可;


    问题2:导入的excel在操作datatable.localsheet.getrowcount的时候总是得到很多行数据,而不是预期的excel中的数据行数。

    解决方法:

    将对应的excel中的数据删除不必要的行,然后再保存即可;



    问题3:迁移到win7系统后,运行脚本,提示如图错误,以为是权限问题,折腾了半天,

    最后才发现是因为获取系统日期格式错误而导致xls文件没找到!汗~

    解决方法:

    把系统时间的日期格式,短日期改成yyyy-M-d或你所指定的格式即可!

  • QTP的Debug Viewer调试功能不可用的解决方法

    2010-07-22 10:31:54

            在QTP操作过程中,突然发现原先可以正常查看的Debug Viewer中的变量值没有显示了,想到可能是装了VS2008的问题,按理说装了VS2008,然后注册下PDM.DLL后能增强调试功能,怎么到我这却连调试变量都没法显示了?于是找原因,设置VS2008的调试功能,发现不起作用...无奈百度谷歌,终于明白了QTP中的调试功能是和Microsoft Script. Debugger结合在一起的,如果QTP产生的脚本也没法调试,可以选择重新安装Script. Debugger,从http://www.microsoft.com/downloads/details.aspx?familyid=2F465BE0-94FD-4569-B3C4-DFFDF19CCD99&displaylang=en 下载Microsoft Script. Debugger并安装,重启QTP后调试信息又回来了,至此问题解决!
  • QTP安装许可证失败

    2010-06-21 10:09:04

     

    安装许可证密钥失败。
    Error[19]:Failed to add license code "UNKNOWN" to the license server on host "no-net".

    这个问题是在远程安装QTP时出现,并且利用“哔”的方法填写license,这个license是单机版的,所以解放方法也很简单,到需要安装QTP的机器上去进行本机安装,不要使用远程桌面。

    同理,远程无法打开QTP.exe,所以说,无法进行远程桌面的环境下打开QTP。

  • QTP无法录制下拉菜单的解决方法

    2010-04-27 12:13:26

    QTP默认录制方式是无法录制下拉菜单的,必须修改设置后再录制

    修改设置如下:

    在tools -> web event recording configuration 点击custom settings... 展开Web objects,

    选种webelement,点击event -> add -> onmouseover 。并确定在record栏内,状态是enabled。

    然后再重新录制你的脚本。

    执行录制后的脚本,发现无法回放成功,
    这是因为脚本只录制了鼠标的onmouseover事件,却没有录制click事件,所以脚本录制完后要手动添加click事件。
  • QC与QTP的连接设置

    2010-04-27 12:05:41

    首先,安装插件,打开QC首页,点击第三项Add-Ins Page -More Mercury Quality Center Add-ins 进入此界面后点击QuickTest Professional Add-in在此界面点击下载安装成功后,在开始-程序中有个新安装的程序Quick Test Professinal add in for Quality Center

    登录QC进入 Test plan ,Create New Test ,Test Type中会有QUICKTEST TEST,并且可以建立QTP的测试用例

    进入QTP主界面Tools-Options,在Run中把Allow选上以及Submit a defect to Qualiyt Center for each failed step选中后确定保存设置。

    在QTP主界面中点击Quality Center Connection Server中输入QC主页面地址点击connect按钮,QTP连接到服务器上。连接成功后会在QTP右下角出现一个标志(QC图标)

    把QC连接成功后,就是QTP右下角出现QC图标后,再进行Submit a defect to Qualiyt Center for each failed step勾选

  • 【QTP项目实战】在WebTable对象中使用ChildItem方法

    2010-03-18 12:57:07

    ChildItem方法
    语法:
    object.ChildItem (Row, Column, MicClass, Index)

    作用:用于获取单元格中的测试对象

    项目实战举例:
    1、修改订单号为“DD0000315”的单据,点击操作列中对应的“修改”图标进入修改页面。

    orderNo="DD0000315"
    num=Browser("xx").Page("xx").Frame("xx").WebTable("xx").RowCount
    For i=0 to num
       If Browser("xx").Page("xx").Frame("xx").WebTable("xx").GetCellData(i,2)=orderNo Then
       Browser("xx").Page("xx").Frame("xx").WebTable("xx").ChildItem(i,9,"WebElement",0).Click
    'Index:0=修改,1=提交,2=入库通知,3=审核,5=打印
       End If
    Next

    2、选择订单号为“DD0000317”前面的复选框,点击操作栏中的的“提交”图标进入提交页面。

    orderNo="DD0000317"
    totalRowNumber=Browser("xx").Page("xx").Frame("xx").WebTable("xx").RowCount
    For i=0 to totalRowNumber
     If Browser("xx").Page("xx").Frame("xx").WebTable("xx").GetCellData(i,2)=orderNo Then
        Browser("xx").Page("xx").Frame("xx").WebTable("xx").childitem(i,1,"WebCheckBox",0).Set "ON"
     End if
    Next
    Browser("xx").Page("xx").WebButton("提交").Click

    >>项目实战操作图:

  • QTP连接oracle操作方法

    2010-03-16 11:30:31

        要从QTP接Oracle数据库,前提是已安装好Oracle客户端。然后在 Oracle Net Configuration Assistant 中完成以下配置:
    1. 监听程序配置,默认即可。
    2. 命名方法配置:本地。
    3. 本地Net服务名配置-添加-选择<Oracle8i或更高版本数据库或服务>-DBName(可以写成你要链接的数据库名,也可以自己定义,但是要记住,因为这个名字会在QTP数据库链接设置<TNS Service Name>中用到)-选择协议<TCP>(根据实际情况)-设置主机名:192.168.1.190(数据库所在电脑的IP或是机器名),并根据实际情况设置段口号,默认为1521-进行测试,提示成功就说明在Oracle客户端建立数据库链接成功了。恭喜你。

    4.获取oracle的连接串的方法,在本地新建一个.txt文件,修改扩展名名*.udl,双击*.udl文件,打开数据库链接属性,定位到“提供程序”选显卡,选中 oracle的连接  oracle provider for OLE DB,点击下一步,输入数据源,数据库用户名以及密码,点击测试连接,然后用UE或记事本打开*.udl文件,oracle的连接串已经生成了,例如
    Provider=OraOLEDB.Oracle.1;Password=test;Persist Security Info=True;User ID=test;Data Source=192.168.1.190
    以上就是udl文件生成的oracle连接串

    5.在QTP中来连接数据库

    Dim Cnn  '定义一个数据库连接串
    Set Cnn = CreateObject("ADODB.Connection")
    Cnn.Open ="Provider=OraOLEDB.Oracle.1;Password=test;Persist Security Info=True;User ID=test;Data Source=ORADB_192.168.1.190"

    If Cnn.State = 0 Then      '判断数据库连接是否成功
         Reporter.ReportEvent micFail, "testing", "连接数据库失败"
    else
         Reporter.ReportEvent micPass, "testing",   "连接数据库成功"
    End If

    if Cnn.State<> 0  then
        Set Rs=CreateObject("ADODB.Recordset")    '生成记录集对象
        sql ="select * from cust"  '从数据库中查询cust的所有记录
        Rs.Open sql ,Cnn,1,3  '执行sql语句,记录可以自由移动,单数记录处于只读模式
        uid=Rs("custid") '取得字段为custid的记录,游标定义在第一行,所以取得的是该字段所在行的第一行数据
        msgbox uid
    End If

    RS.close       '关闭记录集
    Set RS=nothing  '释放对象
    Cnn.Close   '关闭数据连接
    Set Cnn=nothing '释放对象

    6.RecordSet对象(代表来自基本表或命令执行结果的记录的全集。)
    为了更精确地跟踪数据,要用RecordSet组件创建包含数据的游标,游标就是储存在内存中的数据:

      rs = Server.CreateObject("ADODB.RecordSet")

      rs.Open(sqlStr,conn,1,A)

       RS.OPEN SQL,CONN,A,B

    A:

    ADOPENFORWARDONLY(=0)
    只读,且当前数据记录只能向下移动

    ADOPENKEYSET(=1)
    只读,当前数据记录可自由移动

    ADOPENDYNAMIC(=2)
    可读写,当前数据记录可自由移动

    ADOPENSTATIC(=3)
    可读写,当前数据记录可自由移动,可看到新增记录

    B:

    ADLOCKREADONLY(=1)
    缺省锁定类型,记录集是只读的,不能修改记录

    ADLOCKPESSIMISTIC(=2)
    悲观锁定,当修改记录时,数据提供者将尝试锁定记录以确保成功地编辑记录。只要编辑一开始,则立即锁住记录。

    ADLOCKOPTIMISTIC(=3)
    乐观锁定 ,直到用Update方法提交更新记录时才锁定记录。

    ADLOCKBATCHOPTIMISTIC(=4)
    批量乐观锁定,允许修改多个记录,只有调用UpdateBatch方法后才锁定记录。

    当不需要改动任何记录时,应该使用只读的记录集,这样提供者不用做任何检测。
    对于一般的使用,乐观的锁定可能是最好的选择,因为记录只被锁定一小段时间,
    数据在这段时间被更新。这减少了资源的使用。

      在RecordSet组件中,常用的属性和方法有:

      rs.Fields.Count:RecordSet对象字段数。

      rs(i).Name:第i个字段的名称,i为0至rs.Fields.Count-1

      rs(i):第i个字段的数据,i为0至rs.Fields.Count-1

      rs("字段名"):指定字段的数据。

      rs.RecordCount:数据记录总数。

      rs.EOF:是否最后一条记录。

      rs.MoveFirst:指向第一条记录。

      rs.MoveLast:指向最后一条记录。

      rs.MovePrev:指向上一条记录。

      rs.MoveNext:指向下一条记录。

      rs.GetRows:将数据放入数组中。

      rs.Properties.Count:ADO的ResultSet或Connection的属性个数。

      rs.Properties(item).Name:ADO的ResultSet或Connection的名称。

      rs.Properties:ADO的ResultSet或Connection的值。

      rs.close():关闭连接。

  • 解决ExecuteFile调用外部的VBS文件时提示”无效字符”的问题

    2010-02-03 16:52:06

    出现这个问题的原因:
    在QTP新建的Function Library文件是以Unicode编码被保存下来的,而正常执行的文件一定要是ANSI编码,所以导致出现”无效字符”的提示

    解决办法:
    1. 用记事本打开该vbs文件,然后点击”另存为”,编码选择”ANSI”,覆盖掉原来的文件即可
    2. 对于要用ExecuteFile引用的vbs文件,最好用记事本或其它编辑工具保存为ANSI编码的,QTP只能保存成Unicode的所以不要用QTP(这也算是QTP的一个bug)

  • 破解QTP9.2java插件

    2009-03-05 12:34:30

    QTP9.2下载地址:
    http://esd.mercury.com/akdlm/trial/qtp/qtp92.zip
    QTP9.1 java插件下载地址:
    http://esd.mercury.com/akdlm/trial/qtp/qtp-java-addin.zip

    1.安装QTP9.2,维护号:0123-2820602186
    2.把mgn-mqt82.exe复制到QTP安装目录/BIN下,破解QTP9.2
    3.安装QTP9.1java插件
    4.将破解文件QTPro.EXE复制到QTP安装目录/BIN下,覆盖就可以了!

    附:mgn-mqt82.exe和破解文件QTPro.EXE
    mgn-mqt82.rar(235 KB)
    QTPro.rar(607 KB)

Open Toolbar