3

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

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

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

我也有点担心性能,一些命中是可以接受的,但是知道每个事件的日志记录会降低客户端性能吗?

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

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

4

3 回答 3

1

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

挂钩 DLL 允许您拦截所有鼠标和键盘事件。您还可以注入鼠标和键盘事件。因此,如果将这两者放在一起:拦截 = 记录,注入 = 回放。

这是一个很好的文章列表,可以帮助您入门:代码项目挂钩 DLL

于 2008-11-16T00:48:15.810 回答
0

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

于 2008-11-06T18:28:10.517 回答
-1

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

于 2008-11-14T20:19:54.243 回答