GUI事件记录器和播放

时间:2008-11-06 18:00:47

标签: c# user-interface macros qa

我们正在编写一个相对重量级的C#GUI和一些syncFusion(GUI框架)组件。我想添加QA以后可用于回放客户端事件的客户端日志记录功能,以便分析客户端在生产中使用的错误或其他工作流程。

是否存在这样一个现成的模块,用于记录和回放所有客户端击键,鼠标事件等? (如果C ++模块可以很容易地集成到Windows C#客户端中,它也可以工作。)

我还想使用生成的日志来分析客户端最常用的功能以及很少使用哪些功能来决定应该优先考虑哪些错误应该删除哪些功能 /增强? 所以基本上我希望客户端将日志写入本地磁盘或通过网络写回服务器。

我也有点担心性能,有些命中是可以接受的,但是任何想法每次事件的记录会降低多少客户端性能

这里指的是记录生产中的所有客户事件,而不是QA测试本身。

根据Aydsman的评论编辑: 在阅读old similar discussion以及Benji's site之后,对此类“仪表板”感兴趣,但目前还没有开放或封闭的产品或解决方案。我发布了关于Benji网站状态的问题,但网站看起来很安静,自6月以来没有回复。 Benji的想法或多或少正是我所寻找的,但似乎还没有产品存在,这是相当令人惊讶的,我认为缺乏现有产品意味着实现这样一个系统必须比我最初想象的更复杂。会继续寻找并希望以后找到一些东西。

3 个答案:

答案 0 :(得分:1)

正如其他海报所提到的那样,有商业产品可以做这种事情。如果你想自己编写,你需要创建一个所谓的System Hook DLL。这可以在C ++中相当简单地完成。如果您创建一个,您可以使用pinvoke轻松集成它。事实上,我会先看看pinvoke.net上已经做过类似事情的人。

钩子DLL允许您拦截所有鼠标和键盘事件。您还可以注入鼠标和键盘事件。所以如果把这两个放在一起:intercept = record,inject = playback。

这是一篇很好的文章列表,可以帮助您入门:Code Project Hook DLLs

答案 1 :(得分:0)

为什么要编写代码,何时可以购买产品来执行自动GUI测试?

答案 2 :(得分:-1)

你听说过log4net吗?我在一个项目中小规模地使用它 - 它可能适合您的需要。 我还对面向方面和IoC记录技术进行了一些研究。根据特定技术会有一些性能影响,但它可以使记录代码的维护更容易。 Spring Framework的Spring.NET端口为通用的方法级日志记录提供了一些选项。您可以使用这些的一些组合来生成活动的“脚本”文件,以及可以在测试环境中读取和重新执行已记录操作的“重放”模块。