在Qt中进行Gui测试
Do Gui testing in Qt
我正在尝试对 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 中绑定并启动各种重复的自动测试。
我并不是说这是一项简单或微不足道的任务。 我只是鼓励你,这是可以做到的。:-)
编辑:这不是对嵌入式单元测试的批评,如果你能从项目开始就把它落实到位,那就太好了。 但这是一个大型遗留应用程序,我没有将测试代码注入基本代码是一个硬性要求。
- 使用C++库在Android项目中修改gradle中的cmake参数,用于插入指令的测试
- 无法编译 rtmidi 测试 cmidiin.cpp 文件, 非法指令
- 尽管测试成功,CppUnit测试核心仍被丢弃.为什么
- 数据成员SFINAE的C++17测试:gcc vs clang
- 如何使用重载的相等(==)运算符向测试用例添加描述
- 为什么二进制搜索在我的测试中不起作用
- 从父数组测试用例构造二叉树失败
- 试图对缓存进行跨步测试,但程序并没有结束
- 有什么好的方法可以让系统调用代理允许在单元测试中进行模拟
- OpenGL在启用深度测试时不会丢弃我的碎片
- 为测试目标创建具有不同源文件夹的文件
- 在子目录中使用target_sources()命令时用于单元测试(qtest)的项目结构
- 在Qt中进行Gui测试
- 什么是一个简单的、可测试的、跨平台的C++GUI
- MFC gui可通过谷歌测试进行测试
- 负载测试GUI应用程序
- GUI测试工具的一个c++应用程序
- 如何使用 qtestlib 测试完整的 Qt5 GUI
- 用户界面 - 测试C++ GUI 桌面窗口应用的自动化工具/库/框架
- Web-CAT CxxTest Eclipse GUI 用于测试结果未显示