【问题标题】:How to write test automation tools like QTP and winrunner using .net?如何使用 .net 编写 QTP 和 winrunner 等测试自动化工具?
【发布时间】:2011-12-19 19:46:20
【问题描述】:

我想知道像 winrunner、QTP 等测试自动化工具是如何工作的。这些工具是使用windows提供的任何测试API还是依赖于IPC和事件。我无法弄清楚它们是如何工作的。对我来说,QTP 记录和播放功能似乎是一种魔力。任何指导将不胜感激?

【问题讨论】:

    标签: winapi automation


    【解决方案1】:

    实际上,WatiN 是一个不错的起点。它不完全是单元测试框架。它可能看起来像一个第一眼,但它用于编写功能测试。如果您像单元测试一样运行它们,这完全取决于您。我正在以两种方式使用 WatiN 编写相同的测试(模拟网页上的用户操作的功能测试):

    1) 像任何其他 PS 脚本一样从命令行运行时在 Powershell 中编写脚本。这很有趣,尽管您需要为报告、异常处理等编写大量代码。
    2) 使用 MSVS 项目类型中的 C# Unit Test 在 C# 中编写 MSVS 中的单元测试。这实际上很有趣,因为您可以像单元测试一样在 MSVS 中运行它,但您有代码编写、报告、运行等的环境支持。

    因此,如果您想从某事开始,请查看 WatiN,尤其是因为 WatiN 有专门的记录器,可以记录动作并在 C# 中输出代码。查看库和工具的内部结构会给你一些开始。

    只提一件事 - 它仅适用于网络。桌面完全不同。通过网络,您可以连接到 IE,您可以查询 html 文档中的对象、检查浏览器状态等。使用台式机可能会更加困难。您需要连接到应用程序,可能是通过提到的 Win32hooks。也许尝试使用 Microsoft Scripting Host。

    【讨论】:

      【解决方案2】:

      我对 QTP 了解不多。但是,如果您想了解内部结构,则可以下载像 Watin- for dotnetWatir- for ruby 这样的开源项目,看看里面发生了什么。两者都用于网络测试自动化。而且代码是免费提供的..

      如果您正在寻找像 Nunit 这样的单元测试框架。它们是属性驱动的。Nunit 通过“TestFixtures”标识类,通过“Test”属性标识方法。它会扫描整个应用程序以查找这些测试方法并触发测试。

      【讨论】:

      • 嗨,我不是在寻找单元测试框架。我有兴趣知道如何编写像 QTP 这样的应用程序。本质上,我想知道 QTP 如何在 Windows 应用程序或 Web 应用程序中记录您的操作并重放它们。编写这些应用程序就像编写调试器一样。我还想知道windows是否提供任何API来了解其他应用程序窗口中的控件。很抱歉造成混乱。
      【解决方案3】:

      我猜他们正在使用 Win32 Hooks。

      编辑here is 在 .NET 中定义挂钩的示例。

      【讨论】:

        【解决方案4】:

        应该是使用 COM、OLE 技术在 C、C++ 中进行 Win32/64 编程,并且它们可能正在使用 Active 可访问性 API。当然,他们可能已经在这些技术上创建了一个大型 API。甚至他们也可能使用过一些汇编编程。

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 2010-11-30
          • 2018-04-17
          • 1970-01-01
          • 2012-11-15
          • 2010-09-07
          相关资源
          最近更新 更多