标签: qtp

Mercury Quick Test Pro和虚拟机:从一台客户端计算机运行,但不在另一台客户端计算机

我有一个安装了Mercury Quick Test Professional 9.2的虚拟机(VMware).我有一个测试应用程序的脚本,使用Infragistics库在VB.NET中编写.

如果我使用笔记本电脑(使用远程桌面)访问此虚拟机,一切正常,脚本完成没有问题.我的笔记本电脑使用Windows经典主题运行XP.

如果我使用另一台计算机(使用远程桌面)访问此虚拟机,则脚本启动正常,但在中途停止,而没有来自QTP的错误消息,没有.这台机器运行XP,具有Windows经典主题.

两种设置之间的一个区别是屏幕尺寸,笔记本电脑是1920x1280,其他机器是1280x1024.

脚本停止的步骤涉及检查UltraWinGrid中的复选框.显示复选框本身,在两种情况下均显示在屏幕上.

有没有人之前有这个问题,或者知道为什么两台机器之间的行为不同?

谢谢.

vb.net automated-tests qtp

6
推荐指数
1
解决办法
5963
查看次数

在vbscript中调用C#dll

我试图从QTP调用C#dll(使用vbscript).我尝试了很多没有成功的事情:

  • Visual Studio 2010
  • 创建C#类libary(st.dll)

码:

using System;
using System.Collections.Generic;
using System.Text;   

namespace st
{
    public class Class1
    {
        public static int GetValue()
        {
            return 34;
        }
    }
}
Run Code Online (Sandbox Code Playgroud)
  • regasm /codebase st.dll
    • 失败'因为它不是有效的.NET程序集'

在QTP/vbscript中,我试过了

  • extern.Declare micInteger, "GetValue", "e:\st.dll", "GetValue"
    • 返回消息:'无效的过程调用或参数'

无论QTP如何,我都非常感谢有关如何从.vbs文件调用c#dll的任何见解.

c# dll vbscript qtp

6
推荐指数
1
解决办法
7456
查看次数

QTP:检查如果字符串数组包含值

我无法让我的测试用例正确运行.

问题在于下面的代码,第一个if语句是准确的.QTP抱怨需要一个对象

For j=Lbound(options) to Ubound(options)
    If options(j).Contains(choice) Then
        MsgBox("Found " & FindThisString & " at index " & _
        options.IndexOf(choice))
    Else
        MsgBox "String not found!"
    End If
Next
Run Code Online (Sandbox Code Playgroud)

当我检查数组时,我可以看到它被正确填充,'j'也是正确的字符串.任何有关此问题的帮助将不胜感激.

vbscript automated-tests qtp

6
推荐指数
2
解决办法
5万
查看次数

如何调用函数库中的函数(带参数),从变量中获取函数名?

我正在尝试使用getref从与测试关联的函数库中调用函数.我的代码 -

在行动1

str = "sample"
msg = "hi"
x = GetRef("Function_"&str)(msg)
msgbox x
Run Code Online (Sandbox Code Playgroud)

在函数库中,

Function Function_sample(strMsg)
    Function_sample = strMsg
End Function
Run Code Online (Sandbox Code Playgroud)

我收到了错误 -

"无效的过程调用或参数."

但是如果函数放在同一个动作中,它可以正常工作.如何调用函数库中的函数(带参数),从变量中获取函数名?

vbscript qtp

6
推荐指数
1
解决办法
1万
查看次数

如何获取测试对象的逻辑名称(存在于关联的共享OR中)?

我们说我传递Browser("MyBrowser").Page("MyPage").WebCheckBox("MyBox")给一个函数:

MyFunction (Browser("MyBrowser").Page("MyPage").WebCheckBox("MyBox"))
Run Code Online (Sandbox Code Playgroud)

稍后,该函数想要记录所接收的测试对象的逻辑名称(在这种情况下,当然是"MyBox").

怎么会这样呢?

"name"测试对象属性返回重新添加测试对象时生成的名称. 逻辑名称没有(记录的)测试对象属性. 运行时对象属性不可能包含名称,因为它不是AUT GUI中的名称.

所以我认为测试对象不知道它的名字.只有存储库"知道"测试对象存储在哪个名称下.

所以我将不得不检查存储库本身,而不是测试对象.

ObjectRepositoryUtilAPI允许我(通过GetChildren,或其他方法)来找到repository's测试对象集合中的测试对象,并使用该GetLogicalName方法来得到它的名字.精细.

