我正在使用Squish (Python)进行Qt GUI测试。我面对许多动态对象(每次执行都会出现很多次)。如何避免在Squish中发生这种情况?
发布于 2019-06-14 20:17:29
这取决于当时的应用程序图形用户界面设计,以及是否存在导致相应图形用户界面对象的Squish对象实名中的"occurrence" property的memory leak。
一般来说,最好的方法是使用QObject.setObjectName(QString)来assign a (good, unique enough) name to each GUI object您的图形用户界面自动化测试脚本需要与之交互的东西。
如果此操作已经完成,并且在对象映射中还没有标识该对象的对象真实名称,则在与对象交互时,新的Squish对象名称将被添加到对象映射中,并且这个新的对象名称将具有通过QObject.setObjectName(QString)为该对象设置的值的" name“属性,而可能不是"occurrence”属性。
发布于 2019-06-21 11:07:55
实例用于标识没有足够的唯一属性来区分彼此的对象。
例如,如果您有一个具有相同标题/文本的标签,但没有为其分配唯一的名称,则Squish将使用occurence=1属性标识第二个标签。从长远来看,这是不可维护的,因为对对象结构的任何修改都可能使脚本无效,如果发生变化,脚本将错误地识别对象。
我所做的是从开发人员端请求为每个图形用户界面控件分配一个唯一的名称。当每个对象都有一个唯一的名称时,Squish将不会使用'occurence‘,而是使用该' name’来标识该对象,并且很可能将'type‘和'visible’属性一起使用。
https://stackoverflow.com/questions/56574486
复制相似问题