在Qt中进行Gui测试

Do Gui testing in Qt

本文关键字:Gui 测试 Qt      更新时间:2023-10-16

我正在尝试对 gui 应用程序进行压力测试,但我不太确定如何做到这一点。首先,我有一个应用程序,所有 gui 和辅助程序函数都位于其中。我还制作了两个外部库,这个应用程序使用它们。这些库只做一些小事情,我想在QtMock启动并工作时对这些部分进行单元测试(由于某种原因,目前它与qt 4.8不兼容(。

我想对主应用程序进行压力测试,而不必更改太多代码。我看了一下QtTestLib,它看起来非常基本,好像你必须将该代码与主代码集成,这是我不想要的。我真的很想将测试保持在应用程序之外,并且想知道如何做到这一点?不太确定我是否应该将我的 enitre gui 应用程序导出为可以导入到测试中的外部库?

你通常如何做到这一点来真正对整个事情进行压力测试。不知道我应该如何以及在哪里进行测试代码,我将不胜感激任何帮助!

根据我的经验,您使用的任何测试工具包要么会以微妙的方式将自己融入您的代码中,要么永远不会达到您需要的深度(或两者兼而有之(。

可以编写自定义测试代码,但仍保持正在测试的应用的代码干净。 我在一个需要自动测试的大型Windows C++ gui应用程序上做到了这一点。 基本思想是创建一个新项目,引用基项目中的所有代码,并编写一组从基类派生并包含测试代码的新类。

就我而言,我创建了一个新的Visual Studio项目,但是你可以对新的Qt项目做同样的事情。 当然,基类可能必须重构以公开要测试的函数。 测试类根据需要调用基类函数 - 如果需要,可以创建整个测试 GUI。

举个非常简单的例子,如果这是你的项目......

class MyView : public QMainWindow {}
class MyController {}
class MyModel {}

。创建一个新项目,拉入基代码,并添加以下内容:

class TestView       : public MyView {}
class TestController : public MyController {}
class TestModel      : public MyModel {}

最后,经过一番工作,我的基类中没有测试代码,我仍然能够在一个漂亮的测试 gui 中绑定并启动各种重复的自动测试。

我并不是说这是一项简单或微不足道的任务。 我只是鼓励你,这是可以做到的。:-)

编辑:这不是对嵌入式单元测试的批评,如果你能从项目开始就把它落实到位,那就太好了。 但这是一个大型遗留应用程序,我没有将测试代码注入基本代码是一个硬性要求。