但是,使其工作的唯一方法是通过加载来获取对存储库的引用.我得到的印象是,这个API旨在操纵(或分析)来自QTP外部的回购,而不是来自测试运行.我不想重新加载存储库.我想在一个已经加载的存储库中查找测试对象.

RepositoriesCollectionAPI可以告诉其加载(通过其名称和路径)我,但它不提供获取的手段引用到对象实例代表的库之一.

那么我怎样才能获得对已经加载的存储库的引用,所以我可以使用GetLogicalName

或者通常问:给定对当前操作的共享存储库中包含的"普通"测试对象的引用,如何以编程方式找到其逻辑名称?

如果有一些超明智QTP向导一拉Motti谁知道这能不能做到,我倒是很欣赏来自他一个答案,即使它写着"不能做"如果这是真的.

qtp hp-uft

6
推荐指数
1
解决办法
8956
查看次数

如何根据当前报告节点获取运行结果状态?

例如,假设一个测试呼叫两个动作,A和B A执行通过调用"失败"步骤"Reporter.ReportEvent micFail, ..."和B进行'’通过调用步骤通过"Reporter.ReportEvent micpass, ..."

Reporter.RunStatusmicFail在A中执行失败步骤后立即返回.因此,即使在B中,B的状态完全为"绿色",也无法在"B"分支中判断出没有"失败"步骤当下.报告的测试运行状态Reporter.RunStatus" micFail从那时开始.

那么我怎样才能获得当前"分支"的运行状态?

我认为我要找的是当前或当前父级Reporter节点的颜色(即运行状态).

qtp hp-uft

6
推荐指数
1
解决办法
5625
查看次数

QTP/UFT中的代码文档

我正在研究以JavaDocs方式记录我的代码的方法.

有任何想法吗?

我使用UFT 11.52

到目前为止,我见过NaturalDocs + Perl.

还有其他想法吗?

提前致谢.

documentation qtp code-documentation

6
推荐指数
1
解决办法
1549
查看次数

无法在与qtp中请求的名称或序号对应的集合中找到项目

在某种情况下,我试图在QTP中使用select查询(更具体地说,QTP使用VB脚本)但是代码不起作用.

Option Explicit
Dim con,rs
Set con=createobject("adodb.connection")
Set rs=createobject("adodb.recordset")

con.open "Driver={Microsoft ODBC for Oracle};Server=myServer; Uid=USERNAME;Pwd=PASSWORD;"
rs.open "SELECT B.STATUS FROM STUDENT B WHERE B.BATCHCODE='FIRST' ",con

Do while not rs.eof
DataTable.GlobalSheet.AddParameter.RawValue = rs.fields("v1")
rs.movenext
Loop

Release objects
Set rs= nothing
Set con= nothing
Run Code Online (Sandbox Code Playgroud)

请帮助我知道代码的哪一部分导致脚本结果失败.

testing automated-tests qtp hp-uft

6
推荐指数
1
解决办法
5万
查看次数

如何使用QTP实施巡航控制?

我想将QTP与Cruise Control集成,到目前为止我已经完成了,我被困在报告部分.

我想以某种方式向Cruise Control报告结果,我该如何做到这一点?请帮忙?

.net cruisecontrol.net cruisecontrol qtp

5
推荐指数
1
解决办法
689
查看次数

VB:脚本主机在"完整"VB中出现时缺少什么?

在VB脚本主机中编程(脚本)时,如何了解实现的内容和不实现的内容?

例如,记录(或:structure关键字)未实现,但类(或:class关键字)未实现.

Dim as <Type>不允许使用所有" as"短语.

您可以在类中创建属性,但也不能创建as任何类型的属性.

您不能从基类继承(" Inherits"关键字未知).

等等.

我看到脚本主机是一个脚本主机,所以保持其功能有限可能是有意义的.

但是,我没有看到这些限制以可访问的,甚至是逻辑的方式记录在某个地方,给出了所有意义.目前,我被迫坚持试错工作流程,并在QTP的在线帮助中单独查找我想到的每一个细节(我可能会发现其他我目前忘记的细节).这是微软设计的现实,还是我忽略了这一点?

问题出现在QTP上,它使用Windows脚本主机作为脚本语言.当然,我可以查找我正在寻找的每一个细节 - 但是,这些是我的主要问题:

在哪里可以找到涵盖脚本主机的各种VBA方言(和版本?)之间语言差异的详细列表或表格?

可以为脚本主机中包含的内容提供(简单)推理吗?

vba programming-languages wsh qtp

5
推荐指数
1
解决办法
274
查看次数