在gui testautomation脚本中的OOP

时间:2012-11-09 07:33:55

标签: python oop user-interface automation

我正在为web gui进行测试自动化。它是一个大型产品,因此设计一个好的软件架构非常重要。首先,我决定将测试数据与测试逻辑隔离开来。之后我想用oop风格构建类,这有助于在短时间内处理变化。

我有以下gui设计: enter image description here

我认为我应该在额外的类中隔离菜单,导航和工具栏,因为只有一个地方可以处理更改。我不知道这是否是处理它的最佳方式。还有其他选择吗?

PS:我正在使用Squish Gui测试自动化工具和python

4 个答案:

答案 0 :(得分:0)

你看过Django吗? 编辑:我从第1段解释说,OP将推出自己的oop gui web框架。

答案 1 :(得分:0)

最后,我在Web应用程序和测试逻辑之间使用了一个抽象层。测试开发人员只使用抽象类中的方法。 优点是没有测试开发人员必须了解Web应用程序的结构。

使用此图层工作4周后,可以非常快速地创建和处理我们的测试。

答案 2 :(得分:0)

我们使用什么作为"自动化设计"是自动化某些块。每个测试场景都是由逻辑块构建的(子场景' s)。登录,填写表格1,填写表格2,报告结果,关闭申请。这些是我们自动化的项目,使用正确的参数集,您可以自动化所有场景。

你自动化的方式,也是一个好主意(也做过这个)。 每个部分也是一个块。可以调用每个块,并使用正确的参数,测试人员可以制作场景 Blok1(editbox1,"文字&#34 ;; editbox2,"")等。

在哪里思考,您如何向功能测试人员表达这一点? 他们会理解工作方式吗? (有些测试人员甚至害怕XML ......所以,简单一点。)

答案 3 :(得分:0)

我所做的是,根据与其相关的GUI区域将功能分组在一起。例如,在您的示例中,您有4个主要部分。如果我们采取"可选工具栏"在section中,您可以为该部分定义一个单独的函数组,并在该main函数下添加所有子函数。

例如,在JavaScript中,您可以执行以下操作:

var OptionalToolbar = {
    clickButton:function(btn){
        //your code goes here
    },

    getButtonCount:function(){
        //your code goes here
    }
}

然后,您可以从测试用例中调用这些可重用的函数。

OptionalToolbar.clickButton("Home");

这将使测试框架与测试逻辑无关,当然也会提高可维护性和可用性(逻辑上按照与它们相关的GUI区域分组的函数)。

我一直在使用这种技术来构建我的测试框架功能,并且它已经证明在过去4年中取得了成功。如果您保持明确定义的功能层,您可以随时快速调整更改。