希望能为大家建立一个学习测试的实验室

发布新日志

  • 自动化功能测试框架——初级探讨

    2007-11-28 17:28:54

    我做的项目是银行金融业务系统方面的测试,主要是做自动化功能测试
    经过实践,我总结了一下我们项目的自动化功能测试框架,当然不能绝对的,
    如果大家有什么看法可以随便发表哈意见! 谢谢!!


    从我个人理解,自动化功能测试框架应该包括:业务流程框架、自动化功能测试执行框架、测试数据框架
    (业务流程测试框架——不便贴出)

    自动化功能测试执行框架:

    测试数据框架:


  • 中国游戏感言——个人看法

    2007-11-26 14:06:53

        看着目前网游市场的火热,层出不穷的网络游戏让玩家们眼花缭乱;完完全全都是商业,玩家没有了休闲快乐。面对众多的网游,许多玩家无法选择一款让自己心仪的网游;整天都在期盼一款真正属于自己的游戏!

        也许这个时候,让我最能想到的是:单机游戏。不过很让人痛心的是,目前的单机游戏厂商似乎都销声匿迹了,市场上的单机游戏日渐空虚。好像软星还一直在坚持(值得玩家表扬,但是仙剑4开发出来没有让玩家觉得比仙剑3还差,为什么?),连一直发扬民族精神的金山公司似乎也放弃了单机游戏这方面的发展,整天“玩”起了网络游戏经营模式,我觉得既然游戏公司都没有不能一直坚持下去,那玩家们为什么也要坚持下去呢?难道西山居《剑侠》系列就这样在玩家的的剑侠情结在心目中磨灭吗?我想这应该是一种悲哀。。。回想起和同学们一起玩单机游戏的快乐日子,觉得好让人期待,当时单机游戏多也很好玩,虽然国内的单机游戏不是很好,但是还是能玩家一直很喜欢。特别是以武侠游戏作品最受欢迎,例如:《剑侠》系列、《仙剑》系列等等。
        再看看网络游戏吧,每个人都可以看到,中国的网络游戏市场已经泛滥,而且有些游戏是极其垃圾,画面不堪入目,真不知道现在的玩家怎么会去玩像《征途》之类的画面、人物造型等都极其垃圾的网游(我从安装到卸载它一共没有花25分钟,而后是极其愤怒)。 

        我个人特别喜欢 武侠、卡通;RPG 、竞技类游戏;喜欢游戏画面好、游戏内容丰富、互动性强的游戏;像魔兽系列、剑侠系列、仙剑系列、大话西游系列(不过大话3让我感到很不满意,平衡性做的有些差。)都是我很喜欢的游戏,不说玩,起码让我觉得这样才让我看到了游戏的未来。。。我深入玩过很多的游戏(单机+网络),曾经也有打算做游戏的梦想,但是金山和网易招聘的时候总是要求太高,可惜只好去做软件测试。
        游戏公司一味的在那开发尽可能多的游戏,而不去调查玩家为什么总是觉得游戏性很差,也不知道玩家们究竟喜欢什么类型的游戏。。。只能说是很可悲! 想想看,有多少网络游戏才公测了几天,就因为游戏的各方面的问题而被迫停运。这说明了什么问题好不清楚吗?就是因为这些公司急于想赚取玩家们口袋中的RMB,所以没有经过严格的验收就急于投放市场。也很可悲!
        游戏应该是能给玩家不同于现实体验的快乐和经历,让玩家们能乐于游戏乐于真正的生活。有段时间我自己都觉得中国的网络游戏是否开始倒退了?幸好还有其他的好多值得玩家们尊敬的游戏公司,如:网易、金山、九城(这三个是我一直喜欢的三个游戏公司),他们一直追求玩家们的喜好,走在网络游戏的前列,很感谢他们的贡献,为中国的游戏作出的心血和汗水。 
     
        对中国这个比较传统的国家来说,我觉得,武侠、神话等内容的游戏还是很受玩家们的欢迎的,当然也不排除卡通类的游戏,武侠、神话可以说是每一个中国人非常熟悉的故事。让玩家们在游戏中获得更多的知识、学习的快乐、交更多的朋友、体验多种不同的生活方式(即使是虚拟的生活),==其实让玩家在虚拟的游戏世界中体验到现实世界不可能实现的梦想应该是游戏一直追从的目标==。就像剑侠系列、天龙八部等好的武侠游戏,像大话西游系列的神话游戏。。。都是属于中国的优秀的游戏,都是玩家们很喜欢的游戏。
        有一天,我突然发现:现在只要暴雪公司对游戏的某方面进行一些适当变化,那国内的游戏公司就开大肆的仿造其变化。还是很可悲。当然可能很多人会说,国内的技术水平很差,我觉得技术水平不算什么,游戏关键是内容和可玩性,这应该是吸引玩家们的主要东西。
         ......

     

  • QTP的数据驱动方式初级探讨系列之四——数据库和环境变量

    2007-11-21 11:22:39

    利用数据库(DB

    在当今IT界没有数据库的话,大家想象一下,会是什么样子?

    Mercury公司为QTP也提供了对数据库的数据进行操作的方法,同时也有数据库检查点的设置,我在测试过程中,就是使用SQL Server2000进行数据管理的。目前我还没有学习到Oracle^_^,很惭愧)。

    利用数据库来进行测试数据的管理有几个优点:1. 数据便于统一管理2. 方便修改、查询3. 便于进行对已经修改的数据进行数据库检查点设置来检查数据是否修改成功4. 脚本的可重用性提高 5. 脚本与数据分离,脚本的维护工作量减少

    QTP的脚本调用数据库中的数据有2种方法:1. 利用用户DSN数据源 2. 直接连接数据库

    1.       本地没有创建数据源的方式
    DRIVER=SQLServer;SERVER=
    数据库IP地址;UID=用户名;PWD=密码;APP=Microsoft Office 2003;WSID=本地主机名;DATABASE=数据库名

    2.       本地已创建数据源的方式
    DSN=
    数据源名称;UID=用户名;PWD=密码;APP=Microsoft Office 2003;WSID=数据库的主机名;DATABASE=数据库名

    注:虚线框中的是引用别人的

           你可以建立一个DBFunction.vbs文件,将你编制的数据库调用的函数(如:连接、查询、修改。。。)全部放在这个文件中(建议:DBFunctions与你的公共函数不要放在一起),然后通过QTP引用资源文件,在菜单中选择“文件”——>“设置”——>“资源”,然后将你的函数库文件添加到这个关联函数库文件下。这样你的脚本就可以使用这些函数了。

           当然,有人不愿意这样做。还有一个方法,就是在每个脚本的开头使用下面的脚本代码引用你自定义的函数库文件:

           ExecuteFile “FileName”  //例如:ExecuteFile “D:\Functions\DBFunction.vbs”

           当数据库中的数据需要修改时,调用完修改数据库数据的函数后,在此函数后的一行脚本脚本可以添加数据库检查点来检查你刚才修改的数据是否成功,数据库检查点的方法见:QTP的帮助文档。

    OK,这样就设置完成了数据库的数据驱动方式

    利用环境变量

    我觉得Mercury公司考虑事情很周到,连环境变量的功能也添加进去了(不知道我高兴是不是有道理,目前的知识面不是很广,大家不要见怪啊)

    环境变量的的适用范围就是本测试,本测试中的所有操作都可以调用。

    环境变量有2种,一种是QTP的内置变量,一种是用户自定义的变量。内置变量是可以直接就可以用,自定义环境变量需要在菜单中选择“文件”——>“设置”——>“环境”,在变量类型中选择“用户自定义”,然后进行添加,可以对添加的变量全部导出,导出的文件为.xml格式的文档。既然可以导出,那么必然可以导入.xml文件,你可以在该对话框中的选中“从外部文件导入”,然后添加其文件路径即可。(当然这些操作都可以直接使用脚本来实现,如:Environment.LoadFromFile(“FileName”))

    例如:在桌面建立一个Var.xml,如下

    -<Environment>    //以这个开始的内部都是定义环境变量,直到以</Environment>结束

    - <Variable>                           // 变量定义起始标识

                     <Name>aa</Name>               // 变量名称

                     <Value>11</Value>               // 变量值

            </Variable>                            // 变量定义结束标识

    - <Variable>

                     <Name>bb</Name>

                     <Value>22</Value>

            </Variable>

    - <Variable>

                     <Name>cc</Name>

                     <Value>33</Value>

                  </Variable>

      </Environment>

    然后导入本测试的环境变量文件中,在专家视图里编写下面的脚本代码:

    Dim aParam3

    aParam3=Environment.Value(“aa”)          // 调用环境变量

    msgbox aParam3

    运行测试,会输出11”

           OK,完成环境变量的初级知识的学习。

  • QTP的数据驱动方式初级探讨系列之四——利用Excel文件

    2007-11-20 20:38:46

    利用Excel文件

    由于QTP内嵌了类似Excel表格的DataTable数据表,那么使用Excel文件为QTP脚本传递测试数据也就变得顺理成章的事情了。

    Excel中的各个Sheet的数据导入到QTP数据表中,就需要用到QTP提供的导入函数:DataTable.ImportSheet(FileName, SheetSource, SheetDest),第一个参数为导入的文件名称及路径,SheetSource即导入Excel文件中的那个Sheet名称,SheetDest即为QTP的数据表中的某一个SheetName,这个Sheet可以为某个操作的ADTSheet名称,也可以为NewSheet名称。

    提示:导入的数据在测试运行的过程中是可以看见的,但是当测试运行完成后,导入的数据也会消失。这个属于Run-Time DataTable

    具体的脚本实现如下:

    导入到本操作数据表中

    Call DataTable.ImportSheet("C:\Data.xls","Global","Action1")  / *  导入Data.xls文件中的Global数据表的数据于本地数据表“Action1 * /

    导入增加的Sheet

    DataTable.AddSheet(“NewSheetName”)

    Call DataTable.ImportSheet("C:\Data.xls","Global"," NewSheetName ")  / *  导入Data.xls文件中的GlobalSheet表的数据于新建数据表“NewSheetName”中, * /

    如果你的全部数据都保存在Excel文件中,可以使用一下语句:

    DataTable.ImportSheet(FileName)  // 直接导入 到本测试的数据表中,GDTSheet对应于文件中的GlobalSheet的数据,其他的都依次存放。

    那么数据的导出就和导入差不多了,只是参数少了一个而已

    DataTable.Export(FileName)  // 把测试数据表的数据全部导出到文件中

    DataTable.ExportSheet(FileName, DTSheet) // 把测试数据表中 名称为 DTSheet 的数据表Sheet 的数据导入到文件中

  • QTP的数据驱动方式初级探讨系列之三——利用数据表

    2007-11-20 20:36:34

    利用DataTable数据表

    QTP提供了与Excel表格一样方便使用的数据表——DataTable对象,利用数据表可以为测试脚本提供所需的测试数据。

    数据表也提供了2种数据表即:Global(全局)Action(操作或者本地) 数据表,GlobalDataTableSheet(以下简称:GDTSheet)为本测试提供数据,ActionDataTableSheet(以下简称:ADTSheet)为本操作提供数据,由于测试包含操作,那么每个操作都可以调用GDTSheet的数据

     

    全局数据表的数据调用:

    GDTSheet里面建立一个字段名:AccountsNumber,并为其赋值为“1234567890123456

           Dim aParam2

           aParam2=DataTable(“AccountsNumber”,”Global”)

    // aParam2=1234567890123456    

    //当然还有一种赋值方法:

           aParam2=DataTable(“AccountsNumber”,dtGlobalSheet)

           本地数据表的数据调用:

           ADTSheet里面建立一个字段名:CustomName,并为其赋值为“Tellername

           Dim aParam3

           aParam3=DataTable(“CustomName”,”Action1”)

    // aParam3=”Tellername”

           //当然还有一种赋值方法,但是有一个前提就是:必须只能是测试只包含一个操作的情况下

           aParam3=DataTable(“AccountsNumber”,dtLocalSheet)

    DataTable对象函数的第2个参数是表示所取数据在那个Sheet里面,QTP提供了几种方式,但是我建立还是利用个操作Sheet的名称来标识,如果操作多了,以防止使用混乱。

           DataTable对象还有其他许多的方法,如:AddSheet,GetSheet……等,都可以在QTP的帮助文档中都可以查看;而且在QTP的专家视图中当你键入DataTable时,也会有相应的函数方法提示。

           补充GDTSheet表中的数据行数决定了本测试运行循环的次数;但是本地数据表ADTSheet中有多行数据需要循环运行,也不能多次循环本操作,所以如果需要某个操作的脚本需要调用本地ADTSheet表的数据多行,建立用VBscrīpt语言提供的循环语句进行多行数据获取。

           当然还可以利用数据表为检查点提供验证值的存储。

     

     

  • QTP的数据驱动方式初级探讨之二——利用参数化

    2007-11-20 20:27:42

    首先理解初级前提:每一个测试Test可能由很多操作Actions组成

    利用参数化

    QTP2种参数,按照参数的位置分,有一个是Action(可以理解为“本地”含义,在操作属性里面设计)参数,另一个就是Test (可以理解为“全局”含义)参数;按参数的类型分,有一个是Input(输入)参数,另一个是Output(输出)参数。

    QTP的参数值传递关系图如下:

    注意:图中的Action(i) 是表示第i个操作(Action)

    MQC表示Mercury Quality Center(QC中测试实验室里面测试集中某个测试的配置参数选项)

    新建TEST(测试),那么QTP默认给这个Test一个Action1的操作名称,同时TestAction1的输入和输出参数列表也被初始化,你可以进入Action1ExpertView(专家视图)页面键入下面的脚本代码:

    Dim aParam

    aParam=Parameter(“ActionInputParam1”)

    //  使用参数化值,ActionInputParam1为参数

           变量此时的值不等于参数ActionInputParam1的值,因为还没有设置参数化值

           打开对应Action1Keyword View(关键字视图),右键——>Action Properties(操作属性),将会打开Action Properties的对话框,进入“Parameters(参数)Tab标签下,在InputParameter Table中,输入参数Name(名称)= ActionInputParam1,参数Type(类型)=StringDefaultValue(默认值)=ThisIsAString”。

           OK,变量aParam=ThisIsAString

           现在你可以在脚本中键入:Print aParam 或者 Msgbox aParam 查看变量的值,看是否输出“ThisIsAString

           OK,咱们目前完成了操作Action1的参数的值的设置,那么在本Action1中的任何地方都可以使用该变量。

           下面咱们来看看Test参数,也就是全局参数(我不知道这个名称是否正确,只是按照我的理解来说的,大家不同意的话自己也可以取名称)

           首先,QTP的菜单File(文件)——>Settings(设置)的TestParametersParameters Tab标签对话框中,在InputParameters列表中添加参数GlobalInputParam1,类型String,值“ThisIsAString, 接着,鼠标还是选中Keyword View(关键字视图)中的Action1,点右键,选择 “Action Call Properties”,在Parameter Values里进行参数化传递设置,将参数ActionInputParam1的参数指向(调用)Test参数列表中的GlobalInputParam1,这样就完成了本地参数调用全局参数的设置,每次运行脚本时,aParam的值就等于GlobalInputParam1的值了。

    可能有人会想,本地参数ActionInputParam1已经设置为“ThisIsAString”了,在这应该就不用了吧!的确是这样。但是如果你设置调用以后,本地的参数ActionInputParam1的值是否已经赋值都无所谓,因为脚本运行时,变量的值只等于Test参数列表中GlobalInputParam1参数的值。不知道这样说明是否混淆,反正好好理解下吧。

    有人可能也想,参数调用是方便了许多,但是如果脚本所需的数据改变了,那么每次更改数据的值时,还需要打开脚本修改Test参数的值,这样做的话有点浪费时间,这些担心是应该的,但是Mercury公司解决了以上的矛盾,所有测试的全局参数都可以在MQC的测试集中测试参数配置中设置参数值。

    如果有兴趣的话,可以到MQC里面去试一试。看看测试的全局参数列表是否在那里出现,并赋值为“ThisIsAString”,但是测试中的全局参数里面不能设置值,否则难以判定到底是输出的那个值。

     

     

     

     

     

     

  • QTP的数据驱动方式初级探讨系列之——总述

    2007-11-20 20:09:53

    QTP的数据驱动方式初级探讨

                                                         

     

    利用QTP进行自动化测试的过程中,对象库与数据、脚本应该就是QTP的核心,当然描述性编程就不用包括对象库了。数据应该就相当重要。为了让大家对于QTP脚本调用数据的各种方式能有很清楚的了解,结合我个人使用经验给大家详细介绍一下。如果有些不是很对的地方,望大家帮忙指正。谢谢!

    QTP的常见数据驱动关系图(个人总结,可能还有其他的方式)

     

     

  • QTP简介

    2007-11-20 20:02:28

    QTP是Mercury QuickTest Professional的简称,Mercury QuickTest Professional™ 针对功能测试和回归测试自动化提供业界最佳的解决方案 - 适用于所有主要软件应用程序和环境。此下一代自动化测试解决方案采用关键字驱动测试的概念,大大简化了测试的创建和维护。

    QuickTest Professional 关键字驱动测试方法的独特之处在于,通过与关键字视图双向同步的集成的脚本和调试环境,测试自动化专家对内在测试和对象属性具有完全访问权限。

    Mercury QuickTest Professional是一款先进的自动化测试解决方案的测试工具,用于创建功能和回归测试。它自动捕获、验证和重放用户的交互行为,为每一个重要软件应用和环境提供功能和回归测试自动化的行业最佳解决方案。

     

    QTP通过对WEB页面或应用程序所进行的操作录制成自动化测试脚本,然后运行回放测试脚本,并可以在其中插入各种检查点来实现对WEB页面或应用程序的功能的检查。QTP主要应用在回归测试中;这样可以节省大量的人力和时间,加快了测试或开发的进程。

     

  • MQC的简介

    2007-11-16 16:44:54

    Quality Center(简称QC) 是美国Mercury Interactive公司推出的基于 Web 的测试管理工具,包括对测试需求、测试计划和测试案例、测试执行、软件缺陷等的集中管理。 应用程序测试是一个复杂的过程,涉及到成千上万个测试的开发与执行。对于多种硬件平台、多种配置(计算机、操作系统和浏览器)以及多种应用程序版本,通常都需要进行测试。管理测试流程的方方面面很浪费时间,而且难度也很大。 QC有助于维护测试的项目数据库,这个数据库涵盖了应用程序功能的各个方面。QC供了一种直观、高效的方法,用于计划和执行测试集、收集测试结果以及分析相关数据。 QC具有一套完善的系统,用于跟踪应用程序缺陷,通过它,您可以在从初期检测到最后解决的整个过程中严密监视缺陷。将 Quality Center 链接到电子邮件系统,所有应用程序开发、质量保证、客户支持和信息系统人员可以共享缺陷跟踪信息。 QC可以集成 Mercury 测试工具(WinRunner、QuickTest Professional、QuickTest Professional for MySAP.com Windows Client、LoadRunner 和 Visual API-XP)以及第三方和自定义测试工具、需求和配置管理工具。QC可以无缝地与这些测试工具通信,提供一种完整的解决方案,使应用程序测试完全自动化。 QC可指导我们完成测试流程的需求指定、测试计划、测试执行和缺陷跟踪各个阶段。它把应用程序测试中所涉及的全部任务集成起来,有助于确保客户能够得到最高质量的应用程序。

我的存档

数据统计

  • 访问量: 8764
  • 日志数: 9
  • 建立时间: 2007-11-16
  • 更新时间: 2007-11-28

RSS订阅

Open Toolbar