我想知道winrunner,QTP等测试自动化工具是如何工作的。这些工具是否使用由Windows提供的任何测试API,或者他们是否依赖于IPC和事件。我无法弄清楚它们是如何工作的。对我来说,QTP记录和播放功能似乎是一种魔力。任何指导都会受到高度赞赏吗?
答案 0 :(得分:1)
实际上WatiN并不是一个好的起点。它不完全是单元测试框架。它可能看起来像第一眼,但它用于编写功能测试。如果你像单元测试一样运行它,完全取决于你。我使用WatiN以两种方式编写相同的测试(在网页上模拟用户操作的功能测试):
1)在Powershell中编写脚本,从命令行运行,就像任何其他PS脚本一样。尽管您需要编写大量用于报告,异常处理和其他的代码,但这很有趣 2)使用MSVS项目类型的C#单元测试在C#中的MSVS中编写单元测试。这实际上很有趣,因为您只需在MSVS中运行它就像单元测试一样,但是您可以对代码编写,报告,运行等进行环境支持。
所以如果你想从一些东西开始看一下WatiN,特别是因为WatiN有专门的记录器来记录动作并输出C#中的代码。查看库和工具的内部结构会给你一些启动。
仅提一件事 - 它只是网络。桌面完全不同。使用Web,你可以在IE浏览器中查询对象的html文档,检查浏览器状态等等。使用桌面可能会更困难。你需要挂钩应用程序,也许通过提到的Win32hooks。也许尝试使用Microsoft Scripting Host。
答案 1 :(得分:0)
我对QTP了解不多。但是如果你想了解内部结构,那么你可以下载像Watin- for dotnet和Watir- for ruby这样的开源项目,看看里面发生了什么。两者都用于Web测试自动化。代码免费提供..
如果您正在寻找像Nunit这样的单元测试框架。它们是属性驱动的.Nunit通过“TestFixtures”识别类,通过“Test”属性识别方法。它会扫描整个应用程序以获取这些测试方法并触发测试。
答案 2 :(得分:0)
我猜他们正在使用Win32 Hooks。
编辑:here is在.NET中定义挂钩的示例。