我正在为 web gui 进行测试自动化。这是一个大型产品,因此设计一个好的软件架构很重要。首先,我决定将测试数据与测试逻辑隔离开来。之后,我想以 oop 样式构建类,这有助于在短时间内处理更改。
我有以下 gui 设计:
我认为我应该将菜单、导航和工具栏隔离在额外的类中,因为只有一个地方可以处理更改。我不知道这是否是最好的处理方式。还有其他选择可以处理吗?
PS:我正在使用带有 python 的 Squish Gui 测试自动化工具
我正在为 web gui 进行测试自动化。这是一个大型产品,因此设计一个好的软件架构很重要。首先,我决定将测试数据与测试逻辑隔离开来。之后,我想以 oop 样式构建类,这有助于在短时间内处理更改。
我有以下 gui 设计:
我认为我应该将菜单、导航和工具栏隔离在额外的类中,因为只有一个地方可以处理更改。我不知道这是否是最好的处理方式。还有其他选择可以处理吗?
PS:我正在使用带有 python 的 Squish Gui 测试自动化工具
你看过 Django 吗?编辑:我从第 1 段解释说 OP 将推出他自己的 oop gui web 框架。
最后,我在 Web 应用程序和测试逻辑之间使用了一个抽象层。测试开发人员只使用抽象类的方法。优点是测试开发人员不必了解 Web 应用程序的结构。
在使用该层 4 周后,可以非常快速地创建和处理我们的测试。
我们使用的“自动化设计”是使某些块自动化。每个测试场景都是由逻辑块(子场景)构建的。登录,填写表格1,填写表格2,报告结果,关闭申请。这些是我们自动化的项目,使用正确的参数集,您可以自动化所有场景。
你自动化的方式,也是一个好主意(也这样做了)。每个部分也是一个块。可以调用每个块并使用正确的参数,测试人员可以制作场景 Blok1(editbox1, "the text"; editbox2, "") 等。
在哪里考虑,您如何向功能测试人员表示这一点?他们会理解工作方式吗?(一些测试人员甚至害怕 XML……所以,让它变得简单。)
我所做的是,根据它们相关的 GUI 区域将功能分组在一起。例如,在您的示例中,您有 4 个主要部分。如果我们采用“可选工具栏”部分,您可以为该部分定义一个单独的功能组,并在该主功能下添加所有子功能。
例如,在 JavaScript 中,您可以执行以下操作:
var OptionalToolbar = {
clickButton:function(btn){
//your code goes here
},
getButtonCount:function(){
//your code goes here
}
}
然后你可以从测试用例中调用这些可重用的函数。
OptionalToolbar.clickButton("Home");
这将使测试框架独立于测试逻辑,当然也将提高可维护性和可用性(按与它们相关的 GUI 区域逻辑分组的功能)。
我一直在使用这种技术来构建我的测试框架功能,并且在过去的 4 年中证明它是成功的。如果您维护明确定义的功能层,您总是可以非常快速地适应变化。