0

我有一个在 Quick Test Professional (QTP) 中运行的测试,它将在运行之前由一些用户输入进行修改。为了做到这一点,我使用 QTP 提供的 DotNetFactory 来创建一个包含我需要的各种字段/按钮的表单,遵循本示例中概述的策略。

我得到的表单设计包括一个按钮,它将表单中的各种文本字段重置为其默认值。我的问题是我不确定如何实现这个按钮,因为似乎任何按钮按下都会关闭表单。我确实想到我可以关闭表单并使用默认值重新打开它,但是有些字段我不想重置,所以这并不理想。我目前的感觉是,我可以使用 form.show() 并尝试在等待按钮按下时连续循环,而不是使用 form.showDialog() 命令。这听起来不错,但有谁知道如何在这种情况下实现这一点?或者是不可能动态改变表格?

谢谢

4

1 回答 1

1

是的,那篇文章很好地展示了 DotNetFactory 与 QTP 的强大功能。但是,这不是我用来创建表单的解决方案。特别是如果您打算在该表单上包含多个字段。

我宁愿使用 Visual Studio 创建表单,因为使用丰富的 IDE 创建和维护表单要容易得多,主要是使用点击。创建如下所示的内容只需要大约 5 分钟。(如果您没有 Visual Studio 许可证,可以使用 SharpDevelop 或 Visual Studio Express)。

下面的示例是在 VB.Net 中完成的,可以很容易地使用 C# 或他们更熟悉的任何其他 .net 语言。(抱歉,我想添加表单的 Visual Studio 屏幕截图以使其更清晰,但由于我是 stackoverflow 的新用户并且没有足够的声誉,所以无法这样做)

VB.Net 表单代码片段:

Public Class EnvironmentDataForm
    Private strServerName As String
    Private strUsername As String
    Private strPassword As String
    Public Property DBServerName() As String
        Get
            DBServerName = strServerName
        End Get
        Set(ByVal value As String)
            strServerName = value
            TextBox_DBServer.Text = strServerName
        End Set
    End Property

    Public Property DBUsername() As String
        Get
            DBUsername = strUsername
        End Get
        Set(ByVal value As String)
            strUsername = value
            TextBox_DBUsername.Text = strUsername
        End Set
    End Property

    Private Sub CloseButton_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
        strServerName = TextBox_DBServer.Text
        strUsername = TextBox_DBUsername.Text
        strPassword = TextBox_DBPassword.Text
        Me.Close()
    End Sub
End Class 

我没有详细解释如何使用 Visual Studio(我确信网上有很多相关资源),但基本上是您需要遵循的步骤来创建一个接受用户输入的 QTP 解决方案从一个不错的寻找,是:

  1. 在 Visual Studio 中设计一个表单和相应的代码。(注意,选择一个类库项目而不是 WinForms 项目,因为你想把它编译成一个 dll 之后)
  2. 在 QTP 中使用 DotNetFactory 加载库。
  3. 使用 .ShowDialog() 在 QTP 中调用表单。
  4. 使用表单捕获的属性值。

对应的QTP代码:

Set objEnvDataForm = DotNetFactory.CreateInstance(_
            "EnvironmentData.EnvironmentDataForm",_
            "C:\EnvironmentData.dll")

'This step will block QTP execution until the form is closed. 
'Also, make sure the form is designed to save the field data before closing: 
'    See Button1_Click() in the .Net code above
objEnvDataForm.Showdialog() 

strConnString = "DRIVER={Microsoft ODBC for Oracle};" &_
        "Server="& objEnvDataForm.DBServername  &_
        ";Uid="& objEnvDataForm.DBUsername  &_
        ";Pwd="& objEnvDataForm.DBPassword  

Set objCon = CreateObject("ADODB.Connection")   
objCon.Open strConnString

希望有帮助。如果您需要有关任何步骤的更多信息,请告诉我。

于 2013-08-15T16:14:03.197 回答